From 5722372b7869828e372dec06e80e5b0e7280af61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Knut=20Olav=20L=C3=B8ite?= Date: Mon, 5 Jul 2021 10:45:58 +0200 Subject: [PATCH] feat: add support for tagging to Connection API (#623) * feat: add support for tagging in Connection API * fix: disallow statement tags for commit/rollback/run * chore: cleanup after rebase * test: add generated tests + cleanup * build: add new methods to clirr * fix: add default implementations for new methods --- .../clirr-ignored-differences.xml | 22 + .../connection/AbstractBaseUnitOfWork.java | 8 + .../cloud/spanner/connection/Connection.java | 47 + .../spanner/connection/ConnectionImpl.java | 99 +- .../ConnectionStatementExecutor.java | 8 + .../ConnectionStatementExecutorImpl.java | 33 + .../cloud/spanner/connection/DdlBatch.java | 6 +- .../cloud/spanner/connection/DmlBatch.java | 19 +- .../connection/ReadOnlyTransaction.java | 6 +- .../connection/ReadWriteTransaction.java | 56 +- .../connection/RetriableBatchUpdate.java | 10 +- .../spanner/connection/RetriableUpdate.java | 11 +- .../connection/SingleUseTransaction.java | 26 +- .../spanner/connection/StatementResult.java | 4 + .../cloud/spanner/connection/UnitOfWork.java | 8 +- .../connection/ClientSideStatements.json | 45 + .../cloud/spanner/connection/AbortedTest.java | 55 + .../AbstractConnectionImplTest.java | 27 + .../ConnectionImplAutocommitReadOnlyTest.java | 24 + ...ConnectionImplAutocommitReadWriteTest.java | 37 + .../connection/ConnectionImplTest.java | 137 + ...nnectionImplTransactionalReadOnlyTest.java | 32 + ...nectionImplTransactionalReadWriteTest.java | 65 + .../cloud/spanner/connection/TaggingTest.java | 738 ++ .../connection/ClientSideStatementsTest.sql | 9710 ++++++++++------- .../ConnectionImplGeneratedSqlScriptTest.sql | 5447 ++++----- 26 files changed, 10184 insertions(+), 6496 deletions(-) create mode 100644 google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/TaggingTest.java diff --git a/google-cloud-spanner/clirr-ignored-differences.xml b/google-cloud-spanner/clirr-ignored-differences.xml index 75f83555c9..75df772d76 100644 --- a/google-cloud-spanner/clirr-ignored-differences.xml +++ b/google-cloud-spanner/clirr-ignored-differences.xml @@ -592,6 +592,28 @@ com/google/cloud/spanner/AsyncTransactionManager$CommitTimestampFuture java.lang.Object get() + + + + 7012 + com/google/cloud/spanner/connection/Connection + java.lang.String getStatementTag() + + + 7012 + com/google/cloud/spanner/connection/Connection + void setStatementTag(java.lang.String) + + + 7012 + com/google/cloud/spanner/connection/Connection + java.lang.String getTransactionTag() + + + 7012 + com/google/cloud/spanner/connection/Connection + void setTransactionTag(java.lang.String) + 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 0e9ca97209..6fb5d01531 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 @@ -51,6 +51,7 @@ abstract class AbstractBaseUnitOfWork implements UnitOfWork { private final StatementExecutor statementExecutor; private final StatementTimeout statementTimeout; + protected final String transactionTag; /** Class for keeping track of the stacktrace of the caller of an async statement. */ static final class SpannerAsyncExecutionException extends RuntimeException { @@ -82,6 +83,7 @@ enum InterceptorsUsage { abstract static class Builder, T extends AbstractBaseUnitOfWork> { private StatementExecutor statementExecutor; private StatementTimeout statementTimeout = new StatementTimeout(); + private String transactionTag; Builder() {} @@ -102,6 +104,11 @@ B setStatementTimeout(StatementTimeout timeout) { return self(); } + B setTransactionTag(@Nullable String tag) { + this.transactionTag = tag; + return self(); + } + abstract T build(); } @@ -109,6 +116,7 @@ B setStatementTimeout(StatementTimeout timeout) { Preconditions.checkState(builder.statementExecutor != null, "No statement executor specified"); this.statementExecutor = builder.statementExecutor; this.statementTimeout = builder.statementTimeout; + this.transactionTag = builder.transactionTag; } StatementExecutor getStatementExecutor() { 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 fb7e7bca01..42b77a69d0 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 @@ -33,6 +33,7 @@ import com.google.cloud.spanner.Statement; import com.google.cloud.spanner.TimestampBound; import com.google.cloud.spanner.connection.StatementResult.ResultType; +import com.google.spanner.v1.ExecuteBatchDmlRequest; import java.util.Iterator; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -330,6 +331,52 @@ public interface Connection extends AutoCloseable { */ TransactionMode getTransactionMode(); + /** + * Sets the transaction tag to use for the current transaction. This method may only be called + * when in a transaction and before any statements have been executed in the transaction. + * + *

The tag will be set as the transaction tag of all statements during the transaction, and as + * the transaction tag of the commit. + * + *

The transaction tag will automatically be cleared after the transaction has ended. + * + * @param tag The tag to use. + */ + default void setTransactionTag(String tag) { + throw new UnsupportedOperationException(); + } + + /** @return The transaction tag of the current transaction. */ + default String getTransactionTag() { + throw new UnsupportedOperationException(); + } + + /** + * Sets the statement tag to use for the next statement that is executed. The tag is automatically + * cleared after the statement is executed. Statement tags can be used both with autocommit=true + * and autocommit=false, and can be used for partitioned DML. + * + *

Statement tags are not allowed before COMMIT and ROLLBACK statements. + * + *

Statement tags are allowed before START BATCH DML statements and will be included in the + * {@link ExecuteBatchDmlRequest} that is sent to Spanner. Statement tags are not allowed inside a + * batch. + * + * @param tag The statement tag to use with the next statement that will be executed on this + * connection. + */ + default void setStatementTag(String tag) { + throw new UnsupportedOperationException(); + } + + /** + * @return The statement tag that will be used with the next statement that is executed on this + * connection. + */ + default String getStatementTag() { + throw new UnsupportedOperationException(); + } + /** * @return true if this connection will automatically retry read/write transactions * that abort. This method may only be called when the connection is in read/write 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 ecf79a8086..6c3b50a973 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 @@ -26,7 +26,9 @@ import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.Mutation; +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.ReadContext.QueryAnalyzeMode; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.ResultSets; @@ -45,6 +47,7 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.spanner.v1.ExecuteSqlRequest.QueryOptions; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; @@ -206,6 +209,9 @@ static UnitOfWorkType of(TransactionMode transactionMode) { private TimestampBound readOnlyStaleness = TimestampBound.strong(); private QueryOptions queryOptions = QueryOptions.getDefaultInstance(); + private String transactionTag; + private String statementTag; + /** Create a connection and register it in the SpannerPool. */ ConnectionImpl(ConnectionOptions options) { Preconditions.checkNotNull(options); @@ -512,6 +518,47 @@ public void setTransactionMode(TransactionMode transactionMode) { this.unitOfWorkType = UnitOfWorkType.of(transactionMode); } + @Override + public String getTransactionTag() { + ConnectionPreconditions.checkState(!isClosed(), CLOSED_ERROR_MSG); + ConnectionPreconditions.checkState(!isDdlBatchActive(), "This connection is in a DDL batch"); + return transactionTag; + } + + @Override + public void setTransactionTag(String tag) { + ConnectionPreconditions.checkState(!isClosed(), CLOSED_ERROR_MSG); + ConnectionPreconditions.checkState( + !isBatchActive(), "Cannot set transaction tag while in a batch"); + ConnectionPreconditions.checkState(isInTransaction(), "This connection has no transaction"); + ConnectionPreconditions.checkState( + !isTransactionStarted(), + "The transaction tag cannot be set after the transaction has started"); + ConnectionPreconditions.checkState( + getTransactionMode() == TransactionMode.READ_WRITE_TRANSACTION, + "Transaction tag can only be set for a read/write transaction"); + + this.transactionBeginMarked = true; + this.transactionTag = tag; + } + + @Override + public String getStatementTag() { + ConnectionPreconditions.checkState(!isClosed(), CLOSED_ERROR_MSG); + ConnectionPreconditions.checkState( + !isBatchActive(), "Statement tags are not allowed inside a batch"); + return statementTag; + } + + @Override + public void setStatementTag(String tag) { + ConnectionPreconditions.checkState(!isClosed(), CLOSED_ERROR_MSG); + ConnectionPreconditions.checkState( + !isBatchActive(), "Statement tags are not allowed inside a batch"); + + this.statementTag = tag; + } + /** * Throws an {@link SpannerException} with code {@link ErrorCode#FAILED_PRECONDITION} if the * current state of this connection does not allow changing the setting for retryAbortsInternally. @@ -643,6 +690,7 @@ private void setDefaultTransactionOptions() { ? UnitOfWorkType.READ_ONLY_TRANSACTION : UnitOfWorkType.READ_WRITE_TRANSACTION; batchMode = BatchMode.NONE; + transactionTag = null; } else { popUnitOfWorkFromTransactionStack(); } @@ -717,6 +765,8 @@ public ApiFuture rollbackAsync() { private ApiFuture endCurrentTransactionAsync(EndTransactionMethod endTransactionMethod) { ConnectionPreconditions.checkState(!isBatchActive(), "This connection has an active batch"); ConnectionPreconditions.checkState(isInTransaction(), "This connection has no transaction"); + ConnectionPreconditions.checkState( + statementTag == null, "Statement tags are not supported for COMMIT or ROLLBACK"); ApiFuture res; try { if (isTransactionStarted()) { @@ -954,6 +1004,34 @@ public ApiFuture executeBatchUpdateAsync(Iterable updates) { return internalExecuteBatchUpdateAsync(parsedStatements); } + private QueryOption[] mergeQueryStatementTag(QueryOption... options) { + if (this.statementTag != null) { + // Shortcut for the most common scenario. + if (options == null || options.length == 0) { + options = new QueryOption[] {Options.tag(statementTag)}; + } else { + options = Arrays.copyOf(options, options.length + 1); + options[options.length - 1] = Options.tag(statementTag); + } + this.statementTag = null; + } + return options; + } + + private UpdateOption[] mergeUpdateStatementTag(UpdateOption... options) { + if (this.statementTag != null) { + // Shortcut for the most common scenario. + if (options == null || options.length == 0) { + options = new UpdateOption[] {Options.tag(statementTag)}; + } else { + options = Arrays.copyOf(options, options.length + 1); + options[options.length - 1] = Options.tag(statementTag); + } + this.statementTag = null; + } + return options; + } + private ResultSet internalExecuteQuery( final ParsedStatement statement, final AnalyzeMode analyzeMode, @@ -961,7 +1039,8 @@ private ResultSet internalExecuteQuery( Preconditions.checkArgument( statement.getType() == StatementType.QUERY, "Statement must be a query"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); - return get(transaction.executeQueryAsync(statement, analyzeMode, options)); + return get( + transaction.executeQueryAsync(statement, analyzeMode, mergeQueryStatementTag(options))); } private AsyncResultSet internalExecuteQueryAsync( @@ -972,21 +1051,23 @@ private AsyncResultSet internalExecuteQueryAsync( statement.getType() == StatementType.QUERY, "Statement must be a query"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); return ResultSets.toAsyncResultSet( - transaction.executeQueryAsync(statement, analyzeMode, options), + transaction.executeQueryAsync(statement, analyzeMode, mergeQueryStatementTag(options)), spanner.getAsyncExecutorProvider(), options); } - private ApiFuture internalExecuteUpdateAsync(final ParsedStatement update) { + private ApiFuture internalExecuteUpdateAsync( + final ParsedStatement update, UpdateOption... options) { Preconditions.checkArgument( update.getType() == StatementType.UPDATE, "Statement must be an update"); UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); - return transaction.executeUpdateAsync(update); + return transaction.executeUpdateAsync(update, mergeUpdateStatementTag(options)); } - private ApiFuture internalExecuteBatchUpdateAsync(List updates) { + private ApiFuture internalExecuteBatchUpdateAsync( + List updates, UpdateOption... options) { UnitOfWork transaction = getCurrentUnitOfWorkOrStartNewUnitOfWork(); - return transaction.executeBatchUpdateAsync(updates); + return transaction.executeBatchUpdateAsync(updates, mergeUpdateStatementTag(options)); } /** @@ -1001,7 +1082,8 @@ UnitOfWork getCurrentUnitOfWorkOrStartNewUnitOfWork() { return this.currentUnitOfWork; } - private UnitOfWork createNewUnitOfWork() { + @VisibleForTesting + UnitOfWork createNewUnitOfWork() { if (isAutocommit() && !isInTransaction() && !isInBatch()) { return SingleUseTransaction.newBuilder() .setDdlClient(ddlClient) @@ -1021,6 +1103,7 @@ private UnitOfWork createNewUnitOfWork() { .setReadOnlyStaleness(readOnlyStaleness) .setStatementTimeout(statementTimeout) .withStatementExecutor(statementExecutor) + .setTransactionTag(transactionTag) .build(); case READ_WRITE_TRANSACTION: return ReadWriteTransaction.newBuilder() @@ -1030,6 +1113,7 @@ private UnitOfWork createNewUnitOfWork() { .setTransactionRetryListeners(transactionRetryListeners) .setStatementTimeout(statementTimeout) .withStatementExecutor(statementExecutor) + .setTransactionTag(transactionTag) .build(); case DML_BATCH: // A DML batch can run inside the current transaction. It should therefore only @@ -1039,6 +1123,7 @@ private UnitOfWork createNewUnitOfWork() { .setTransaction(currentUnitOfWork) .setStatementTimeout(statementTimeout) .withStatementExecutor(statementExecutor) + .setStatementTag(statementTag) .build(); case DDL_BATCH: return DdlBatch.newBuilder() 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 3f6dba9a40..6ed72cf5f1 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 @@ -74,6 +74,14 @@ interface ConnectionStatementExecutor { StatementResult statementShowReturnCommitStats(); + StatementResult statementSetStatementTag(String tag); + + StatementResult statementShowStatementTag(); + + StatementResult statementSetTransactionTag(String tag); + + StatementResult statementShowTransactionTag(); + StatementResult statementBeginTransaction(); StatementResult statementCommit(); 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 0f3f7470a6..d85e34a874 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 @@ -29,8 +29,10 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_READ_ONLY_STALENESS; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_RETRY_ABORTS_INTERNALLY; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_RETURN_COMMIT_STATS; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SET_STATEMENT_TAG; 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_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; @@ -42,7 +44,9 @@ import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_READ_TIMESTAMP; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_RETRY_ABORTS_INTERNALLY; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_RETURN_COMMIT_STATS; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_STATEMENT_TAG; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_STATEMENT_TIMEOUT; +import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.SHOW_TRANSACTION_TAG; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.START_BATCH_DDL; import static com.google.cloud.spanner.connection.StatementResult.ClientSideStatementType.START_BATCH_DML; import static com.google.cloud.spanner.connection.StatementResultImpl.noResult; @@ -57,6 +61,7 @@ import com.google.cloud.spanner.Type; import com.google.cloud.spanner.Type.StructField; import com.google.cloud.spanner.connection.ReadOnlyStalenessUtil.DurationValueGetter; +import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.protobuf.Duration; import java.util.Arrays; @@ -258,6 +263,34 @@ public StatementResult statementShowReturnCommitStats() { "RETURN_COMMIT_STATS", getConnection().isReturnCommitStats(), SHOW_RETURN_COMMIT_STATS); } + @Override + public StatementResult statementSetStatementTag(String tag) { + getConnection().setStatementTag("".equals(tag) ? null : tag); + return noResult(SET_STATEMENT_TAG); + } + + @Override + public StatementResult statementShowStatementTag() { + return resultSet( + "STATEMENT_TAG", + MoreObjects.firstNonNull(getConnection().getStatementTag(), ""), + SHOW_STATEMENT_TAG); + } + + @Override + public StatementResult statementSetTransactionTag(String tag) { + getConnection().setTransactionTag("".equals(tag) ? null : tag); + return noResult(SET_TRANSACTION_TAG); + } + + @Override + public StatementResult statementShowTransactionTag() { + return resultSet( + "TRANSACTION_TAG", + MoreObjects.firstNonNull(getConnection().getTransactionTag(), ""), + SHOW_TRANSACTION_TAG); + } + @Override public StatementResult statementBeginTransaction() { getConnection().beginTransaction(); diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlBatch.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlBatch.java index 3624fdb592..675b6e3a95 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlBatch.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DdlBatch.java @@ -25,6 +25,7 @@ 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.ResultSet; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; @@ -191,13 +192,14 @@ public ApiFuture executeDdlAsync(ParsedStatement ddl) { } @Override - public ApiFuture executeUpdateAsync(ParsedStatement update) { + public ApiFuture executeUpdateAsync(ParsedStatement update, UpdateOption... options) { throw SpannerExceptionFactory.newSpannerException( ErrorCode.FAILED_PRECONDITION, "Executing updates is not allowed for DDL batches."); } @Override - public ApiFuture executeBatchUpdateAsync(Iterable updates) { + public ApiFuture executeBatchUpdateAsync( + Iterable updates, UpdateOption... options) { throw SpannerExceptionFactory.newSpannerException( ErrorCode.FAILED_PRECONDITION, "Executing batch updates is not allowed for DDL batches."); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java index 3da5c6edd7..ee46d99763 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/DmlBatch.java @@ -24,7 +24,9 @@ import com.google.cloud.spanner.CommitResponse; import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.Mutation; +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.ResultSet; import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.connection.StatementParser.ParsedStatement; @@ -41,11 +43,13 @@ */ class DmlBatch extends AbstractBaseUnitOfWork { private final UnitOfWork transaction; + private final String statementTag; private final List statements = new ArrayList<>(); private UnitOfWorkState state = UnitOfWorkState.STARTED; static class Builder extends AbstractBaseUnitOfWork.Builder { private UnitOfWork transaction; + private String statementTag; private Builder() {} @@ -55,6 +59,11 @@ Builder setTransaction(UnitOfWork transaction) { return this; } + Builder setStatementTag(String tag) { + this.statementTag = tag; + return this; + } + @Override DmlBatch build() { Preconditions.checkState(transaction != null, "No transaction specified"); @@ -69,6 +78,7 @@ static Builder newBuilder() { private DmlBatch(Builder builder) { super(builder); this.transaction = builder.transaction; + this.statementTag = builder.statementTag; } @Override @@ -138,7 +148,7 @@ public ApiFuture executeDdlAsync(ParsedStatement ddl) { } @Override - public ApiFuture executeUpdateAsync(ParsedStatement update) { + public ApiFuture executeUpdateAsync(ParsedStatement update, UpdateOption... options) { ConnectionPreconditions.checkState( state == UnitOfWorkState.STARTED, "The batch is no longer active and cannot be used for further statements"); @@ -152,7 +162,8 @@ public ApiFuture executeUpdateAsync(ParsedStatement update) { } @Override - public ApiFuture executeBatchUpdateAsync(Iterable updates) { + public ApiFuture executeBatchUpdateAsync( + Iterable updates, UpdateOption... options) { throw SpannerExceptionFactory.newSpannerException( ErrorCode.FAILED_PRECONDITION, "Executing batch updates is not allowed for DML batches."); } @@ -178,7 +189,9 @@ public ApiFuture runBatchAsync() { // executed AFTER a Future is done, which means that a user could read the state of the Batch // before it has been changed. final SettableApiFuture res = SettableApiFuture.create(); - ApiFuture updateCounts = transaction.executeBatchUpdateAsync(statements); + UpdateOption[] options = + statementTag == null ? new UpdateOption[0] : new UpdateOption[] {Options.tag(statementTag)}; + ApiFuture updateCounts = transaction.executeBatchUpdateAsync(statements, options); ApiFutures.addCallback( updateCounts, new ApiFutureCallback() { 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 5873987773..1e1fa0cba8 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 @@ -23,6 +23,7 @@ import com.google.cloud.spanner.DatabaseClient; import com.google.cloud.spanner.ErrorCode; import com.google.cloud.spanner.Mutation; +import com.google.cloud.spanner.Options.UpdateOption; import com.google.cloud.spanner.ReadContext; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; @@ -156,14 +157,15 @@ public ApiFuture executeDdlAsync(ParsedStatement ddl) { } @Override - public ApiFuture executeUpdateAsync(ParsedStatement update) { + public ApiFuture executeUpdateAsync(ParsedStatement update, UpdateOption... options) { throw SpannerExceptionFactory.newSpannerException( ErrorCode.FAILED_PRECONDITION, "Update statements are not allowed for read-only transactions"); } @Override - public ApiFuture executeBatchUpdateAsync(Iterable updates) { + public ApiFuture executeBatchUpdateAsync( + Iterable updates, UpdateOption... options) { throw SpannerExceptionFactory.newSpannerException( ErrorCode.FAILED_PRECONDITION, "Batch updates are not allowed for read-only transactions."); } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java index 6bf3b120a0..a8956d44dc 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/ReadWriteTransaction.java @@ -32,6 +32,8 @@ import com.google.cloud.spanner.Mutation; import com.google.cloud.spanner.Options; import com.google.cloud.spanner.Options.QueryOption; +import com.google.cloud.spanner.Options.TransactionOption; +import com.google.cloud.spanner.Options.UpdateOption; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; @@ -42,6 +44,7 @@ import com.google.cloud.spanner.connection.TransactionRetryListener.RetryResult; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.MoreExecutors; import com.google.spanner.v1.SpannerGrpc; @@ -70,7 +73,7 @@ class ReadWriteTransaction extends AbstractMultiUseTransaction { private static final int MAX_INTERNAL_RETRIES = 50; private final long transactionId; private final DatabaseClient dbClient; - private TransactionManager txManager; + private final TransactionManager txManager; private final boolean retryAbortsInternally; private int transactionRetryAttempts; private int successfulRetries; @@ -136,10 +139,26 @@ private ReadWriteTransaction(Builder builder) { this.dbClient = builder.dbClient; this.retryAbortsInternally = builder.retryAbortsInternally; this.transactionRetryListeners = builder.transactionRetryListeners; - this.txManager = - builder.returnCommitStats - ? dbClient.transactionManager(Options.commitStats()) - : dbClient.transactionManager(); + this.txManager = dbClient.transactionManager(extractOptions(builder)); + } + + private TransactionOption[] extractOptions(Builder builder) { + int numOptions = 0; + if (builder.returnCommitStats) { + numOptions++; + } + if (this.transactionTag != null) { + numOptions++; + } + TransactionOption[] options = new TransactionOption[numOptions]; + int index = 0; + if (builder.returnCommitStats) { + options[index++] = Options.commitStats(); + } + if (this.transactionTag != null) { + options[index++] = Options.tag(this.transactionTag); + } + return options; } @Override @@ -147,6 +166,8 @@ public String toString() { return new StringBuilder() .append("ReadWriteTransaction - ID: ") .append(transactionId) + .append("; Tag: ") + .append(Strings.nullToEmpty(transactionTag)) .append("; Status: ") .append(internalGetStateName()) .append("; Started: ") @@ -363,7 +384,8 @@ public void onSuccess(ResultSet result) {} } @Override - public ApiFuture executeUpdateAsync(final ParsedStatement update) { + public ApiFuture executeUpdateAsync( + final ParsedStatement update, final UpdateOption... options) { Preconditions.checkNotNull(update); Preconditions.checkArgument(update.isUpdate(), "The statement is not an update statement"); checkValidTransaction(); @@ -383,8 +405,8 @@ public ApiFuture executeUpdateAsync(final ParsedStatement update) { StatementExecutionStep.EXECUTE_STATEMENT, ReadWriteTransaction.this); long updateCount = - get(txContextFuture).executeUpdate(update.getStatement()); - createAndAddRetriableUpdate(update, updateCount); + get(txContextFuture).executeUpdate(update.getStatement(), options); + createAndAddRetriableUpdate(update, updateCount, options); return updateCount; } catch (AbortedException e) { throw e; @@ -440,7 +462,8 @@ public void onSuccess(Long result) {} StatementParser.INSTANCE.parse(Statement.of("RUN BATCH")); @Override - public ApiFuture executeBatchUpdateAsync(Iterable updates) { + public ApiFuture executeBatchUpdateAsync( + Iterable updates, final UpdateOption... options) { Preconditions.checkNotNull(updates); final List updateStatements = new LinkedList<>(); for (ParsedStatement update : updates) { @@ -466,8 +489,9 @@ public ApiFuture executeBatchUpdateAsync(Iterable updat EXECUTE_BATCH_UPDATE_STATEMENT, StatementExecutionStep.EXECUTE_STATEMENT, ReadWriteTransaction.this); - long[] updateCounts = get(txContextFuture).batchUpdate(updateStatements); - createAndAddRetriableBatchUpdate(updateStatements, updateCounts); + long[] updateCounts = + get(txContextFuture).batchUpdate(updateStatements, options); + createAndAddRetriableBatchUpdate(updateStatements, updateCounts, options); return updateCounts; } catch (AbortedException e) { throw e; @@ -668,15 +692,17 @@ private void createAndAddFailedQuery( } } - private void createAndAddRetriableUpdate(ParsedStatement update, long updateCount) { + private void createAndAddRetriableUpdate( + ParsedStatement update, long updateCount, UpdateOption... options) { if (retryAbortsInternally) { - addRetryStatement(new RetriableUpdate(this, update, updateCount)); + addRetryStatement(new RetriableUpdate(this, update, updateCount, options)); } } - private void createAndAddRetriableBatchUpdate(Iterable updates, long[] updateCounts) { + private void createAndAddRetriableBatchUpdate( + Iterable updates, long[] updateCounts, UpdateOption... options) { if (retryAbortsInternally) { - addRetryStatement(new RetriableBatchUpdate(this, updates, updateCounts)); + addRetryStatement(new RetriableBatchUpdate(this, updates, updateCounts, options)); } } diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableBatchUpdate.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableBatchUpdate.java index 74925a2e3f..ad2e2b2950 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableBatchUpdate.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableBatchUpdate.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.AbortedException; +import com.google.cloud.spanner.Options.UpdateOption; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.Statement; @@ -32,14 +33,19 @@ final class RetriableBatchUpdate implements RetriableStatement { private final ReadWriteTransaction transaction; private final Iterable statements; private final long[] updateCounts; + private final UpdateOption[] options; RetriableBatchUpdate( - ReadWriteTransaction transaction, Iterable statements, long[] updateCounts) { + ReadWriteTransaction transaction, + Iterable statements, + long[] updateCounts, + UpdateOption... options) { Preconditions.checkNotNull(transaction); Preconditions.checkNotNull(statements); this.transaction = transaction; this.statements = statements; this.updateCounts = updateCounts; + this.options = options; } @Override @@ -52,7 +58,7 @@ public void retry(AbortedException aborted) throws AbortedException { ReadWriteTransaction.EXECUTE_BATCH_UPDATE_STATEMENT, StatementExecutionStep.RETRY_STATEMENT, transaction); - newCount = transaction.getReadContext().batchUpdate(statements); + newCount = transaction.getReadContext().batchUpdate(statements, options); } catch (AbortedException e) { // Just re-throw the AbortedException and let the retry logic determine whether another try // should be executed or not. diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableUpdate.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableUpdate.java index fe5da7cdf0..060a1aa61d 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableUpdate.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/connection/RetriableUpdate.java @@ -17,6 +17,7 @@ package com.google.cloud.spanner.connection; import com.google.cloud.spanner.AbortedException; +import com.google.cloud.spanner.Options.UpdateOption; import com.google.cloud.spanner.SpannerException; import com.google.cloud.spanner.SpannerExceptionFactory; import com.google.cloud.spanner.connection.ReadWriteTransaction.RetriableStatement; @@ -31,13 +32,19 @@ final class RetriableUpdate implements RetriableStatement { private final ReadWriteTransaction transaction; private final ParsedStatement statement; private final long updateCount; + private final UpdateOption[] options; - RetriableUpdate(ReadWriteTransaction transaction, ParsedStatement statement, long updateCount) { + RetriableUpdate( + ReadWriteTransaction transaction, + ParsedStatement statement, + long updateCount, + UpdateOption... options) { Preconditions.checkNotNull(transaction); Preconditions.checkNotNull(statement); this.transaction = transaction; this.statement = statement; this.updateCount = updateCount; + this.options = options; } @Override @@ -47,7 +54,7 @@ public void retry(AbortedException aborted) throws AbortedException { transaction .getStatementExecutor() .invokeInterceptors(statement, StatementExecutionStep.RETRY_STATEMENT, transaction); - newCount = transaction.getReadContext().executeUpdate(statement.getStatement()); + newCount = transaction.getReadContext().executeUpdate(statement.getStatement(), options); } catch (AbortedException e) { // Just re-throw the AbortedException and let the retry logic determine whether another try // should be executed or not. 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 5fdaf877d8..4b3e0e6666 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 @@ -26,6 +26,7 @@ import com.google.cloud.spanner.Mutation; 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.ReadOnlyTransaction; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerApiFutures; @@ -281,7 +282,7 @@ public ApiFuture executeDdlAsync(final ParsedStatement ddl) { } @Override - public ApiFuture executeUpdateAsync(ParsedStatement update) { + public ApiFuture executeUpdateAsync(ParsedStatement update, UpdateOption... options) { Preconditions.checkNotNull(update); Preconditions.checkArgument(update.isUpdate(), "Statement is not an update statement"); ConnectionPreconditions.checkState( @@ -291,10 +292,10 @@ public ApiFuture executeUpdateAsync(ParsedStatement update) { ApiFuture res; switch (autocommitDmlMode) { case TRANSACTIONAL: - res = executeTransactionalUpdateAsync(update); + res = executeTransactionalUpdateAsync(update, options); break; case PARTITIONED_NON_ATOMIC: - res = executePartitionedUpdateAsync(update); + res = executePartitionedUpdateAsync(update, options); break; default: throw SpannerExceptionFactory.newSpannerException( @@ -307,7 +308,8 @@ public ApiFuture executeUpdateAsync(ParsedStatement update) { StatementParser.INSTANCE.parse(Statement.of("RUN BATCH")); @Override - public ApiFuture executeBatchUpdateAsync(Iterable updates) { + public ApiFuture executeBatchUpdateAsync( + Iterable updates, UpdateOption... options) { Preconditions.checkNotNull(updates); for (ParsedStatement update : updates) { Preconditions.checkArgument( @@ -320,7 +322,7 @@ public ApiFuture executeBatchUpdateAsync(Iterable updat switch (autocommitDmlMode) { case TRANSACTIONAL: - return executeTransactionalBatchUpdateAsync(updates); + return executeTransactionalBatchUpdateAsync(updates, options); case PARTITIONED_NON_ATOMIC: throw SpannerExceptionFactory.newSpannerException( ErrorCode.FAILED_PRECONDITION, "Batch updates are not allowed in " + autocommitDmlMode); @@ -336,14 +338,15 @@ private TransactionRunner createWriteTransaction() { : dbClient.readWriteTransaction(); } - private ApiFuture executeTransactionalUpdateAsync(final ParsedStatement update) { + private ApiFuture executeTransactionalUpdateAsync( + final ParsedStatement update, final UpdateOption... options) { Callable callable = () -> { try { writeTransaction = createWriteTransaction(); Long res = writeTransaction.run( - transaction -> transaction.executeUpdate(update.getStatement())); + transaction -> transaction.executeUpdate(update.getStatement(), options)); state = UnitOfWorkState.COMMITTED; return res; } catch (Throwable t) { @@ -357,11 +360,12 @@ private ApiFuture executeTransactionalUpdateAsync(final ParsedStatement up ImmutableList.of(SpannerGrpc.getExecuteSqlMethod(), SpannerGrpc.getCommitMethod())); } - private ApiFuture executePartitionedUpdateAsync(final ParsedStatement update) { + private ApiFuture executePartitionedUpdateAsync( + final ParsedStatement update, final UpdateOption... options) { Callable callable = () -> { try { - Long res = dbClient.executePartitionedUpdate(update.getStatement()); + Long res = dbClient.executePartitionedUpdate(update.getStatement(), options); state = UnitOfWorkState.COMMITTED; return res; } catch (Throwable t) { @@ -373,7 +377,7 @@ private ApiFuture executePartitionedUpdateAsync(final ParsedStatement upda } private ApiFuture executeTransactionalBatchUpdateAsync( - final Iterable updates) { + final Iterable updates, final UpdateOption... options) { Callable callable = () -> { writeTransaction = createWriteTransaction(); @@ -382,7 +386,7 @@ private ApiFuture executeTransactionalBatchUpdateAsync( try { long[] res = transaction.batchUpdate( - Iterables.transform(updates, ParsedStatement::getStatement)); + Iterables.transform(updates, ParsedStatement::getStatement), options); state = UnitOfWorkState.COMMITTED; return res; } catch (Throwable t) { 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 5ece3a20e9..94c346fcf7 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 @@ -69,6 +69,10 @@ enum ClientSideStatementType { SET_OPTIMIZER_STATISTICS_PACKAGE, SHOW_RETURN_COMMIT_STATS, SET_RETURN_COMMIT_STATS, + SHOW_STATEMENT_TAG, + SET_STATEMENT_TAG, + SHOW_TRANSACTION_TAG, + SET_TRANSACTION_TAG, BEGIN, COMMIT, ROLLBACK, 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 1d8de48bf5..0bf6fff9f2 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 @@ -22,6 +22,7 @@ import com.google.cloud.spanner.CommitResponse; 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.ReadContext; import com.google.cloud.spanner.ResultSet; import com.google.cloud.spanner.SpannerException; @@ -170,20 +171,23 @@ ApiFuture executeQueryAsync( * Execute a DML statement on Spanner. * * @param update The DML statement to execute. + * @param options Update options to apply for the statement. * @return an {@link ApiFuture} containing the number of records that were * inserted/updated/deleted by this statement. */ - ApiFuture executeUpdateAsync(ParsedStatement update); + ApiFuture executeUpdateAsync(ParsedStatement update, UpdateOption... options); /** * Execute a batch of DML statements on Spanner. * * @param updates The DML statements to execute. + * @param options Update options to apply for the statement. * @return an {@link ApiFuture} containing an array with the number of records that were * inserted/updated/deleted per statement. * @see TransactionContext#batchUpdate(Iterable) */ - ApiFuture executeBatchUpdateAsync(Iterable updates); + ApiFuture executeBatchUpdateAsync( + Iterable updates, UpdateOption... options); /** * Writes a batch of {@link Mutation}s to Spanner. For {@link ReadWriteTransaction}s, this means 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 4dfe480395..dc23f983a7 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 @@ -101,6 +101,22 @@ "exampleStatements": ["show variable commit_response"], "examplePrerequisiteStatements": ["update foo set bar=1"] }, + { + "name": "SHOW VARIABLE STATEMENT_TAG", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "regex": "(?is)\\A\\s*show\\s+variable\\s+statement_tag\\s*\\z", + "method": "statementShowStatementTag", + "exampleStatements": ["show variable statement_tag"] + }, + { + "name": "SHOW VARIABLE TRANSACTION_TAG", + "executorName": "ClientSideStatementNoParamExecutor", + "resultType": "RESULT_SET", + "regex": "(?is)\\A\\s*show\\s+variable\\s+transaction_tag\\s*\\z", + "method": "statementShowTransactionTag", + "exampleStatements": ["show variable transaction_tag"] + }, { "name": "BEGIN TRANSACTION", "executorName": "ClientSideStatementNoParamExecutor", @@ -316,6 +332,35 @@ "allowedValues": "(TRUE|FALSE)", "converterName": "ClientSideStatementValueConverters$BooleanConverter" } + }, + { + "name": "SET STATEMENT_TAG = ''", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "regex": "(?is)\\A\\s*set\\s+statement_tag\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetStatementTag", + "exampleStatements": ["set statement_tag='tag1'", "set statement_tag='tag2'", "set statement_tag=''"], + "setStatement": { + "propertyName": "STATEMENT_TAG", + "separator": "=", + "allowedValues": "'(([a-zA-Z][a-zA-Z0-9_\\-]{1,63})|())'", + "converterName": "ClientSideStatementValueConverters$StringValueConverter" + } + }, + { + "name": "SET TRANSACTION_TAG = ''", + "executorName": "ClientSideStatementSetExecutor", + "resultType": "NO_RESULT", + "regex": "(?is)\\A\\s*set\\s+transaction_tag\\s*(?:=)\\s*(.*)\\z", + "method": "statementSetTransactionTag", + "exampleStatements": ["set transaction_tag='tag1'", "set transaction_tag='tag2'", "set transaction_tag=''"], + "examplePrerequisiteStatements": ["set autocommit = false"], + "setStatement": { + "propertyName": "TRANSACTION_TAG", + "separator": "=", + "allowedValues": "'(([a-zA-Z][a-zA-Z0-9_\\-]{1,63})|())'", + "converterName": "ClientSideStatementValueConverters$StringValueConverter" + } } ] } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbortedTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbortedTest.java index 1703d987ad..274f6d2730 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbortedTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbortedTest.java @@ -20,6 +20,7 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import com.google.cloud.Timestamp; @@ -244,6 +245,60 @@ public void testAbortedDuringRetryOfFailedBatchUpdateAsFirstStatement() { assertThat(mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)).isEqualTo(6); } + @Test + public void testRetryUsesTags() { + mockSpanner.putStatementResult( + StatementResult.query(SELECT_COUNT_STATEMENT, SELECT_COUNT_RESULTSET_BEFORE_INSERT)); + mockSpanner.putStatementResult(StatementResult.update(INSERT_STATEMENT, UPDATE_COUNT)); + try (ITConnection connection = createConnection()) { + connection.setTransactionTag("transaction-tag"); + connection.setStatementTag("statement-tag"); + connection.executeUpdate(INSERT_STATEMENT); + connection.setStatementTag("statement-tag"); + connection.executeBatchUpdate(Collections.singleton(INSERT_STATEMENT)); + connection.setStatementTag("statement-tag"); + connection.executeQuery(SELECT_COUNT_STATEMENT); + + mockSpanner.abortNextStatement(); + connection.commit(); + } + long executeSqlRequestCount = + mockSpanner.getRequestsOfType(ExecuteSqlRequest.class).stream() + .filter( + request -> + request.getRequestOptions().getRequestTag().equals("statement-tag") + && request + .getRequestOptions() + .getTransactionTag() + .equals("transaction-tag")) + .count(); + assertEquals(4L, executeSqlRequestCount); + + long executeBatchSqlRequestCount = + mockSpanner.getRequestsOfType(ExecuteBatchDmlRequest.class).stream() + .filter( + request -> + request.getRequestOptions().getRequestTag().equals("statement-tag") + && request + .getRequestOptions() + .getTransactionTag() + .equals("transaction-tag")) + .count(); + assertEquals(2L, executeBatchSqlRequestCount); + + long commitRequestCount = + mockSpanner.getRequestsOfType(CommitRequest.class).stream() + .filter( + request -> + request.getRequestOptions().getRequestTag().equals("") + && request + .getRequestOptions() + .getTransactionTag() + .equals("transaction-tag")) + .count(); + assertEquals(2L, commitRequestCount); + } + ITConnection createConnection(TransactionRetryListener listener) { ITConnection connection = super.createConnection(ImmutableList.of(), ImmutableList.of(listener)); diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java index ca3d6313d7..9fda9c68bb 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/AbstractConnectionImplTest.java @@ -23,6 +23,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertEquals; import com.google.cloud.Timestamp; import com.google.cloud.spanner.ErrorCode; @@ -431,6 +432,32 @@ public void testBeginTransaction() { } } + abstract boolean isSetTransactionTagAllowed(); + + @Test + public void testSetTransactionTag() { + try (Connection connection = getConnection()) { + String tag = "some-tag"; + if (isSetTransactionTagAllowed()) { + log(String.format("SET TRANSACTION_TAG = '%s';", tag)); + connection.setTransactionTag(tag); + assertEquals(tag, connection.getTransactionTag()); + } else { + expectSpannerException( + "SET TRANSACTION_TAG should not be allowed", + new ConnectionConsumer() { + @Override + public void accept(Connection t) { + log("@EXPECT EXCEPTION FAILED_PRECONDITION"); + log(String.format("SET TRANSACTION_TAG = '%s';", tag)); + t.setTransactionTag(tag); + } + }, + connection); + } + } + } + abstract boolean isSetTransactionModeAllowed(TransactionMode mode); @Test diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadOnlyTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadOnlyTest.java index 8b2808a8c9..dd4692a72d 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadOnlyTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadOnlyTest.java @@ -86,6 +86,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -232,6 +236,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -378,6 +386,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -523,6 +535,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -673,6 +689,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -823,6 +843,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadWriteTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadWriteTest.java index a94e8060db..78c21a3233 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadWriteTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplAutocommitReadWriteTest.java @@ -85,6 +85,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -229,6 +233,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -375,6 +383,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -518,6 +530,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -660,6 +676,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -802,6 +822,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -955,6 +979,10 @@ boolean isGetTransactionModeAllowed() { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isSetAutocommitDmlModeAllowed() { return true; @@ -1094,6 +1122,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + boolean isSetTransactionTagAllowed() { + // Transaction is read-only + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -1236,6 +1269,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; 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 8e5ed22454..5337a9f2f9 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 @@ -27,6 +27,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Matchers.any; @@ -66,6 +67,7 @@ import com.google.cloud.spanner.connection.ReadOnlyStalenessUtil.GetExactStaleness; import com.google.cloud.spanner.connection.StatementParser.ParsedStatement; import com.google.cloud.spanner.connection.StatementResult.ResultType; +import com.google.cloud.spanner.connection.UnitOfWork.UnitOfWorkState; import com.google.spanner.admin.database.v1.UpdateDatabaseDdlMetadata; import com.google.spanner.v1.ExecuteSqlRequest.QueryOptions; import com.google.spanner.v1.ResultSetStats; @@ -1443,4 +1445,139 @@ UnitOfWork getCurrentUnitOfWorkOrStartNewUnitOfWork() { prefetchOption); } } + + @Test + public void testStatementTagAlwaysAllowed() { + ConnectionOptions connectionOptions = mock(ConnectionOptions.class); + when(connectionOptions.isAutocommit()).thenReturn(true); + SpannerPool spannerPool = mock(SpannerPool.class); + DdlClient ddlClient = mock(DdlClient.class); + DatabaseClient dbClient = mock(DatabaseClient.class); + final UnitOfWork unitOfWork = mock(UnitOfWork.class); + when(unitOfWork.executeQueryAsync( + any(ParsedStatement.class), any(AnalyzeMode.class), Mockito.anyVararg())) + .thenReturn(ApiFutures.immediateFuture(mock(ResultSet.class))); + try (ConnectionImpl connection = + new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient) { + @Override + UnitOfWork getCurrentUnitOfWorkOrStartNewUnitOfWork() { + return unitOfWork; + } + }) { + assertTrue(connection.isAutocommit()); + + assertNull(connection.getStatementTag()); + connection.setStatementTag("tag"); + assertEquals("tag", connection.getStatementTag()); + connection.setStatementTag(null); + assertNull(connection.getStatementTag()); + + connection.setAutocommit(false); + + connection.setStatementTag("tag"); + assertEquals("tag", connection.getStatementTag()); + connection.setStatementTag(null); + assertNull(connection.getStatementTag()); + + // Start a transaction + connection.execute(Statement.of("SELECT FOO FROM BAR")); + connection.setStatementTag("tag"); + assertEquals("tag", connection.getStatementTag()); + connection.setStatementTag(null); + assertNull(connection.getStatementTag()); + } + } + + @Test + public void testTransactionTagAllowedInTransaction() { + ConnectionOptions connectionOptions = mock(ConnectionOptions.class); + when(connectionOptions.isAutocommit()).thenReturn(false); + SpannerPool spannerPool = mock(SpannerPool.class); + DdlClient ddlClient = mock(DdlClient.class); + DatabaseClient dbClient = mock(DatabaseClient.class); + try (ConnectionImpl connection = + new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient)) { + assertFalse(connection.isAutocommit()); + + assertNull(connection.getTransactionTag()); + connection.setTransactionTag("tag"); + assertEquals("tag", connection.getTransactionTag()); + connection.setTransactionTag(null); + assertNull(connection.getTransactionTag()); + + // Committing or rolling back a transaction should clear the transaction tag for the next + // transaction. + connection.setTransactionTag("tag"); + assertEquals("tag", connection.getTransactionTag()); + connection.commit(); + assertNull(connection.getTransactionTag()); + + connection.setTransactionTag("tag"); + assertEquals("tag", connection.getTransactionTag()); + connection.rollback(); + assertNull(connection.getTransactionTag()); + + // Temporary transactions should also allow transaction tags. + connection.setAutocommit(false); + connection.beginTransaction(); + assertNull(connection.getTransactionTag()); + connection.setTransactionTag("tag"); + assertEquals("tag", connection.getTransactionTag()); + connection.commit(); + assertNull(connection.getTransactionTag()); + } + } + + @Test + public void testTransactionTagNotAllowedWithoutTransaction() { + ConnectionOptions connectionOptions = mock(ConnectionOptions.class); + when(connectionOptions.isAutocommit()).thenReturn(true); + SpannerPool spannerPool = mock(SpannerPool.class); + DdlClient ddlClient = mock(DdlClient.class); + DatabaseClient dbClient = mock(DatabaseClient.class); + try (ConnectionImpl connection = + new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient)) { + assertTrue(connection.isAutocommit()); + + try { + connection.setTransactionTag("tag"); + fail("missing expected exception"); + } catch (SpannerException e) { + assertEquals(ErrorCode.FAILED_PRECONDITION, e.getErrorCode()); + } + } + } + + @Test + public void testTransactionTagNotAllowedAfterTransactionStarted() { + ConnectionOptions connectionOptions = mock(ConnectionOptions.class); + when(connectionOptions.isAutocommit()).thenReturn(false); + SpannerPool spannerPool = mock(SpannerPool.class); + DdlClient ddlClient = mock(DdlClient.class); + DatabaseClient dbClient = mock(DatabaseClient.class); + final UnitOfWork unitOfWork = mock(UnitOfWork.class); + // Indicate that a transaction has been started. + when(unitOfWork.getState()).thenReturn(UnitOfWorkState.STARTED); + when(unitOfWork.executeQueryAsync( + any(ParsedStatement.class), any(AnalyzeMode.class), Mockito.anyVararg())) + .thenReturn(ApiFutures.immediateFuture(mock(ResultSet.class))); + when(unitOfWork.rollbackAsync()).thenReturn(ApiFutures.immediateFuture(null)); + try (ConnectionImpl connection = + new ConnectionImpl(connectionOptions, spannerPool, ddlClient, dbClient) { + @Override + UnitOfWork createNewUnitOfWork() { + return unitOfWork; + } + }) { + // Start a transaction + connection.execute(Statement.of("SELECT FOO FROM BAR")); + try { + connection.setTransactionTag("tag"); + fail("missing expected exception"); + } catch (SpannerException e) { + assertEquals(ErrorCode.FAILED_PRECONDITION, e.getErrorCode()); + } + assertNull(connection.getTransactionTag()); + } + } } diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadOnlyTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadOnlyTest.java index 004f50eaba..c94b73926d 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadOnlyTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadOnlyTest.java @@ -85,6 +85,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -230,6 +234,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -378,6 +386,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -524,6 +536,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -674,6 +690,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -823,6 +843,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -971,6 +995,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -1114,6 +1142,10 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return mode == TransactionMode.READ_ONLY_TRANSACTION; } + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadWriteTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadWriteTest.java index 9935cdd695..3aa3e9fdd4 100644 --- a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadWriteTest.java +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/ConnectionImplTransactionalReadWriteTest.java @@ -85,6 +85,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -232,6 +237,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + @Override + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -381,6 +391,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + @Override + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -528,6 +543,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -680,6 +700,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -830,6 +855,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -979,6 +1009,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -1124,6 +1159,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -1273,6 +1313,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -1418,6 +1463,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + @Override + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -1563,6 +1613,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return false; } + @Override + boolean isSetTransactionTagAllowed() { + return false; + } + @Override boolean isGetTransactionModeAllowed() { return false; @@ -1709,6 +1764,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; @@ -1853,6 +1913,11 @@ boolean isSetTransactionModeAllowed(TransactionMode mode) { return true; } + @Override + boolean isSetTransactionTagAllowed() { + return true; + } + @Override boolean isGetTransactionModeAllowed() { return true; diff --git a/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/TaggingTest.java b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/TaggingTest.java new file mode 100644 index 0000000000..ada17bca21 --- /dev/null +++ b/google-cloud-spanner/src/test/java/com/google/cloud/spanner/connection/TaggingTest.java @@ -0,0 +1,738 @@ +/* + * Copyright 2021 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.assertTrue; +import static org.junit.Assert.fail; + +import com.google.cloud.spanner.ErrorCode; +import com.google.cloud.spanner.ResultSet; +import com.google.cloud.spanner.SpannerException; +import com.google.cloud.spanner.Statement; +import com.google.spanner.v1.CommitRequest; +import com.google.spanner.v1.ExecuteBatchDmlRequest; +import com.google.spanner.v1.ExecuteSqlRequest; +import java.util.Arrays; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +@RunWith(JUnit4.class) +public class TaggingTest extends AbstractMockServerTest { + + @After + public void clearRequests() { + mockSpanner.clearRequests(); + } + + @Test + public void testStatementTagNotAllowedForCommit() { + try (Connection connection = createConnection()) { + connection.setStatementTag("tag-1"); + try { + connection.commit(); + fail("missing expected exception"); + } catch (SpannerException e) { + assertEquals(ErrorCode.FAILED_PRECONDITION, e.getErrorCode()); + } + } + } + + @Test + public void testStatementTagNotAllowedForRollback() { + try (Connection connection = createConnection()) { + connection.setStatementTag("tag-1"); + try { + connection.rollback(); + fail("missing expected exception"); + } catch (SpannerException e) { + assertEquals(ErrorCode.FAILED_PRECONDITION, e.getErrorCode()); + } + } + } + + @Test + public void testStatementTagNotAllowedInsideBatch() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + connection.startBatchDml(); + try { + connection.setStatementTag("tag-1"); + fail("missing expected exception"); + } catch (SpannerException e) { + assertEquals(ErrorCode.FAILED_PRECONDITION, e.getErrorCode()); + } + connection.abortBatch(); + } + } + } + + @Test + public void testQuery_NoTags() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + try (ResultSet rs = connection.executeQuery(SELECT_COUNT_STATEMENT)) {} + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testUpdate_NoTags() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + connection.executeUpdate(INSERT_STATEMENT); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testPartitionedUpdate_NoTags() { + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + connection.setAutocommitDmlMode(AutocommitDmlMode.PARTITIONED_NON_ATOMIC); + connection.executeUpdate(INSERT_STATEMENT); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + + @Test + public void testBatchUpdate_NoTags() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + connection.executeBatchUpdate(Arrays.asList(INSERT_STATEMENT)); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testQuery_StatementTag() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + connection.setStatementTag("tag-1"); + try (ResultSet rs = connection.executeQuery(SELECT_COUNT_STATEMENT)) {} + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "tag-1", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + // The tag should automatically be cleared after a statement. + try (ResultSet rs = connection.executeQuery(SELECT_COUNT_STATEMENT)) {} + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testUpdate_StatementTag() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + connection.setStatementTag("tag-2"); + connection.executeUpdate(INSERT_STATEMENT); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "tag-2", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + connection.executeUpdate(INSERT_STATEMENT); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testPartitionedUpdate_StatementTag() { + try (Connection connection = createConnection()) { + connection.setAutocommit(true); + connection.setAutocommitDmlMode(AutocommitDmlMode.PARTITIONED_NON_ATOMIC); + connection.setStatementTag("tag-4"); + connection.executeUpdate(INSERT_STATEMENT); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "tag-4", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + connection.executeUpdate(INSERT_STATEMENT); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + + @Test + public void testBatchUpdate_StatementTag() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + connection.setStatementTag("tag-3"); + connection.executeBatchUpdate(Arrays.asList(INSERT_STATEMENT)); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "tag-3", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + connection.executeBatchUpdate(Arrays.asList(INSERT_STATEMENT)); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testQuery_TransactionTag() { + try (Connection connection = createConnection()) { + connection.setTransactionTag("tag-1"); + try (ResultSet rs = connection.executeQuery(SELECT_COUNT_STATEMENT)) {} + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "tag-1", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "tag-1", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + // The tag should automatically be cleared after a statement. + try (ResultSet rs = connection.executeQuery(SELECT_COUNT_STATEMENT)) {} + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + + @Test + public void testUpdate_TransactionTag() { + try (Connection connection = createConnection()) { + connection.setTransactionTag("tag-2"); + connection.executeUpdate(INSERT_STATEMENT); + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "tag-2", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "tag-2", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + connection.executeUpdate(INSERT_STATEMENT); + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteSqlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteSqlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + + @Test + public void testBatchUpdate_TransactionTag() { + try (Connection connection = createConnection()) { + connection.setTransactionTag("tag-3"); + connection.executeBatchUpdate(Arrays.asList(INSERT_STATEMENT)); + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "tag-3", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "tag-3", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + + connection.executeBatchUpdate(Arrays.asList(INSERT_STATEMENT)); + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + + @Test + public void testDmlBatch_StatementTag() { + try (Connection connection = createConnection()) { + for (boolean autocommit : new boolean[] {true, false}) { + connection.setAutocommit(autocommit); + + connection.setStatementTag("batch-tag"); + connection.startBatchDml(); + connection.execute(INSERT_STATEMENT); + connection.execute(INSERT_STATEMENT); + connection.runBatch(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "batch-tag", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + } + + @Test + public void testRunBatch_TransactionTag() { + try (Connection connection = createConnection()) { + connection.setTransactionTag("batch-tag"); + connection.startBatchDml(); + connection.execute(INSERT_STATEMENT); + connection.execute(INSERT_STATEMENT); + connection.runBatch(); + connection.commit(); + + assertEquals(1, mockSpanner.countRequestsOfType(ExecuteBatchDmlRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "batch-tag", + mockSpanner + .getRequestsOfType(ExecuteBatchDmlRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + assertEquals(1, mockSpanner.countRequestsOfType(CommitRequest.class)); + assertEquals( + "", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getRequestTag()); + assertEquals( + "batch-tag", + mockSpanner + .getRequestsOfType(CommitRequest.class) + .get(0) + .getRequestOptions() + .getTransactionTag()); + + mockSpanner.clearRequests(); + } + } + + @Test + public void testShowSetTags() { + try (Connection connection = createConnection()) { + connection.execute(Statement.of("SET STATEMENT_TAG='tag1'")); + try (ResultSet rs = + connection.execute(Statement.of("SHOW VARIABLE STATEMENT_TAG")).getResultSet()) { + assertTrue(rs.next()); + assertEquals("tag1", rs.getString("STATEMENT_TAG")); + assertFalse(rs.next()); + } + connection.execute(Statement.of("SET STATEMENT_TAG=''")); + try (ResultSet rs = + connection.execute(Statement.of("SHOW VARIABLE STATEMENT_TAG")).getResultSet()) { + assertTrue(rs.next()); + assertEquals("", rs.getString("STATEMENT_TAG")); + assertFalse(rs.next()); + } + connection.execute(Statement.of("SET TRANSACTION_TAG='tag2'")); + try (ResultSet rs = + connection.execute(Statement.of("SHOW VARIABLE TRANSACTION_TAG")).getResultSet()) { + assertTrue(rs.next()); + assertEquals("tag2", rs.getString("TRANSACTION_TAG")); + assertFalse(rs.next()); + } + connection.execute(Statement.of("SET TRANSACTION_TAG=''")); + try (ResultSet rs = + connection.execute(Statement.of("SHOW VARIABLE TRANSACTION_TAG")).getResultSet()) { + assertTrue(rs.next()); + assertEquals("", rs.getString("TRANSACTION_TAG")); + assertFalse(rs.next()); + } + } + } +} 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 3d2522f21e..c4b00f7fb4 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 @@ -2596,10340 +2596,12130 @@ update foo set bar=1; @EXPECT EXCEPTION INVALID_ARGUMENT show variable/-commit_response; NEW_CONNECTION; -begin; +show variable statement_tag; NEW_CONNECTION; -BEGIN; +SHOW VARIABLE STATEMENT_TAG; NEW_CONNECTION; -begin; +show variable statement_tag; NEW_CONNECTION; - begin; + show variable statement_tag; NEW_CONNECTION; - begin; + show variable statement_tag; NEW_CONNECTION; -begin; +show variable statement_tag; NEW_CONNECTION; -begin ; +show variable statement_tag ; NEW_CONNECTION; -begin ; +show variable statement_tag ; NEW_CONNECTION; -begin +show variable statement_tag ; NEW_CONNECTION; -begin; +show variable statement_tag; NEW_CONNECTION; -begin; +show variable statement_tag; NEW_CONNECTION; -begin; +show +variable +statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo begin; +foo show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin bar; +show variable statement_tag bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%begin; +%show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin%; +show variable statement_tag%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin%; +show variable%statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_begin; +_show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin_; +show variable statement_tag_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin_; +show variable_statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&begin; +&show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin&; +show variable statement_tag&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin&; +show variable&statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$begin; +$show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin$; +show variable statement_tag$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin$; +show variable$statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@begin; +@show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin@; +show variable statement_tag@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin@; +show variable@statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!begin; +!show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin!; +show variable statement_tag!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin!; +show variable!statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*begin; +*show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin*; +show variable statement_tag*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin*; +show variable*statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(begin; +(show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin(; +show variable statement_tag(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin(; +show variable(statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)begin; +)show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin); +show variable statement_tag); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin); +show variable)statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --begin; +-show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-; +show variable statement_tag-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-; +show variable-statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+begin; ++show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin+; +show variable statement_tag+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin+; +show variable+statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#begin; +-#show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-#; +show variable statement_tag-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-#; +show variable-#statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/begin; +/show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/; +show variable statement_tag/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/; +show variable/statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\begin; +\show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin\; +show variable statement_tag\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin\; +show variable\statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?begin; +?show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin?; +show variable statement_tag?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin?; +show variable?statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/begin; +-/show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-/; +show variable statement_tag-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-/; +show variable-/statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#begin; +/#show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/#; +show variable statement_tag/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/#; +show variable/#statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-begin; +/-show variable statement_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/-; +show variable statement_tag/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/-; +show variable/-statement_tag; NEW_CONNECTION; -start; +show variable transaction_tag; NEW_CONNECTION; -START; +SHOW VARIABLE TRANSACTION_TAG; NEW_CONNECTION; -start; +show variable transaction_tag; NEW_CONNECTION; - start; + show variable transaction_tag; NEW_CONNECTION; - start; + show variable transaction_tag; NEW_CONNECTION; -start; +show variable transaction_tag; NEW_CONNECTION; -start ; +show variable transaction_tag ; NEW_CONNECTION; -start ; +show variable transaction_tag ; NEW_CONNECTION; -start +show variable transaction_tag ; NEW_CONNECTION; -start; +show variable transaction_tag; NEW_CONNECTION; -start; +show variable transaction_tag; NEW_CONNECTION; -start; +show +variable +transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start; +foo show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start bar; +show variable transaction_tag bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%start; +%show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start%; +show variable transaction_tag%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start%; +show variable%transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_start; +_show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start_; +show variable transaction_tag_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start_; +show variable_transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&start; +&show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start&; +show variable transaction_tag&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start&; +show variable&transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$start; +$show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start$; +show variable transaction_tag$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start$; +show variable$transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@start; +@show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start@; +show variable transaction_tag@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start@; +show variable@transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!start; +!show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start!; +show variable transaction_tag!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start!; +show variable!transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*start; +*show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start*; +show variable transaction_tag*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start*; +show variable*transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(start; +(show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start(; +show variable transaction_tag(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start(; +show variable(transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)start; +)show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start); +show variable transaction_tag); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start); +show variable)transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --start; +-show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-; +show variable transaction_tag-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-; +show variable-transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+start; ++show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start+; +show variable transaction_tag+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start+; +show variable+transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#start; +-#show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-#; +show variable transaction_tag-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-#; +show variable-#transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/start; +/show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/; +show variable transaction_tag/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/; +show variable/transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\start; +\show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start\; +show variable transaction_tag\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start\; +show variable\transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?start; +?show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start?; +show variable transaction_tag?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start?; +show variable?transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/start; +-/show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-/; +show variable transaction_tag-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-/; +show variable-/transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start; +/#show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/#; +show variable transaction_tag/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/#; +show variable/#transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start; +/-show variable transaction_tag; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/-; +show variable transaction_tag/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/-; +show variable/-transaction_tag; NEW_CONNECTION; -begin transaction; +begin; NEW_CONNECTION; -BEGIN TRANSACTION; +BEGIN; NEW_CONNECTION; -begin transaction; +begin; NEW_CONNECTION; - begin transaction; + begin; NEW_CONNECTION; - begin transaction; + begin; NEW_CONNECTION; -begin transaction; +begin; NEW_CONNECTION; -begin transaction ; +begin ; NEW_CONNECTION; -begin transaction ; +begin ; NEW_CONNECTION; -begin transaction +begin ; NEW_CONNECTION; -begin transaction; +begin; NEW_CONNECTION; -begin transaction; +begin; NEW_CONNECTION; -begin -transaction; +begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo begin transaction; +foo begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction bar; +begin bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%begin transaction; +%begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction%; +begin%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin%transaction; +begin%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_begin transaction; +_begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction_; +begin_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin_transaction; +begin_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&begin transaction; +&begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction&; +begin&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin&transaction; +begin&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$begin transaction; +$begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction$; +begin$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin$transaction; +begin$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@begin transaction; +@begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction@; +begin@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin@transaction; +begin@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!begin transaction; +!begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction!; +begin!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin!transaction; +begin!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*begin transaction; +*begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction*; +begin*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin*transaction; +begin*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(begin transaction; +(begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction(; +begin(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin(transaction; +begin(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)begin transaction; +)begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction); +begin); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin)transaction; +begin); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --begin transaction; +-begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction-; +begin-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-transaction; +begin-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+begin transaction; ++begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction+; +begin+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin+transaction; +begin+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#begin transaction; +-#begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction-#; +begin-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-#transaction; +begin-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/begin transaction; +/begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction/; +begin/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/transaction; +begin/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\begin transaction; +\begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction\; +begin\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin\transaction; +begin\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?begin transaction; +?begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction?; +begin?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin?transaction; +begin?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/begin transaction; +-/begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction-/; +begin-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin-/transaction; +begin-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#begin transaction; +/#begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction/#; +begin/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/#transaction; +begin/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-begin transaction; +/-begin; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin transaction/-; +begin/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -begin/-transaction; +begin/-; NEW_CONNECTION; -start transaction; +start; NEW_CONNECTION; -START TRANSACTION; +START; NEW_CONNECTION; -start transaction; +start; NEW_CONNECTION; - start transaction; + start; NEW_CONNECTION; - start transaction; + start; NEW_CONNECTION; -start transaction; +start; NEW_CONNECTION; -start transaction ; +start ; NEW_CONNECTION; -start transaction ; +start ; NEW_CONNECTION; -start transaction +start ; NEW_CONNECTION; -start transaction; +start; NEW_CONNECTION; -start transaction; +start; NEW_CONNECTION; -start -transaction; +start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start transaction; +foo start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction bar; +start bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%start transaction; +%start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction%; +start%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start%transaction; +start%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_start transaction; +_start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction_; +start_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start_transaction; +start_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&start transaction; +&start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction&; +start&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start&transaction; +start&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$start transaction; +$start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction$; +start$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start$transaction; +start$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@start transaction; +@start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction@; +start@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start@transaction; +start@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!start transaction; +!start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction!; +start!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start!transaction; +start!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*start transaction; +*start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction*; +start*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start*transaction; +start*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(start transaction; +(start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction(; +start(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start(transaction; +start(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)start transaction; +)start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction); +start); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start)transaction; +start); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --start transaction; +-start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction-; +start-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-transaction; +start-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+start transaction; ++start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction+; +start+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start+transaction; +start+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#start transaction; +-#start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction-#; +start-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-#transaction; +start-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/start transaction; +/start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction/; +start/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/transaction; +start/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\start transaction; +\start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction\; +start\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start\transaction; +start\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?start transaction; +?start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction?; +start?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start?transaction; +start?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/start transaction; +-/start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction-/; +start-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start-/transaction; +start-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start transaction; +/#start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction/#; +start/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/#transaction; +start/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start transaction; +/-start; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start transaction/-; +start/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -start/-transaction; +start/-; NEW_CONNECTION; begin transaction; -commit; NEW_CONNECTION; -begin transaction; -COMMIT; +BEGIN TRANSACTION; NEW_CONNECTION; begin transaction; -commit; NEW_CONNECTION; -begin transaction; - commit; + begin transaction; NEW_CONNECTION; -begin transaction; - commit; + begin transaction; NEW_CONNECTION; -begin transaction; -commit; -NEW_CONNECTION; begin transaction; -commit ; NEW_CONNECTION; -begin transaction; -commit ; +begin transaction ; NEW_CONNECTION; -begin transaction; -commit +begin transaction ; +NEW_CONNECTION; +begin transaction ; NEW_CONNECTION; -begin transaction; -commit; +begin transaction; NEW_CONNECTION; -begin transaction; -commit; +begin transaction; NEW_CONNECTION; -begin transaction; -commit; +begin +transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit; +foo begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit bar; +begin transaction bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit; +%begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%; +begin transaction%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%; +begin%transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit; +_begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_; +begin transaction_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_; +begin_transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit; +&begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&; +begin transaction&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&; +begin&transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit; +$begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$; +begin transaction$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$; +begin$transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit; +@begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@; +begin transaction@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@; +begin@transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit; +!begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!; +begin transaction!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!; +begin!transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit; +*begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*; +begin transaction*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*; +begin*transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit; +(begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(; +begin transaction(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(; +begin(transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit; +)begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit); +begin transaction); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit); +begin)transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit; +-begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-; +begin transaction-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-; +begin-transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit; ++begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+; +begin transaction+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+; +begin+transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit; +-#begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#; +begin transaction-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#; +begin-#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit; +/begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/; +begin transaction/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/; +begin/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit; +\begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\; +begin transaction\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\; +begin\transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit; +?begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?; +begin transaction?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?; +begin?transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit; +-/begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/; +begin transaction-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/; +begin-/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit; +/#begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#; +begin transaction/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#; +begin/#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit; +/-begin transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-; +begin transaction/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-; +begin/-transaction; NEW_CONNECTION; -begin transaction; -commit transaction; +start transaction; NEW_CONNECTION; -begin transaction; -COMMIT TRANSACTION; +START TRANSACTION; NEW_CONNECTION; -begin transaction; -commit transaction; +start transaction; NEW_CONNECTION; -begin transaction; - commit transaction; + start transaction; NEW_CONNECTION; -begin transaction; - commit transaction; + start transaction; NEW_CONNECTION; -begin transaction; -commit transaction; +start transaction; NEW_CONNECTION; -begin transaction; -commit transaction ; +start transaction ; NEW_CONNECTION; -begin transaction; -commit transaction ; +start transaction ; NEW_CONNECTION; -begin transaction; -commit transaction +start transaction ; NEW_CONNECTION; -begin transaction; -commit transaction; +start transaction; NEW_CONNECTION; -begin transaction; -commit transaction; +start transaction; NEW_CONNECTION; -begin transaction; -commit +start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo commit transaction; +foo start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction bar; +start transaction bar; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%commit transaction; +%start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction%; +start transaction%; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit%transaction; +start%transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_commit transaction; +_start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction_; +start transaction_; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit_transaction; +start_transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&commit transaction; +&start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction&; +start transaction&; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit&transaction; +start&transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$commit transaction; +$start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction$; +start transaction$; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit$transaction; +start$transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@commit transaction; +@start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction@; +start transaction@; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit@transaction; +start@transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!commit transaction; +!start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction!; +start transaction!; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit!transaction; +start!transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*commit transaction; +*start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction*; +start transaction*; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit*transaction; +start*transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(commit transaction; +(start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction(; +start transaction(; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit(transaction; +start(transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)commit transaction; +)start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction); +start transaction); NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit)transaction; +start)transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --commit transaction; +-start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-; +start transaction-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-transaction; +start-transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+commit transaction; ++start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction+; +start transaction+; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit+transaction; +start+transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#commit transaction; +-#start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-#; +start transaction-#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-#transaction; +start-#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/commit transaction; +/start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/; +start transaction/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/transaction; +start/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\commit transaction; +\start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction\; +start transaction\; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit\transaction; +start\transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?commit transaction; +?start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction?; +start transaction?; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit?transaction; +start?transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/commit transaction; +-/start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction-/; +start transaction-/; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit-/transaction; +start-/transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#commit transaction; +/#start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/#; +start transaction/#; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/#transaction; +start/#transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-commit transaction; +/-start transaction; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit transaction/-; +start transaction/-; NEW_CONNECTION; -begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -commit/-transaction; +start/-transaction; NEW_CONNECTION; begin transaction; -rollback; +commit; NEW_CONNECTION; begin transaction; -ROLLBACK; +COMMIT; NEW_CONNECTION; begin transaction; -rollback; +commit; NEW_CONNECTION; begin transaction; - rollback; + commit; NEW_CONNECTION; begin transaction; - rollback; + commit; NEW_CONNECTION; begin transaction; -rollback; +commit; NEW_CONNECTION; begin transaction; -rollback ; +commit ; NEW_CONNECTION; begin transaction; -rollback ; +commit ; NEW_CONNECTION; begin transaction; -rollback +commit ; NEW_CONNECTION; begin transaction; -rollback; +commit; NEW_CONNECTION; begin transaction; -rollback; +commit; NEW_CONNECTION; begin transaction; -rollback; +commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback; +foo commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback bar; +commit bar; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback; +%commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%; +commit%; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%; +commit%; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback; +_commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_; +commit_; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_; +commit_; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback; +&commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&; +commit&; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&; +commit&; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback; +$commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$; +commit$; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$; +commit$; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback; +@commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@; +commit@; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@; +commit@; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback; +!commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!; +commit!; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!; +commit!; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback; +*commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*; +commit*; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*; +commit*; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback; +(commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(; +commit(; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(; +commit(; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback; +)commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback); +commit); NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback); +commit); NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback; +-commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-; +commit-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-; +commit-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback; ++commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+; +commit+; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+; +commit+; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback; +-#commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#; +commit-#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#; +commit-#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback; +/commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/; +commit/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/; +commit/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback; +\commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\; +commit\; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\; +commit\; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback; +?commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?; +commit?; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?; +commit?; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback; +-/commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/; +commit-/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/; +commit-/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback; +/#commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#; +commit/#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#; +commit/#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback; +/-commit; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-; +commit/-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-; +commit/-; NEW_CONNECTION; begin transaction; -rollback transaction; +commit transaction; NEW_CONNECTION; begin transaction; -ROLLBACK TRANSACTION; +COMMIT TRANSACTION; NEW_CONNECTION; begin transaction; -rollback transaction; +commit transaction; NEW_CONNECTION; begin transaction; - rollback transaction; + commit transaction; NEW_CONNECTION; begin transaction; - rollback transaction; + commit transaction; NEW_CONNECTION; begin transaction; -rollback transaction; +commit transaction; NEW_CONNECTION; begin transaction; -rollback transaction ; +commit transaction ; NEW_CONNECTION; begin transaction; -rollback transaction ; +commit transaction ; NEW_CONNECTION; begin transaction; -rollback transaction +commit transaction ; NEW_CONNECTION; begin transaction; -rollback transaction; +commit transaction; NEW_CONNECTION; begin transaction; -rollback transaction; +commit transaction; NEW_CONNECTION; begin transaction; -rollback +commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo rollback transaction; +foo commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction bar; +commit transaction bar; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%rollback transaction; +%commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction%; +commit transaction%; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback%transaction; +commit%transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_rollback transaction; +_commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction_; +commit transaction_; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback_transaction; +commit_transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&rollback transaction; +&commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction&; +commit transaction&; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback&transaction; +commit&transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$rollback transaction; +$commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction$; +commit transaction$; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback$transaction; +commit$transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@rollback transaction; +@commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction@; +commit transaction@; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback@transaction; +commit@transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!rollback transaction; +!commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction!; +commit transaction!; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback!transaction; +commit!transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*rollback transaction; +*commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction*; +commit transaction*; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback*transaction; +commit*transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(rollback transaction; +(commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction(; +commit transaction(; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback(transaction; +commit(transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)rollback transaction; +)commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction); +commit transaction); NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback)transaction; +commit)transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --rollback transaction; +-commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-; +commit transaction-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-transaction; +commit-transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+rollback transaction; ++commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction+; +commit transaction+; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback+transaction; +commit+transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#rollback transaction; +-#commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-#; +commit transaction-#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-#transaction; +commit-#transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/rollback transaction; +/commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/; +commit transaction/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/transaction; +commit/transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\rollback transaction; +\commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction\; +commit transaction\; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback\transaction; +commit\transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?rollback transaction; +?commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction?; +commit transaction?; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback?transaction; +commit?transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/rollback transaction; +-/commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction-/; +commit transaction-/; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback-/transaction; +commit-/transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#rollback transaction; +/#commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/#; +commit transaction/#; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/#transaction; +commit/#transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-rollback transaction; +/-commit transaction; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback transaction/-; +commit transaction/-; NEW_CONNECTION; begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -rollback/-transaction; +commit/-transaction; NEW_CONNECTION; -start batch ddl; +begin transaction; +rollback; NEW_CONNECTION; -START BATCH DDL; +begin transaction; +ROLLBACK; NEW_CONNECTION; -start batch ddl; +begin transaction; +rollback; NEW_CONNECTION; - start batch ddl; +begin transaction; + rollback; NEW_CONNECTION; - start batch ddl; +begin transaction; + rollback; NEW_CONNECTION; +begin transaction; -start batch ddl; +rollback; NEW_CONNECTION; -start batch ddl ; +begin transaction; +rollback ; NEW_CONNECTION; -start batch ddl ; +begin transaction; +rollback ; NEW_CONNECTION; -start batch ddl +begin transaction; +rollback ; NEW_CONNECTION; -start batch ddl; +begin transaction; +rollback; NEW_CONNECTION; -start batch ddl; +begin transaction; +rollback; NEW_CONNECTION; -start -batch -ddl; +begin transaction; +rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch ddl; +foo rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl bar; +rollback bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch ddl; +%rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl%; +rollback%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%ddl; +rollback%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch ddl; +_rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl_; +rollback_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_ddl; +rollback_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch ddl; +&rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl&; +rollback&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&ddl; +rollback&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch ddl; +$rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl$; +rollback$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$ddl; +rollback$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch ddl; +@rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl@; +rollback@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@ddl; +rollback@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch ddl; +!rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl!; +rollback!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!ddl; +rollback!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch ddl; +*rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl*; +rollback*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*ddl; +rollback*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch ddl; +(rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl(; +rollback(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(ddl; +rollback(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch ddl; +)rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl); +rollback); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)ddl; +rollback); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch ddl; +-rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-; +rollback-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-ddl; +rollback-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch ddl; ++rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl+; +rollback+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+ddl; +rollback+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch ddl; +-#rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-#; +rollback-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#ddl; +rollback-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch ddl; +/rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/; +rollback/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/ddl; +rollback/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch ddl; +\rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl\; +rollback\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\ddl; +rollback\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch ddl; +?rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl?; +rollback?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?ddl; +rollback?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch ddl; +-/rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl-/; +rollback-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/ddl; +rollback-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch ddl; +/#rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/#; +rollback/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#ddl; +rollback/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch ddl; +/-rollback; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch ddl/-; +rollback/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-ddl; +rollback/-; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback transaction; NEW_CONNECTION; -START BATCH DML; +begin transaction; +ROLLBACK TRANSACTION; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback transaction; NEW_CONNECTION; - start batch dml; +begin transaction; + rollback transaction; NEW_CONNECTION; - start batch dml; +begin transaction; + rollback transaction; NEW_CONNECTION; +begin transaction; -start batch dml; +rollback transaction; NEW_CONNECTION; -start batch dml ; +begin transaction; +rollback transaction ; NEW_CONNECTION; -start batch dml ; +begin transaction; +rollback transaction ; NEW_CONNECTION; -start batch dml +begin transaction; +rollback transaction ; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback transaction; NEW_CONNECTION; -start batch dml; +begin transaction; +rollback transaction; NEW_CONNECTION; -start -batch -dml; +begin transaction; +rollback +transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -foo start batch dml; +foo rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml bar; +rollback transaction bar; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -%start batch dml; +%rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml%; +rollback transaction%; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch%dml; +rollback%transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -_start batch dml; +_rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml_; +rollback transaction_; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch_dml; +rollback_transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -&start batch dml; +&rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml&; +rollback transaction&; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch&dml; +rollback&transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -$start batch dml; +$rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml$; +rollback transaction$; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch$dml; +rollback$transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -@start batch dml; +@rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml@; +rollback transaction@; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch@dml; +rollback@transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -!start batch dml; +!rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml!; +rollback transaction!; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch!dml; +rollback!transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -*start batch dml; +*rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml*; +rollback transaction*; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch*dml; +rollback*transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -(start batch dml; +(rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml(; +rollback transaction(; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch(dml; +rollback(transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -)start batch dml; +)rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml); +rollback transaction); NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch)dml; +rollback)transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --start batch dml; +-rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-; +rollback transaction-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-dml; +rollback-transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -+start batch dml; ++rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml+; +rollback transaction+; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch+dml; +rollback+transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --#start batch dml; +-#rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-#; +rollback transaction-#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-#dml; +rollback-#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/start batch dml; +/rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/; +rollback transaction/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/dml; +rollback/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -\start batch dml; +\rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml\; +rollback transaction\; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch\dml; +rollback\transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -?start batch dml; +?rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml?; +rollback transaction?; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch?dml; +rollback?transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT --/start batch dml; +-/rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml-/; +rollback transaction-/; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch-/dml; +rollback-/transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/#start batch dml; +/#rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/#; +rollback transaction/#; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/#dml; +rollback/#transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -/-start batch dml; +/-rollback transaction; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch dml/-; +rollback transaction/-; NEW_CONNECTION; +begin transaction; @EXPECT EXCEPTION INVALID_ARGUMENT -start batch/-dml; +rollback/-transaction; NEW_CONNECTION; start batch ddl; -run batch; NEW_CONNECTION; -start batch ddl; -RUN BATCH; +START BATCH DDL; NEW_CONNECTION; start batch ddl; -run batch; NEW_CONNECTION; -start batch ddl; - run batch; + start batch ddl; NEW_CONNECTION; -start batch ddl; - run batch; + start batch ddl; NEW_CONNECTION; -start batch ddl; -run batch; -NEW_CONNECTION; start batch ddl; -run batch ; NEW_CONNECTION; -start batch ddl; -run batch ; +start batch ddl ; NEW_CONNECTION; -start batch ddl; -run batch +start batch ddl ; +NEW_CONNECTION; +start batch ddl ; NEW_CONNECTION; -start batch ddl; -run batch; +start batch ddl; NEW_CONNECTION; -start batch ddl; -run batch; +start batch ddl; NEW_CONNECTION; -start batch ddl; -run -batch; +start +batch +ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo run batch; +foo start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch bar; +start batch ddl bar; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%run batch; +%start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch%; +start batch ddl%; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run%batch; +start batch%ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_run batch; +_start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch_; +start batch ddl_; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run_batch; +start batch_ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&run batch; +&start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch&; +start batch ddl&; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run&batch; +start batch&ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$run batch; +$start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch$; +start batch ddl$; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run$batch; +start batch$ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@run batch; +@start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch@; +start batch ddl@; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run@batch; +start batch@ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!run batch; +!start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch!; +start batch ddl!; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run!batch; +start batch!ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*run batch; +*start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch*; +start batch ddl*; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run*batch; +start batch*ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(run batch; +(start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch(; +start batch ddl(; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run(batch; +start batch(ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)run batch; +)start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch); +start batch ddl); NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run)batch; +start batch)ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --run batch; +-start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-; +start batch ddl-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run-batch; +start batch-ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+run batch; ++start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch+; +start batch ddl+; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run+batch; +start batch+ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#run batch; +-#start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-#; +start batch ddl-#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run-#batch; +start batch-#ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/run batch; +/start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/; +start batch ddl/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run/batch; +start batch/ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\run batch; +\start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch\; +start batch ddl\; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run\batch; +start batch\ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?run batch; +?start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch?; +start batch ddl?; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run?batch; +start batch?ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/run batch; +-/start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch-/; +start batch ddl-/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run-/batch; +start batch-/ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#run batch; +/#start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/#; +start batch ddl/#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run/#batch; +start batch/#ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-run batch; +/-start batch ddl; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run batch/-; +start batch ddl/-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -run/-batch; +start batch/-ddl; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch dml; NEW_CONNECTION; -start batch ddl; -ABORT BATCH; +START BATCH DML; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch dml; NEW_CONNECTION; -start batch ddl; - abort batch; + start batch dml; NEW_CONNECTION; -start batch ddl; - abort batch; + start batch dml; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch dml; NEW_CONNECTION; -start batch ddl; -abort batch ; +start batch dml ; NEW_CONNECTION; -start batch ddl; -abort batch ; +start batch dml ; NEW_CONNECTION; -start batch ddl; -abort batch +start batch dml ; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch dml; NEW_CONNECTION; -start batch ddl; -abort batch; +start batch dml; NEW_CONNECTION; -start batch ddl; -abort -batch; +start +batch +dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo abort batch; +foo start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch bar; +start batch dml bar; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%abort batch; +%start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch%; +start batch dml%; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort%batch; +start batch%dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_abort batch; +_start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch_; +start batch dml_; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort_batch; +start batch_dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&abort batch; +&start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch&; +start batch dml&; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort&batch; +start batch&dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$abort batch; +$start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch$; +start batch dml$; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort$batch; +start batch$dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@abort batch; +@start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch@; +start batch dml@; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort@batch; +start batch@dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!abort batch; +!start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch!; +start batch dml!; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort!batch; +start batch!dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*abort batch; +*start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch*; +start batch dml*; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort*batch; +start batch*dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(abort batch; +(start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch(; +start batch dml(; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort(batch; +start batch(dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)abort batch; +)start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch); +start batch dml); NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort)batch; +start batch)dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --abort batch; +-start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-; +start batch dml-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-batch; +start batch-dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+abort batch; ++start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch+; +start batch dml+; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort+batch; +start batch+dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#abort batch; +-#start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-#; +start batch dml-#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-#batch; +start batch-#dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/abort batch; +/start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/; +start batch dml/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/batch; +start batch/dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\abort batch; +\start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch\; +start batch dml\; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort\batch; +start batch\dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?abort batch; +?start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch?; +start batch dml?; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort?batch; +start batch?dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/abort batch; +-/start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch-/; +start batch dml-/; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort-/batch; +start batch-/dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#abort batch; +/#start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/#; +start batch dml/#; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/#batch; +start batch/#dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-abort batch; +/-start batch dml; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort batch/-; +start batch dml/-; NEW_CONNECTION; -start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -abort/-batch; +start batch/-dml; NEW_CONNECTION; -set autocommit = true; +start batch ddl; +run batch; NEW_CONNECTION; -SET AUTOCOMMIT = TRUE; +start batch ddl; +RUN BATCH; NEW_CONNECTION; -set autocommit = true; +start batch ddl; +run batch; NEW_CONNECTION; - set autocommit = true; +start batch ddl; + run batch; NEW_CONNECTION; - set autocommit = true; +start batch ddl; + run batch; NEW_CONNECTION; +start batch ddl; -set autocommit = true; +run batch; NEW_CONNECTION; -set autocommit = true ; +start batch ddl; +run batch ; NEW_CONNECTION; -set autocommit = true ; +start batch ddl; +run batch ; NEW_CONNECTION; -set autocommit = true +start batch ddl; +run batch ; NEW_CONNECTION; -set autocommit = true; +start batch ddl; +run batch; NEW_CONNECTION; -set autocommit = true; +start batch ddl; +run batch; NEW_CONNECTION; -set -autocommit -= -true; +start batch ddl; +run +batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = true; +foo run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true bar; +run batch bar; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = true; +%run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true%; +run batch%; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%true; +run%batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = true; +_run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true_; +run batch_; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_true; +run_batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = true; +&run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true&; +run batch&; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&true; +run&batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = true; +$run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true$; +run batch$; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$true; +run$batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = true; +@run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true@; +run batch@; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@true; +run@batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = true; +!run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true!; +run batch!; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!true; +run!batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = true; +*run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true*; +run batch*; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*true; +run*batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = true; +(run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true(; +run batch(; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(true; +run(batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = true; +)run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true); +run batch); NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)true; +run)batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = true; +-run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-; +run batch-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-true; +run-batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = true; ++run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true+; +run batch+; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+true; +run+batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = true; +-#run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-#; +run batch-#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#true; +run-#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = true; +/run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/; +run batch/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/true; +run/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = true; +\run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true\; +run batch\; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\true; +run\batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = true; +?run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true?; +run batch?; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?true; +run?batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = true; +-/run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true-/; +run batch-/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/true; +run-/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = true; +/#run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/#; +run batch/#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#true; +run/#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = true; +/-run batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = true/-; +run batch/-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-true; +run/-batch; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +abort batch; NEW_CONNECTION; -SET AUTOCOMMIT = FALSE; +start batch ddl; +ABORT BATCH; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +abort batch; NEW_CONNECTION; - set autocommit = false; +start batch ddl; + abort batch; NEW_CONNECTION; - set autocommit = false; +start batch ddl; + abort batch; NEW_CONNECTION; +start batch ddl; -set autocommit = false; +abort batch; NEW_CONNECTION; -set autocommit = false ; +start batch ddl; +abort batch ; NEW_CONNECTION; -set autocommit = false ; +start batch ddl; +abort batch ; NEW_CONNECTION; -set autocommit = false +start batch ddl; +abort batch ; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +abort batch; NEW_CONNECTION; -set autocommit = false; +start batch ddl; +abort batch; NEW_CONNECTION; -set -autocommit -= -false; +start batch ddl; +abort +batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit = false; +foo abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false bar; +abort batch bar; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit = false; +%abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false%; +abort batch%; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =%false; +abort%batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit = false; +_abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false_; +abort batch_; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =_false; +abort_batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit = false; +&abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false&; +abort batch&; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =&false; +abort&batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit = false; +$abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false$; +abort batch$; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =$false; +abort$batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit = false; +@abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false@; +abort batch@; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =@false; +abort@batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit = false; +!abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false!; +abort batch!; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =!false; +abort!batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit = false; +*abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false*; +abort batch*; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =*false; +abort*batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit = false; +(abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false(; +abort batch(; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =(false; +abort(batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit = false; +)abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false); +abort batch); NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =)false; +abort)batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit = false; +-abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-; +abort batch-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-false; +abort-batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit = false; ++abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false+; +abort batch+; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =+false; +abort+batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit = false; +-#abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-#; +abort batch-#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-#false; +abort-#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit = false; +/abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/; +abort batch/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/false; +abort/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit = false; +\abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false\; +abort batch\; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =\false; +abort\batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit = false; +?abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false?; +abort batch?; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =?false; +abort?batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit = false; +-/abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false-/; +abort batch-/; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =-/false; +abort-/batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit = false; +/#abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/#; +abort batch/#; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/#false; +abort/#batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit = false; +/-abort batch; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit = false/-; +abort batch/-; NEW_CONNECTION; +start batch ddl; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit =/-false; +abort/-batch; NEW_CONNECTION; -set readonly = true; +set autocommit = true; NEW_CONNECTION; -SET READONLY = TRUE; +SET AUTOCOMMIT = TRUE; NEW_CONNECTION; -set readonly = true; +set autocommit = true; NEW_CONNECTION; - set readonly = true; + set autocommit = true; NEW_CONNECTION; - set readonly = true; + set autocommit = true; NEW_CONNECTION; -set readonly = true; +set autocommit = true; NEW_CONNECTION; -set readonly = true ; +set autocommit = true ; NEW_CONNECTION; -set readonly = true ; +set autocommit = true ; NEW_CONNECTION; -set readonly = true +set autocommit = true ; NEW_CONNECTION; -set readonly = true; +set autocommit = true; NEW_CONNECTION; -set readonly = true; +set autocommit = true; NEW_CONNECTION; set -readonly +autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set readonly = true; +foo set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true bar; +set autocommit = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set readonly = true; +%set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true%; +set autocommit = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =%true; +set autocommit =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set readonly = true; +_set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true_; +set autocommit = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =_true; +set autocommit =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set readonly = true; +&set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true&; +set autocommit = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =&true; +set autocommit =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set readonly = true; +$set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true$; +set autocommit = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =$true; +set autocommit =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set readonly = true; +@set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true@; +set autocommit = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =@true; +set autocommit =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set readonly = true; +!set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true!; +set autocommit = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =!true; +set autocommit =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set readonly = true; +*set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true*; +set autocommit = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =*true; +set autocommit =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set readonly = true; +(set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true(; +set autocommit = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =(true; +set autocommit =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set readonly = true; +)set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true); +set autocommit = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =)true; +set autocommit =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set readonly = true; +-set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true-; +set autocommit = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-true; +set autocommit =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set readonly = true; ++set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true+; +set autocommit = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =+true; +set autocommit =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set readonly = true; +-#set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true-#; +set autocommit = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-#true; +set autocommit =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set readonly = true; +/set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true/; +set autocommit = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/true; +set autocommit =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set readonly = true; +\set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true\; +set autocommit = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =\true; +set autocommit =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set readonly = true; +?set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true?; +set autocommit = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =?true; +set autocommit =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set readonly = true; +-/set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true-/; +set autocommit = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-/true; +set autocommit =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set readonly = true; +/#set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true/#; +set autocommit = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/#true; +set autocommit =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set readonly = true; +/-set autocommit = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = true/-; +set autocommit = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/-true; +set autocommit =/-true; NEW_CONNECTION; -set readonly = false; +set autocommit = false; NEW_CONNECTION; -SET READONLY = FALSE; +SET AUTOCOMMIT = FALSE; NEW_CONNECTION; -set readonly = false; +set autocommit = false; NEW_CONNECTION; - set readonly = false; + set autocommit = false; NEW_CONNECTION; - set readonly = false; + set autocommit = false; NEW_CONNECTION; -set readonly = false; +set autocommit = false; NEW_CONNECTION; -set readonly = false ; +set autocommit = false ; NEW_CONNECTION; -set readonly = false ; +set autocommit = false ; NEW_CONNECTION; -set readonly = false +set autocommit = false ; NEW_CONNECTION; -set readonly = false; +set autocommit = false; NEW_CONNECTION; -set readonly = false; +set autocommit = false; NEW_CONNECTION; set -readonly +autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set readonly = false; +foo set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false bar; +set autocommit = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set readonly = false; +%set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false%; +set autocommit = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =%false; +set autocommit =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set readonly = false; +_set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false_; +set autocommit = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =_false; +set autocommit =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set readonly = false; +&set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false&; +set autocommit = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =&false; +set autocommit =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set readonly = false; +$set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false$; +set autocommit = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =$false; +set autocommit =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set readonly = false; +@set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false@; +set autocommit = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =@false; +set autocommit =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set readonly = false; +!set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false!; +set autocommit = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =!false; +set autocommit =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set readonly = false; +*set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false*; +set autocommit = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =*false; +set autocommit =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set readonly = false; +(set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false(; +set autocommit = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =(false; +set autocommit =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set readonly = false; +)set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false); +set autocommit = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =)false; +set autocommit =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set readonly = false; +-set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false-; +set autocommit = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-false; +set autocommit =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set readonly = false; ++set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false+; +set autocommit = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =+false; +set autocommit =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set readonly = false; +-#set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false-#; +set autocommit = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-#false; +set autocommit =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set readonly = false; +/set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false/; +set autocommit = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/false; +set autocommit =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set readonly = false; +\set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false\; +set autocommit = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =\false; +set autocommit =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set readonly = false; +?set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false?; +set autocommit = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =?false; +set autocommit =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set readonly = false; +-/set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false-/; +set autocommit = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =-/false; +set autocommit =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set readonly = false; +/#set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false/#; +set autocommit = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/#false; +set autocommit =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set readonly = false; +/-set autocommit = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly = false/-; +set autocommit = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set readonly =/-false; +set autocommit =/-false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -SET RETRY_ABORTS_INTERNALLY = TRUE; +SET READONLY = TRUE; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = true; + set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = true; + set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true ; +set readonly = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true ; +set readonly = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true +set readonly = true ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = true; +set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; set -retry_aborts_internally +readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set retry_aborts_internally = true; +foo set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true bar; +set readonly = true bar; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set retry_aborts_internally = true; +%set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true%; +set readonly = true%; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =%true; +set readonly =%true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set retry_aborts_internally = true; +_set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true_; +set readonly = true_; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =_true; +set readonly =_true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set retry_aborts_internally = true; +&set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true&; +set readonly = true&; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =&true; +set readonly =&true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set retry_aborts_internally = true; +$set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true$; +set readonly = true$; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =$true; +set readonly =$true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set retry_aborts_internally = true; +@set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true@; +set readonly = true@; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =@true; +set readonly =@true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set retry_aborts_internally = true; +!set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true!; +set readonly = true!; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =!true; +set readonly =!true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set retry_aborts_internally = true; +*set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true*; +set readonly = true*; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =*true; +set readonly =*true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set retry_aborts_internally = true; +(set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true(; +set readonly = true(; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =(true; +set readonly =(true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set retry_aborts_internally = true; +)set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true); +set readonly = true); NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =)true; +set readonly =)true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set retry_aborts_internally = true; +-set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true-; +set readonly = true-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-true; +set readonly =-true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set retry_aborts_internally = true; ++set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true+; +set readonly = true+; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =+true; +set readonly =+true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set retry_aborts_internally = true; +-#set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true-#; +set readonly = true-#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-#true; +set readonly =-#true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set retry_aborts_internally = true; +/set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true/; +set readonly = true/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/true; +set readonly =/true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set retry_aborts_internally = true; +\set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true\; +set readonly = true\; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =\true; +set readonly =\true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set retry_aborts_internally = true; +?set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true?; +set readonly = true?; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =?true; +set readonly =?true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set retry_aborts_internally = true; +-/set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true-/; +set readonly = true-/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-/true; +set readonly =-/true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set retry_aborts_internally = true; +/#set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true/#; +set readonly = true/#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/#true; +set readonly =/#true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set retry_aborts_internally = true; +/-set readonly = true; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = true/-; +set readonly = true/-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/-true; +set readonly =/-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; +SET READONLY = 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; + set readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; - set retry_aborts_internally = false; + set readonly = 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 ; +set readonly = false ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false +set readonly = false ; +NEW_CONNECTION; +set readonly = false ; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; -set retry_aborts_internally = false; +set readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; set -retry_aborts_internally +readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set retry_aborts_internally = false; +foo set readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false bar; +set readonly = false bar; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set retry_aborts_internally = false; +%set readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false%; +set readonly = false%; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =%false; +set readonly =%false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set retry_aborts_internally = false; +_set readonly = false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false_; +set readonly = false_; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =_false; +set readonly =_false; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set retry_aborts_internally = false; +&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; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false&; +set statement_timeout='10000us'&; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =&false; +set&statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set retry_aborts_internally = false; +$set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false$; +set statement_timeout='10000us'$; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =$false; +set$statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set retry_aborts_internally = false; +@set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false@; +set statement_timeout='10000us'@; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =@false; +set@statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set retry_aborts_internally = false; +!set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false!; +set statement_timeout='10000us'!; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =!false; +set!statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set retry_aborts_internally = false; +*set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false*; +set statement_timeout='10000us'*; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =*false; +set*statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set retry_aborts_internally = false; +(set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false(; +set statement_timeout='10000us'(; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =(false; +set(statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set retry_aborts_internally = false; +)set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false); +set statement_timeout='10000us'); NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =)false; +set)statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set retry_aborts_internally = false; +-set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false-; +set statement_timeout='10000us'-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-false; +set-statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set retry_aborts_internally = false; ++set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false+; +set statement_timeout='10000us'+; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =+false; +set+statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set retry_aborts_internally = false; +-#set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false-#; +set statement_timeout='10000us'-#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-#false; +set-#statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set retry_aborts_internally = false; +/set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false/; +set statement_timeout='10000us'/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/false; +set/statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set retry_aborts_internally = false; +\set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false\; +set statement_timeout='10000us'\; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =\false; +set\statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set retry_aborts_internally = false; +?set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false?; +set statement_timeout='10000us'?; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =?false; +set?statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set retry_aborts_internally = false; +-/set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false-/; +set statement_timeout='10000us'-/; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =-/false; +set-/statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set retry_aborts_internally = false; +/#set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false/#; +set statement_timeout='10000us'/#; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/#false; +set/#statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set retry_aborts_internally = false; +/-set statement_timeout='10000us'; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally = false/-; +set statement_timeout='10000us'/-; NEW_CONNECTION; -set readonly = false; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set retry_aborts_internally =/-false; +set/-statement_timeout='10000us'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; -SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; +SET STATEMENT_TIMEOUT='9223372036854775807NS'; NEW_CONNECTION; -set autocommit_dml_mode='partitioned_non_atomic'; +set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; - set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; + set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; - set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; + set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set statement_timeout='9223372036854775807ns' ; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' ; +set statement_timeout='9223372036854775807ns' ; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' +set statement_timeout='9223372036854775807ns' ; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; set -autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +foo set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC' bar; +set statement_timeout='9223372036854775807ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +%set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'%; +set statement_timeout='9223372036854775807ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set%statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +_set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'_; +set statement_timeout='9223372036854775807ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set_statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +&set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'&; +set statement_timeout='9223372036854775807ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set&statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +$set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'$; +set statement_timeout='9223372036854775807ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set$statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +@set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'@; +set statement_timeout='9223372036854775807ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set@statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +!set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'!; +set statement_timeout='9223372036854775807ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set!statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +*set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'*; +set statement_timeout='9223372036854775807ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set*statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +(set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'(; +set statement_timeout='9223372036854775807ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set(statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +)set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'); +set statement_timeout='9223372036854775807ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set)statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-; +set statement_timeout='9223372036854775807ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set-statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; ++set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'+; +set statement_timeout='9223372036854775807ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set+statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-#set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-#; +set statement_timeout='9223372036854775807ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set-#statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/; +set statement_timeout='9223372036854775807ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set/statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +\set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'\; +set statement_timeout='9223372036854775807ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set\statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +?set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'?; +set statement_timeout='9223372036854775807ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set?statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +-/set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'-/; +set statement_timeout='9223372036854775807ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set-/statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/#set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/#; +set statement_timeout='9223372036854775807ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set/#statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +/-set statement_timeout='9223372036854775807ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='PARTITIONED_NON_ATOMIC'/-; +set statement_timeout='9223372036854775807ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-autocommit_dml_mode='PARTITIONED_NON_ATOMIC'; +set/-statement_timeout='9223372036854775807ns'; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set autocommit = false; +set transaction read only; NEW_CONNECTION; -SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; +set autocommit = false; +SET TRANSACTION READ ONLY; NEW_CONNECTION; -set autocommit_dml_mode='transactional'; +set autocommit = false; +set transaction read only; NEW_CONNECTION; - set autocommit_dml_mode='TRANSACTIONAL'; +set autocommit = false; + set transaction read only; NEW_CONNECTION; - set autocommit_dml_mode='TRANSACTIONAL'; +set autocommit = false; + set transaction read only; NEW_CONNECTION; +set autocommit = false; -set autocommit_dml_mode='TRANSACTIONAL'; +set transaction read only; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL' ; +set autocommit = false; +set transaction read only ; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL' ; +set autocommit = false; +set transaction read only ; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL' +set autocommit = false; +set transaction read only ; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set autocommit = false; +set transaction read only; NEW_CONNECTION; -set autocommit_dml_mode='TRANSACTIONAL'; +set autocommit = false; +set transaction read only; NEW_CONNECTION; +set autocommit = false; set -autocommit_dml_mode='TRANSACTIONAL'; +transaction +read +only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set autocommit_dml_mode='TRANSACTIONAL'; +foo set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL' bar; +set transaction read only bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set autocommit_dml_mode='TRANSACTIONAL'; +%set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'%; +set transaction read only%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%autocommit_dml_mode='TRANSACTIONAL'; +set transaction read%only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set autocommit_dml_mode='TRANSACTIONAL'; +_set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'_; +set transaction read only_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_autocommit_dml_mode='TRANSACTIONAL'; +set transaction read_only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set autocommit_dml_mode='TRANSACTIONAL'; +&set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'&; +set transaction read only&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&autocommit_dml_mode='TRANSACTIONAL'; +set transaction read&only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set autocommit_dml_mode='TRANSACTIONAL'; +$set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'$; +set transaction read only$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$autocommit_dml_mode='TRANSACTIONAL'; +set transaction read$only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set autocommit_dml_mode='TRANSACTIONAL'; +@set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'@; +set transaction read only@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@autocommit_dml_mode='TRANSACTIONAL'; +set transaction read@only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set autocommit_dml_mode='TRANSACTIONAL'; +!set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'!; +set transaction read only!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!autocommit_dml_mode='TRANSACTIONAL'; +set transaction read!only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set autocommit_dml_mode='TRANSACTIONAL'; +*set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'*; +set transaction read only*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*autocommit_dml_mode='TRANSACTIONAL'; +set transaction read*only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set autocommit_dml_mode='TRANSACTIONAL'; +(set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'(; +set transaction read only(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(autocommit_dml_mode='TRANSACTIONAL'; +set transaction read(only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set autocommit_dml_mode='TRANSACTIONAL'; +)set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'); +set transaction read only); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)autocommit_dml_mode='TRANSACTIONAL'; +set transaction read)only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set autocommit_dml_mode='TRANSACTIONAL'; +-set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'-; +set transaction read only-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-autocommit_dml_mode='TRANSACTIONAL'; +set transaction read-only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set autocommit_dml_mode='TRANSACTIONAL'; ++set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'+; +set transaction read only+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+autocommit_dml_mode='TRANSACTIONAL'; +set transaction read+only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set autocommit_dml_mode='TRANSACTIONAL'; +-#set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'-#; +set transaction read only-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#autocommit_dml_mode='TRANSACTIONAL'; +set transaction read-#only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set autocommit_dml_mode='TRANSACTIONAL'; +/set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'/; +set transaction read only/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/autocommit_dml_mode='TRANSACTIONAL'; +set transaction read/only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set autocommit_dml_mode='TRANSACTIONAL'; +\set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'\; +set transaction read only\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\autocommit_dml_mode='TRANSACTIONAL'; +set transaction read\only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set autocommit_dml_mode='TRANSACTIONAL'; +?set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'?; +set transaction read only?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?autocommit_dml_mode='TRANSACTIONAL'; +set transaction read?only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set autocommit_dml_mode='TRANSACTIONAL'; +-/set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'-/; +set transaction read only-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/autocommit_dml_mode='TRANSACTIONAL'; +set transaction read-/only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set autocommit_dml_mode='TRANSACTIONAL'; +/#set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'/#; +set transaction read only/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#autocommit_dml_mode='TRANSACTIONAL'; +set transaction read/#only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set autocommit_dml_mode='TRANSACTIONAL'; +/-set transaction read only; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set autocommit_dml_mode='TRANSACTIONAL'/-; +set transaction read only/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-autocommit_dml_mode='TRANSACTIONAL'; +set transaction read/-only; NEW_CONNECTION; -set statement_timeout=null; +set autocommit = false; +set transaction read write; NEW_CONNECTION; -SET STATEMENT_TIMEOUT=NULL; +set autocommit = false; +SET TRANSACTION READ WRITE; NEW_CONNECTION; -set statement_timeout=null; +set autocommit = false; +set transaction read write; NEW_CONNECTION; - set statement_timeout=null; +set autocommit = false; + set transaction read write; NEW_CONNECTION; - set statement_timeout=null; +set autocommit = false; + set transaction read write; NEW_CONNECTION; +set autocommit = false; -set statement_timeout=null; +set transaction read write; NEW_CONNECTION; -set statement_timeout=null ; +set autocommit = false; +set transaction read write ; NEW_CONNECTION; -set statement_timeout=null ; +set autocommit = false; +set transaction read write ; NEW_CONNECTION; -set statement_timeout=null +set autocommit = false; +set transaction read write ; NEW_CONNECTION; -set statement_timeout=null; +set autocommit = false; +set transaction read write; NEW_CONNECTION; -set statement_timeout=null; +set autocommit = false; +set transaction read write; NEW_CONNECTION; +set autocommit = false; set -statement_timeout=null; +transaction +read +write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout=null; +foo set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null bar; +set transaction read write bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout=null; +%set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null%; +set transaction read write%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout=null; +set transaction read%write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout=null; +_set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null_; +set transaction read write_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout=null; +set transaction read_write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout=null; +&set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null&; +set transaction read write&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout=null; +set transaction read&write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout=null; +$set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null$; +set transaction read write$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout=null; +set transaction read$write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout=null; +@set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null@; +set transaction read write@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout=null; +set transaction read@write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout=null; +!set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null!; +set transaction read write!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout=null; +set transaction read!write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout=null; +*set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null*; +set transaction read write*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout=null; +set transaction read*write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout=null; +(set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null(; +set transaction read write(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout=null; +set transaction read(write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout=null; +)set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null); +set transaction read write); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout=null; +set transaction read)write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout=null; +-set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null-; +set transaction read write-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout=null; +set transaction read-write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout=null; ++set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null+; +set transaction read write+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout=null; +set transaction read+write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout=null; +-#set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null-#; +set transaction read write-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout=null; +set transaction read-#write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout=null; +/set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null/; +set transaction read write/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout=null; +set transaction read/write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout=null; +\set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null\; +set transaction read write\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout=null; +set transaction read\write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout=null; +?set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null?; +set transaction read write?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout=null; +set transaction read?write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout=null; +-/set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null-/; +set transaction read write-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout=null; +set transaction read-/write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout=null; +/#set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null/#; +set transaction read write/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout=null; +set transaction read/#write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout=null; +/-set transaction read write; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout=null/-; +set transaction read write/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout=null; +set transaction read/-write; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='STRONG'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='1S'; +SET READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='strong'; NEW_CONNECTION; - set statement_timeout='1s'; + set read_only_staleness='STRONG'; NEW_CONNECTION; - set statement_timeout='1s'; + set read_only_staleness='STRONG'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='STRONG'; NEW_CONNECTION; -set statement_timeout='1s' ; +set read_only_staleness='STRONG' ; NEW_CONNECTION; -set statement_timeout='1s' ; +set read_only_staleness='STRONG' ; NEW_CONNECTION; -set statement_timeout='1s' +set read_only_staleness='STRONG' ; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='STRONG'; NEW_CONNECTION; -set statement_timeout='1s'; +set read_only_staleness='STRONG'; NEW_CONNECTION; set -statement_timeout='1s'; +read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='1s'; +foo set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s' bar; +set read_only_staleness='STRONG' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='1s'; +%set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'%; +set read_only_staleness='STRONG'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='1s'; +set%read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='1s'; +_set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'_; +set read_only_staleness='STRONG'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='1s'; +set_read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='1s'; +&set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'&; +set read_only_staleness='STRONG'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='1s'; +set&read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='1s'; +$set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'$; +set read_only_staleness='STRONG'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='1s'; +set$read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='1s'; +@set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'@; +set read_only_staleness='STRONG'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='1s'; +set@read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='1s'; +!set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'!; +set read_only_staleness='STRONG'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='1s'; +set!read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='1s'; +*set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'*; +set read_only_staleness='STRONG'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='1s'; +set*read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='1s'; +(set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'(; +set read_only_staleness='STRONG'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='1s'; +set(read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='1s'; +)set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'); +set read_only_staleness='STRONG'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='1s'; +set)read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='1s'; +-set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-; +set read_only_staleness='STRONG'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='1s'; +set-read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='1s'; ++set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'+; +set read_only_staleness='STRONG'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='1s'; +set+read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='1s'; +-#set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-#; +set read_only_staleness='STRONG'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='1s'; +set-#read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='1s'; +/set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/; +set read_only_staleness='STRONG'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='1s'; +set/read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='1s'; +\set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'\; +set read_only_staleness='STRONG'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='1s'; +set\read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='1s'; +?set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'?; +set read_only_staleness='STRONG'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='1s'; +set?read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='1s'; +-/set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'-/; +set read_only_staleness='STRONG'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='1s'; +set-/read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='1s'; +/#set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/#; +set read_only_staleness='STRONG'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='1s'; +set/#read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='1s'; +/-set read_only_staleness='STRONG'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='1s'/-; +set read_only_staleness='STRONG'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='1s'; +set/-read_only_staleness='STRONG'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='100MS'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123-08:00'; NEW_CONNECTION; - set statement_timeout='100ms'; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; - set statement_timeout='100ms'; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set statement_timeout='100ms' ; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set statement_timeout='100ms' ; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set statement_timeout='100ms' +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; set -statement_timeout='100ms'; +read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='100ms'; +foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms' bar; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='100ms'; +%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'%; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='100ms'; +_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'_; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='100ms'; +&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'&; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='100ms'; +$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'$; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='100ms'; +@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'@; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='100ms'; +!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'!; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='100ms'; +*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'*; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='100ms'; +(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'(; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='100ms'; +)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'); +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='100ms'; +-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='100ms'; ++set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'+; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='100ms'; +-#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='100ms'; +/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='100ms'; +\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'\; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='100ms'; +?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'?; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='100ms'; +-/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'-/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='100ms'; +/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='100ms'; +/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='100ms'/-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='100ms'; +set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123-08:00'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='10000US'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123z'; NEW_CONNECTION; - set statement_timeout='10000us'; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; - set statement_timeout='10000us'; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set statement_timeout='10000us' ; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set statement_timeout='10000us' ; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set statement_timeout='10000us' +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; set -statement_timeout='10000us'; +read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='10000us'; +foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us' bar; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='10000us'; +%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'%; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='10000us'; +_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'_; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='10000us'; +&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'&; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='10000us'; +$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'$; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='10000us'; +@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'@; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='10000us'; +!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'!; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='10000us'; +*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'*; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='10000us'; +(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'(; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='10000us'; +)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'); +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='10000us'; +-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='10000us'; ++set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'+; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='10000us'; +-#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='10000us'; +/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='10000us'; +\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'\; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='10000us'; +?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'?; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='10000us'; +-/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'-/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='10000us'; +/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='10000us'; +/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='10000us'/-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='10000us'; +set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -SET STATEMENT_TIMEOUT='9223372036854775807NS'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123+07:45'; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; - set statement_timeout='9223372036854775807ns'; + set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' ; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns' +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; set -statement_timeout='9223372036854775807ns'; +read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set statement_timeout='9223372036854775807ns'; +foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns' bar; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set statement_timeout='9223372036854775807ns'; +%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'%; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set statement_timeout='9223372036854775807ns'; +_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'_; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set statement_timeout='9223372036854775807ns'; +&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'&; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set statement_timeout='9223372036854775807ns'; +$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'$; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set statement_timeout='9223372036854775807ns'; +@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'@; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set statement_timeout='9223372036854775807ns'; +!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'!; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set statement_timeout='9223372036854775807ns'; +*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'*; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set statement_timeout='9223372036854775807ns'; +(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'(; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set statement_timeout='9223372036854775807ns'; +)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'); +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set statement_timeout='9223372036854775807ns'; +-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set statement_timeout='9223372036854775807ns'; ++set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'+; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set statement_timeout='9223372036854775807ns'; +-#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set statement_timeout='9223372036854775807ns'; +/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set statement_timeout='9223372036854775807ns'; +\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'\; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set statement_timeout='9223372036854775807ns'; +?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'?; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set statement_timeout='9223372036854775807ns'; +-/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'-/; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set statement_timeout='9223372036854775807ns'; +/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/#; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set statement_timeout='9223372036854775807ns'; +/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set statement_timeout='9223372036854775807ns'/-; +set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-statement_timeout='9223372036854775807ns'; +set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; - set transaction read only; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set autocommit = false; -set transaction read only ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set autocommit = false; -set transaction read only +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; -set transaction read only; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; set -transaction -read -only; +read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read only; +foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only bar; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read only; +%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only%; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%only; +set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read only; +_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only_; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_only; +set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read only; +&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only&; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&only; +set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read only; +$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only$; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$only; +set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read only; +@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only@; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@only; +set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read only; +!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only!; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!only; +set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read only; +*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only*; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*only; +set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read only; +(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only(; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(only; +set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read only; +)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only); +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)only; +set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read only; +-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-only; +set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read only; ++set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only+; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+only; +set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read only; +-#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#only; +set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read only; +/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/only; +set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read only; +\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only\; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\only; +set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read only; +?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only?; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?only; +set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read only; +-/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only-/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/only; +set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read only; +/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#only; +set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read only; +/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read only/-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-only; +set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; -SET TRANSACTION READ WRITE; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321z'; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; - set transaction read write; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set autocommit = false; -set transaction read write ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set autocommit = false; -set transaction read write +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; -set transaction read write; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; set -transaction -read -write; +read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set transaction read write; +foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write bar; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set transaction read write; +%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write%; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read%write; +set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set transaction read write; +_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write_; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read_write; +set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set transaction read write; +&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write&; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read&write; +set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set transaction read write; +$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write$; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read$write; +set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set transaction read write; +@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write@; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read@write; +set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set transaction read write; +!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write!; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read!write; +set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set transaction read write; +*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write*; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read*write; +set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set transaction read write; +(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write(; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read(write; +set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set transaction read write; +)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write); +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read)write; +set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set transaction read write; +-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-write; +set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set transaction read write; ++set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write+; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read+write; +set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set transaction read write; +-#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-#write; +set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set transaction read write; +/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/write; +set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set transaction read write; +\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write\; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read\write; +set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set transaction read write; +?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write?; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read?write; +set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set transaction read write; +-/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write-/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read-/write; +set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set transaction read write; +/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/#write; +set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set transaction read write; +/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read write/-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; NEW_CONNECTION; -set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set transaction read/-write; +set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='STRONG'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set read_only_staleness='strong'; +set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321+05:30'; NEW_CONNECTION; - set read_only_staleness='STRONG'; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; - set read_only_staleness='STRONG'; + set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set read_only_staleness='STRONG' ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set read_only_staleness='STRONG' ; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set read_only_staleness='STRONG' +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; set -read_only_staleness='STRONG'; +read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='STRONG'; +foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG' bar; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='STRONG'; +%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'%; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='STRONG'; +_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'_; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='STRONG'; +&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'&; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='STRONG'; +$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'$; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='STRONG'; +@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'@; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='STRONG'; +!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'!; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='STRONG'; +*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'*; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='STRONG'; +(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'(; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='STRONG'; +)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'); +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='STRONG'; +-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='STRONG'; ++set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'+; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='STRONG'; +-#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'-#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='STRONG'; +/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='STRONG'; +\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'\; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='STRONG'; +?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'?; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='STRONG'; +-/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'-/; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='STRONG'; +/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'/#; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='STRONG'; +/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='STRONG'/-; +set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-read_only_staleness='STRONG'; +set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +SET READ_ONLY_STALENESS='MAX_STALENESS 12S'; NEW_CONNECTION; -set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123-08:00'; +set read_only_staleness='max_staleness 12s'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; + set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' ; +set read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00' +set read_only_staleness='MAX_STALENESS 12s' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +set read_only_staleness='MAX_STALENESS 12s'; NEW_CONNECTION; set -read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123-08:00'; +read_only_staleness='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s' 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'%; 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='MAX_STALENESS%12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'_; 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='MAX_STALENESS_12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'&; 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='MAX_STALENESS&12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'$; 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='MAX_STALENESS$12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'@; 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='MAX_STALENESS@12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'!; 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='MAX_STALENESS!12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'*; 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='MAX_STALENESS*12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'(; 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='MAX_STALENESS(12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'); 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='MAX_STALENESS)12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'-; 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='MAX_STALENESS-12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'+; 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='MAX_STALENESS+12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'-#; 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='MAX_STALENESS-#12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'/; 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='MAX_STALENESS/12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'\; 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='MAX_STALENESS\12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'?; 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='MAX_STALENESS?12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'-/; 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='MAX_STALENESS-/12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'/#; 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='MAX_STALENESS/#12s'; 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='MAX_STALENESS 12s'; 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='MAX_STALENESS 12s'/-; 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='MAX_STALENESS/-12s'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +SET READ_ONLY_STALENESS='MAX_STALENESS 100MS'; NEW_CONNECTION; -set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123z'; +set read_only_staleness='max_staleness 100ms'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; + set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' ; +set read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' +set read_only_staleness='MAX_STALENESS 100ms' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; set -read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +foo set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z' bar; +set read_only_staleness='MAX_STALENESS 100ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +%set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'%; +set read_only_staleness='MAX_STALENESS 100ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS%100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +_set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'_; +set read_only_staleness='MAX_STALENESS 100ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS_100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +&set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'&; +set read_only_staleness='MAX_STALENESS 100ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS&100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +$set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'$; +set read_only_staleness='MAX_STALENESS 100ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS$100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +@set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'@; +set read_only_staleness='MAX_STALENESS 100ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS@100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +!set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'!; +set read_only_staleness='MAX_STALENESS 100ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS!100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +*set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'*; +set read_only_staleness='MAX_STALENESS 100ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS*100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +(set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'(; +set read_only_staleness='MAX_STALENESS 100ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS(100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +)set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'); +set read_only_staleness='MAX_STALENESS 100ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS)100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-; +set read_only_staleness='MAX_STALENESS 100ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS-100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; ++set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'+; +set read_only_staleness='MAX_STALENESS 100ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS+100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-#set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-#; +set read_only_staleness='MAX_STALENESS 100ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS-#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/; +set read_only_staleness='MAX_STALENESS 100ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +\set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'\; +set read_only_staleness='MAX_STALENESS 100ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS\100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +?set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'?; +set read_only_staleness='MAX_STALENESS 100ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS?100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +-/set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'-/; +set read_only_staleness='MAX_STALENESS 100ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS-/100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/#set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/#; +set read_only_staleness='MAX_STALENESS 100ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS/#100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'; +/-set read_only_staleness='MAX_STALENESS 100ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123Z'/-; +set read_only_staleness='MAX_STALENESS 100ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123Z'; +set read_only_staleness='MAX_STALENESS/-100ms'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +SET READ_ONLY_STALENESS='MAX_STALENESS 99999US'; NEW_CONNECTION; -set read_only_staleness='min_read_timestamp 2018-01-02t03:04:05.123+07:45'; +set read_only_staleness='max_staleness 99999us'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; - set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; + set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' ; +set read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' +set read_only_staleness='MAX_STALENESS 99999us' ; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; set -read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +foo set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45' bar; +set read_only_staleness='MAX_STALENESS 99999us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +%set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'%; +set read_only_staleness='MAX_STALENESS 99999us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP%2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS%99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +_set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'_; +set read_only_staleness='MAX_STALENESS 99999us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP_2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS_99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +&set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'&; +set read_only_staleness='MAX_STALENESS 99999us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP&2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS&99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +$set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'$; +set read_only_staleness='MAX_STALENESS 99999us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP$2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS$99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +@set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'@; +set read_only_staleness='MAX_STALENESS 99999us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP@2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS@99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +!set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'!; +set read_only_staleness='MAX_STALENESS 99999us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP!2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS!99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +*set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'*; +set read_only_staleness='MAX_STALENESS 99999us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP*2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS*99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +(set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'(; +set read_only_staleness='MAX_STALENESS 99999us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP(2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS(99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +)set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'); +set read_only_staleness='MAX_STALENESS 99999us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP)2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS)99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-; +set read_only_staleness='MAX_STALENESS 99999us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS-99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; ++set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'+; +set read_only_staleness='MAX_STALENESS 99999us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP+2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS+99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-#set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-#; +set read_only_staleness='MAX_STALENESS 99999us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-#2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS-#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/; +set read_only_staleness='MAX_STALENESS 99999us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +\set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'\; +set read_only_staleness='MAX_STALENESS 99999us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP\2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS\99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +?set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'?; +set read_only_staleness='MAX_STALENESS 99999us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP?2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS?99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +-/set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'-/; +set read_only_staleness='MAX_STALENESS 99999us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP-/2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS-/99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/#set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/#; +set read_only_staleness='MAX_STALENESS 99999us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/#2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS/#99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'; +/-set read_only_staleness='MAX_STALENESS 99999us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP 2018-01-02T03:04:05.123+07:45'/-; +set read_only_staleness='MAX_STALENESS 99999us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MIN_READ_TIMESTAMP/-2018-01-02T03:04:05.123+07:45'; +set read_only_staleness='MAX_STALENESS/-99999us'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +SET READ_ONLY_STALENESS='MAX_STALENESS 10NS'; NEW_CONNECTION; -set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321-07:00'; +set read_only_staleness='max_staleness 10ns'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; + set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' ; +set read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' +set read_only_staleness='MAX_STALENESS 10ns' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; set -read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +foo set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00' bar; +set read_only_staleness='MAX_STALENESS 10ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +%set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'%; +set read_only_staleness='MAX_STALENESS 10ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS%10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +_set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'_; +set read_only_staleness='MAX_STALENESS 10ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS_10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +&set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'&; +set read_only_staleness='MAX_STALENESS 10ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS&10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +$set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'$; +set read_only_staleness='MAX_STALENESS 10ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS$10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +@set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'@; +set read_only_staleness='MAX_STALENESS 10ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS@10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +!set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'!; +set read_only_staleness='MAX_STALENESS 10ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS!10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +*set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'*; +set read_only_staleness='MAX_STALENESS 10ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS*10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +(set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'(; +set read_only_staleness='MAX_STALENESS 10ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS(10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +)set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'); +set read_only_staleness='MAX_STALENESS 10ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS)10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-; +set read_only_staleness='MAX_STALENESS 10ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS-10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; ++set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'+; +set read_only_staleness='MAX_STALENESS 10ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS+10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-#set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-#; +set read_only_staleness='MAX_STALENESS 10ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS-#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/; +set read_only_staleness='MAX_STALENESS 10ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +\set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'\; +set read_only_staleness='MAX_STALENESS 10ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS\10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +?set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'?; +set read_only_staleness='MAX_STALENESS 10ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS?10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +-/set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'-/; +set read_only_staleness='MAX_STALENESS 10ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS-/10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/#set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/#; +set read_only_staleness='MAX_STALENESS 10ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS/#10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'; +/-set read_only_staleness='MAX_STALENESS 10ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321-07:00'/-; +set read_only_staleness='MAX_STALENESS 10ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321-07:00'; +set read_only_staleness='MAX_STALENESS/-10ns'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 15S'; NEW_CONNECTION; -set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321z'; +set read_only_staleness='exact_staleness 15s'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; + set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' ; +set read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' +set read_only_staleness='EXACT_STALENESS 15s' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; set -read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +foo set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z' bar; +set read_only_staleness='EXACT_STALENESS 15s' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +%set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'%; +set read_only_staleness='EXACT_STALENESS 15s'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS%15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +_set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'_; +set read_only_staleness='EXACT_STALENESS 15s'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS_15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +&set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'&; +set read_only_staleness='EXACT_STALENESS 15s'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS&15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +$set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'$; +set read_only_staleness='EXACT_STALENESS 15s'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS$15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +@set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'@; +set read_only_staleness='EXACT_STALENESS 15s'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS@15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +!set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'!; +set read_only_staleness='EXACT_STALENESS 15s'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS!15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +*set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'*; +set read_only_staleness='EXACT_STALENESS 15s'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS*15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +(set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'(; +set read_only_staleness='EXACT_STALENESS 15s'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS(15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +)set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'); +set read_only_staleness='EXACT_STALENESS 15s'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS)15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-; +set read_only_staleness='EXACT_STALENESS 15s'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS-15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; ++set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'+; +set read_only_staleness='EXACT_STALENESS 15s'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS+15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-#set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-#; +set read_only_staleness='EXACT_STALENESS 15s'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS-#15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/; +set read_only_staleness='EXACT_STALENESS 15s'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS/15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +\set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'\; +set read_only_staleness='EXACT_STALENESS 15s'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS\15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +?set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'?; +set read_only_staleness='EXACT_STALENESS 15s'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS?15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +-/set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'-/; +set read_only_staleness='EXACT_STALENESS 15s'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS-/15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/#set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/#; +set read_only_staleness='EXACT_STALENESS 15s'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS/#15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'; +/-set read_only_staleness='EXACT_STALENESS 15s'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321Z'/-; +set read_only_staleness='EXACT_STALENESS 15s'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321Z'; +set read_only_staleness='EXACT_STALENESS/-15s'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 1500MS'; NEW_CONNECTION; -set read_only_staleness='read_timestamp 2018-01-02t03:04:05.54321+05:30'; +set read_only_staleness='exact_staleness 1500ms'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; - set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; + set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' ; +set read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' +set read_only_staleness='EXACT_STALENESS 1500ms' ; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; set -read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +foo set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30' bar; +set read_only_staleness='EXACT_STALENESS 1500ms' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +%set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'%; +set read_only_staleness='EXACT_STALENESS 1500ms'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP%2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS%1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +_set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'_; +set read_only_staleness='EXACT_STALENESS 1500ms'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP_2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS_1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +&set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'&; +set read_only_staleness='EXACT_STALENESS 1500ms'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP&2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS&1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +$set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'$; +set read_only_staleness='EXACT_STALENESS 1500ms'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP$2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS$1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +@set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'@; +set read_only_staleness='EXACT_STALENESS 1500ms'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP@2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS@1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +!set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'!; +set read_only_staleness='EXACT_STALENESS 1500ms'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP!2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS!1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +*set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'*; +set read_only_staleness='EXACT_STALENESS 1500ms'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP*2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS*1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +(set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'(; +set read_only_staleness='EXACT_STALENESS 1500ms'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP(2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS(1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +)set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'); +set read_only_staleness='EXACT_STALENESS 1500ms'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP)2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS)1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-; +set read_only_staleness='EXACT_STALENESS 1500ms'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS-1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; ++set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'+; +set read_only_staleness='EXACT_STALENESS 1500ms'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP+2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS+1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-#set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-#; +set read_only_staleness='EXACT_STALENESS 1500ms'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-#2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS-#1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/; +set read_only_staleness='EXACT_STALENESS 1500ms'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS/1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +\set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'\; +set read_only_staleness='EXACT_STALENESS 1500ms'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP\2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS\1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +?set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'?; +set read_only_staleness='EXACT_STALENESS 1500ms'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP?2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS?1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +-/set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'-/; +set read_only_staleness='EXACT_STALENESS 1500ms'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP-/2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS-/1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/#set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/#; +set read_only_staleness='EXACT_STALENESS 1500ms'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/#2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS/#1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'; +/-set read_only_staleness='EXACT_STALENESS 1500ms'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP 2018-01-02T03:04:05.54321+05:30'/-; +set read_only_staleness='EXACT_STALENESS 1500ms'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='READ_TIMESTAMP/-2018-01-02T03:04:05.54321+05:30'; +set read_only_staleness='EXACT_STALENESS/-1500ms'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 12S'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 15000000US'; NEW_CONNECTION; -set read_only_staleness='max_staleness 12s'; +set read_only_staleness='exact_staleness 15000000us'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 12s'; + set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 12s'; + set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s' ; +set read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s' ; +set read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s' +set read_only_staleness='EXACT_STALENESS 15000000us' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 12s'; +set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 12s'; +read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 12s'; +foo set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s' bar; +set read_only_staleness='EXACT_STALENESS 15000000us' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 12s'; +%set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'%; +set read_only_staleness='EXACT_STALENESS 15000000us'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%12s'; +set read_only_staleness='EXACT_STALENESS%15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 12s'; +_set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'_; +set read_only_staleness='EXACT_STALENESS 15000000us'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_12s'; +set read_only_staleness='EXACT_STALENESS_15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 12s'; +&set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'&; +set read_only_staleness='EXACT_STALENESS 15000000us'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&12s'; +set read_only_staleness='EXACT_STALENESS&15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 12s'; +$set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'$; +set read_only_staleness='EXACT_STALENESS 15000000us'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$12s'; +set read_only_staleness='EXACT_STALENESS$15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 12s'; +@set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'@; +set read_only_staleness='EXACT_STALENESS 15000000us'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@12s'; +set read_only_staleness='EXACT_STALENESS@15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 12s'; +!set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'!; +set read_only_staleness='EXACT_STALENESS 15000000us'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!12s'; +set read_only_staleness='EXACT_STALENESS!15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 12s'; +*set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'*; +set read_only_staleness='EXACT_STALENESS 15000000us'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*12s'; +set read_only_staleness='EXACT_STALENESS*15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 12s'; +(set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'(; +set read_only_staleness='EXACT_STALENESS 15000000us'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(12s'; +set read_only_staleness='EXACT_STALENESS(15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 12s'; +)set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'); +set read_only_staleness='EXACT_STALENESS 15000000us'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)12s'; +set read_only_staleness='EXACT_STALENESS)15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 12s'; +-set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'-; +set read_only_staleness='EXACT_STALENESS 15000000us'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-12s'; +set read_only_staleness='EXACT_STALENESS-15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 12s'; ++set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'+; +set read_only_staleness='EXACT_STALENESS 15000000us'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+12s'; +set read_only_staleness='EXACT_STALENESS+15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 12s'; +-#set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'-#; +set read_only_staleness='EXACT_STALENESS 15000000us'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#12s'; +set read_only_staleness='EXACT_STALENESS-#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 12s'; +/set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'/; +set read_only_staleness='EXACT_STALENESS 15000000us'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/12s'; +set read_only_staleness='EXACT_STALENESS/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 12s'; +\set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'\; +set read_only_staleness='EXACT_STALENESS 15000000us'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\12s'; +set read_only_staleness='EXACT_STALENESS\15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 12s'; +?set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'?; +set read_only_staleness='EXACT_STALENESS 15000000us'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?12s'; +set read_only_staleness='EXACT_STALENESS?15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 12s'; +-/set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'-/; +set read_only_staleness='EXACT_STALENESS 15000000us'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/12s'; +set read_only_staleness='EXACT_STALENESS-/15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 12s'; +/#set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'/#; +set read_only_staleness='EXACT_STALENESS 15000000us'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#12s'; +set read_only_staleness='EXACT_STALENESS/#15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 12s'; +/-set read_only_staleness='EXACT_STALENESS 15000000us'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 12s'/-; +set read_only_staleness='EXACT_STALENESS 15000000us'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-12s'; +set read_only_staleness='EXACT_STALENESS/-15000000us'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 100MS'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 9999NS'; NEW_CONNECTION; -set read_only_staleness='max_staleness 100ms'; +set read_only_staleness='exact_staleness 9999ns'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 100ms'; + set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 100ms'; + set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms' ; +set read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms' ; +set read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms' +set read_only_staleness='EXACT_STALENESS 9999ns' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 100ms'; +set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 100ms'; +read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 100ms'; +foo set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms' bar; +set read_only_staleness='EXACT_STALENESS 9999ns' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 100ms'; +%set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'%; +set read_only_staleness='EXACT_STALENESS 9999ns'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%100ms'; +set read_only_staleness='EXACT_STALENESS%9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 100ms'; +_set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'_; +set read_only_staleness='EXACT_STALENESS 9999ns'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_100ms'; +set read_only_staleness='EXACT_STALENESS_9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 100ms'; +&set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'&; +set read_only_staleness='EXACT_STALENESS 9999ns'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&100ms'; +set read_only_staleness='EXACT_STALENESS&9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 100ms'; +$set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'$; +set read_only_staleness='EXACT_STALENESS 9999ns'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$100ms'; +set read_only_staleness='EXACT_STALENESS$9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 100ms'; +@set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'@; +set read_only_staleness='EXACT_STALENESS 9999ns'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@100ms'; +set read_only_staleness='EXACT_STALENESS@9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 100ms'; +!set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'!; +set read_only_staleness='EXACT_STALENESS 9999ns'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!100ms'; +set read_only_staleness='EXACT_STALENESS!9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 100ms'; +*set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'*; +set read_only_staleness='EXACT_STALENESS 9999ns'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*100ms'; +set read_only_staleness='EXACT_STALENESS*9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 100ms'; +(set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'(; +set read_only_staleness='EXACT_STALENESS 9999ns'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(100ms'; +set read_only_staleness='EXACT_STALENESS(9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 100ms'; +)set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'); +set read_only_staleness='EXACT_STALENESS 9999ns'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)100ms'; +set read_only_staleness='EXACT_STALENESS)9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 100ms'; +-set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'-; +set read_only_staleness='EXACT_STALENESS 9999ns'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-100ms'; +set read_only_staleness='EXACT_STALENESS-9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 100ms'; ++set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'+; +set read_only_staleness='EXACT_STALENESS 9999ns'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+100ms'; +set read_only_staleness='EXACT_STALENESS+9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 100ms'; +-#set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'-#; +set read_only_staleness='EXACT_STALENESS 9999ns'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#100ms'; +set read_only_staleness='EXACT_STALENESS-#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 100ms'; +/set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'/; +set read_only_staleness='EXACT_STALENESS 9999ns'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/100ms'; +set read_only_staleness='EXACT_STALENESS/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 100ms'; +\set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'\; +set read_only_staleness='EXACT_STALENESS 9999ns'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\100ms'; +set read_only_staleness='EXACT_STALENESS\9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 100ms'; +?set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'?; +set read_only_staleness='EXACT_STALENESS 9999ns'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?100ms'; +set read_only_staleness='EXACT_STALENESS?9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 100ms'; +-/set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'-/; +set read_only_staleness='EXACT_STALENESS 9999ns'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/100ms'; +set read_only_staleness='EXACT_STALENESS-/9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 100ms'; +/#set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'/#; +set read_only_staleness='EXACT_STALENESS 9999ns'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#100ms'; +set read_only_staleness='EXACT_STALENESS/#9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 100ms'; +/-set read_only_staleness='EXACT_STALENESS 9999ns'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 100ms'/-; +set read_only_staleness='EXACT_STALENESS 9999ns'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-100ms'; +set read_only_staleness='EXACT_STALENESS/-9999ns'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set optimizer_version='1'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 99999US'; +SET OPTIMIZER_VERSION='1'; NEW_CONNECTION; -set read_only_staleness='max_staleness 99999us'; +set optimizer_version='1'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 99999us'; + set optimizer_version='1'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 99999us'; + set optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us' ; +set optimizer_version='1' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us' ; +set optimizer_version='1' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us' +set optimizer_version='1' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 99999us'; +set optimizer_version='1'; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 99999us'; +optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 99999us'; +foo set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us' bar; +set optimizer_version='1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 99999us'; +%set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'%; +set optimizer_version='1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%99999us'; +set%optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 99999us'; +_set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'_; +set optimizer_version='1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_99999us'; +set_optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 99999us'; +&set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'&; +set optimizer_version='1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&99999us'; +set&optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 99999us'; +$set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'$; +set optimizer_version='1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$99999us'; +set$optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 99999us'; +@set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'@; +set optimizer_version='1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@99999us'; +set@optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 99999us'; +!set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'!; +set optimizer_version='1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!99999us'; +set!optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 99999us'; +*set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'*; +set optimizer_version='1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*99999us'; +set*optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 99999us'; +(set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'(; +set optimizer_version='1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(99999us'; +set(optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 99999us'; +)set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'); +set optimizer_version='1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)99999us'; +set)optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 99999us'; +-set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'-; +set optimizer_version='1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-99999us'; +set-optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 99999us'; ++set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'+; +set optimizer_version='1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+99999us'; +set+optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 99999us'; +-#set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'-#; +set optimizer_version='1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#99999us'; +set-#optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 99999us'; +/set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'/; +set optimizer_version='1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/99999us'; +set/optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 99999us'; +\set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'\; +set optimizer_version='1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\99999us'; +set\optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 99999us'; +?set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'?; +set optimizer_version='1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?99999us'; +set?optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 99999us'; +-/set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'-/; +set optimizer_version='1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/99999us'; +set-/optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 99999us'; +/#set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'/#; +set optimizer_version='1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#99999us'; +set/#optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 99999us'; +/-set optimizer_version='1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 99999us'/-; +set optimizer_version='1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-99999us'; +set/-optimizer_version='1'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set optimizer_version='200'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='MAX_STALENESS 10NS'; +SET OPTIMIZER_VERSION='200'; NEW_CONNECTION; -set read_only_staleness='max_staleness 10ns'; +set optimizer_version='200'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 10ns'; + set optimizer_version='200'; NEW_CONNECTION; - set read_only_staleness='MAX_STALENESS 10ns'; + set optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns' ; +set optimizer_version='200' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns' ; +set optimizer_version='200' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns' +set optimizer_version='200' ; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='MAX_STALENESS 10ns'; +set optimizer_version='200'; NEW_CONNECTION; set -read_only_staleness='MAX_STALENESS 10ns'; +optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='MAX_STALENESS 10ns'; +foo set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns' bar; +set optimizer_version='200' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='MAX_STALENESS 10ns'; +%set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'%; +set optimizer_version='200'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS%10ns'; +set%optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='MAX_STALENESS 10ns'; +_set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'_; +set optimizer_version='200'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS_10ns'; +set_optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='MAX_STALENESS 10ns'; +&set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'&; +set optimizer_version='200'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS&10ns'; +set&optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='MAX_STALENESS 10ns'; +$set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'$; +set optimizer_version='200'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS$10ns'; +set$optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='MAX_STALENESS 10ns'; +@set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'@; +set optimizer_version='200'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS@10ns'; +set@optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='MAX_STALENESS 10ns'; +!set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'!; +set optimizer_version='200'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS!10ns'; +set!optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='MAX_STALENESS 10ns'; +*set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'*; +set optimizer_version='200'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS*10ns'; +set*optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='MAX_STALENESS 10ns'; +(set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'(; +set optimizer_version='200'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS(10ns'; +set(optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='MAX_STALENESS 10ns'; +)set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'); +set optimizer_version='200'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS)10ns'; +set)optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='MAX_STALENESS 10ns'; +-set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'-; +set optimizer_version='200'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-10ns'; +set-optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='MAX_STALENESS 10ns'; ++set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'+; +set optimizer_version='200'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS+10ns'; +set+optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='MAX_STALENESS 10ns'; +-#set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'-#; +set optimizer_version='200'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-#10ns'; +set-#optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='MAX_STALENESS 10ns'; +/set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'/; +set optimizer_version='200'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/10ns'; +set/optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='MAX_STALENESS 10ns'; +\set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'\; +set optimizer_version='200'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS\10ns'; +set\optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='MAX_STALENESS 10ns'; +?set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'?; +set optimizer_version='200'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS?10ns'; +set?optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='MAX_STALENESS 10ns'; +-/set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'-/; +set optimizer_version='200'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS-/10ns'; +set-/optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='MAX_STALENESS 10ns'; +/#set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'/#; +set optimizer_version='200'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/#10ns'; +set/#optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='MAX_STALENESS 10ns'; +/-set optimizer_version='200'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS 10ns'/-; +set optimizer_version='200'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='MAX_STALENESS/-10ns'; +set/-optimizer_version='200'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set optimizer_version='LATEST'; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 15S'; +SET OPTIMIZER_VERSION='LATEST'; NEW_CONNECTION; -set read_only_staleness='exact_staleness 15s'; +set optimizer_version='latest'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15s'; + set optimizer_version='LATEST'; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15s'; + set optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s' ; +set optimizer_version='LATEST' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s' ; +set optimizer_version='LATEST' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s' +set optimizer_version='LATEST' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15s'; +set optimizer_version='LATEST'; NEW_CONNECTION; set -read_only_staleness='EXACT_STALENESS 15s'; +optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 15s'; +foo set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s' bar; +set optimizer_version='LATEST' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 15s'; +%set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'%; +set optimizer_version='LATEST'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%15s'; +set%optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 15s'; +_set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'_; +set optimizer_version='LATEST'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_15s'; +set_optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 15s'; +&set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'&; +set optimizer_version='LATEST'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&15s'; +set&optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 15s'; +$set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'$; +set optimizer_version='LATEST'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$15s'; +set$optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 15s'; +@set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'@; +set optimizer_version='LATEST'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@15s'; +set@optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 15s'; +!set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'!; +set optimizer_version='LATEST'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!15s'; +set!optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 15s'; +*set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'*; +set optimizer_version='LATEST'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*15s'; +set*optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 15s'; +(set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'(; +set optimizer_version='LATEST'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(15s'; +set(optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 15s'; +)set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'); +set optimizer_version='LATEST'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)15s'; +set)optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 15s'; +-set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'-; +set optimizer_version='LATEST'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-15s'; +set-optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 15s'; ++set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'+; +set optimizer_version='LATEST'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+15s'; +set+optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 15s'; +-#set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'-#; +set optimizer_version='LATEST'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#15s'; +set-#optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 15s'; +/set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'/; +set optimizer_version='LATEST'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/15s'; +set/optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 15s'; +\set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'\; +set optimizer_version='LATEST'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\15s'; +set\optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 15s'; +?set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'?; +set optimizer_version='LATEST'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?15s'; +set?optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 15s'; +-/set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'-/; +set optimizer_version='LATEST'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/15s'; +set-/optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 15s'; +/#set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'/#; +set optimizer_version='LATEST'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#15s'; +set/#optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 15s'; +/-set optimizer_version='LATEST'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15s'/-; +set optimizer_version='LATEST'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-15s'; +set/-optimizer_version='LATEST'; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set optimizer_version=''; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 1500MS'; +SET OPTIMIZER_VERSION=''; NEW_CONNECTION; -set read_only_staleness='exact_staleness 1500ms'; +set optimizer_version=''; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 1500ms'; + set optimizer_version=''; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 1500ms'; + set optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms' ; +set optimizer_version='' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms' ; +set optimizer_version='' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms' +set optimizer_version='' ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 1500ms'; +set optimizer_version=''; NEW_CONNECTION; set -read_only_staleness='EXACT_STALENESS 1500ms'; +optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 1500ms'; +foo set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms' bar; +set optimizer_version='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 1500ms'; +%set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'%; +set optimizer_version=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%1500ms'; +set%optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 1500ms'; +_set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'_; +set optimizer_version=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_1500ms'; +set_optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 1500ms'; +&set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'&; +set optimizer_version=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&1500ms'; +set&optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 1500ms'; +$set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'$; +set optimizer_version=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$1500ms'; +set$optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 1500ms'; +@set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'@; +set optimizer_version=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@1500ms'; +set@optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 1500ms'; +!set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'!; +set optimizer_version=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!1500ms'; +set!optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 1500ms'; +*set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'*; +set optimizer_version=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*1500ms'; +set*optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 1500ms'; +(set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'(; +set optimizer_version=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(1500ms'; +set(optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 1500ms'; +)set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'); +set optimizer_version=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)1500ms'; +set)optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 1500ms'; +-set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'-; +set optimizer_version=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-1500ms'; +set-optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 1500ms'; ++set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'+; +set optimizer_version=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+1500ms'; +set+optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 1500ms'; +-#set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'-#; +set optimizer_version=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#1500ms'; +set-#optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 1500ms'; +/set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'/; +set optimizer_version=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/1500ms'; +set/optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 1500ms'; +\set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'\; +set optimizer_version=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\1500ms'; +set\optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 1500ms'; +?set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'?; +set optimizer_version=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?1500ms'; +set?optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 1500ms'; +-/set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'-/; +set optimizer_version=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/1500ms'; +set-/optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 1500ms'; +/#set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'/#; +set optimizer_version=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#1500ms'; +set/#optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 1500ms'; +/-set optimizer_version=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 1500ms'/-; +set optimizer_version=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-1500ms'; +set/-optimizer_version=''; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set return_commit_stats = true; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 15000000US'; +SET RETURN_COMMIT_STATS = TRUE; NEW_CONNECTION; -set read_only_staleness='exact_staleness 15000000us'; +set return_commit_stats = true; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15000000us'; + set return_commit_stats = true; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 15000000us'; + set return_commit_stats = true; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set return_commit_stats = true; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us' ; +set return_commit_stats = true ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us' ; +set return_commit_stats = true ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us' +set return_commit_stats = true ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set return_commit_stats = true; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 15000000us'; +set return_commit_stats = true; NEW_CONNECTION; set -read_only_staleness='EXACT_STALENESS 15000000us'; +return_commit_stats += +true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 15000000us'; +foo set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us' bar; +set return_commit_stats = true bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 15000000us'; +%set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'%; +set return_commit_stats = true%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%15000000us'; +set return_commit_stats =%true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 15000000us'; +_set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'_; +set return_commit_stats = true_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_15000000us'; +set return_commit_stats =_true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 15000000us'; +&set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'&; +set return_commit_stats = true&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&15000000us'; +set return_commit_stats =&true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 15000000us'; +$set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'$; +set return_commit_stats = true$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$15000000us'; +set return_commit_stats =$true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 15000000us'; +@set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'@; +set return_commit_stats = true@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@15000000us'; +set return_commit_stats =@true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 15000000us'; +!set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'!; +set return_commit_stats = true!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!15000000us'; +set return_commit_stats =!true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 15000000us'; +*set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'*; +set return_commit_stats = true*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*15000000us'; +set return_commit_stats =*true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 15000000us'; +(set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'(; +set return_commit_stats = true(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(15000000us'; +set return_commit_stats =(true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 15000000us'; +)set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'); +set return_commit_stats = true); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)15000000us'; +set return_commit_stats =)true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 15000000us'; +-set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'-; +set return_commit_stats = true-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-15000000us'; +set return_commit_stats =-true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 15000000us'; ++set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'+; +set return_commit_stats = true+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+15000000us'; +set return_commit_stats =+true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 15000000us'; +-#set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'-#; +set return_commit_stats = true-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#15000000us'; +set return_commit_stats =-#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 15000000us'; +/set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'/; +set return_commit_stats = true/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/15000000us'; +set return_commit_stats =/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 15000000us'; +\set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'\; +set return_commit_stats = true\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\15000000us'; +set return_commit_stats =\true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 15000000us'; +?set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'?; +set return_commit_stats = true?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?15000000us'; +set return_commit_stats =?true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 15000000us'; +-/set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'-/; +set return_commit_stats = true-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/15000000us'; +set return_commit_stats =-/true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 15000000us'; +/#set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'/#; +set return_commit_stats = true/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#15000000us'; +set return_commit_stats =/#true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 15000000us'; +/-set return_commit_stats = true; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 15000000us'/-; +set return_commit_stats = true/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-15000000us'; +set return_commit_stats =/-true; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set return_commit_stats = false; NEW_CONNECTION; -SET READ_ONLY_STALENESS='EXACT_STALENESS 9999NS'; +SET RETURN_COMMIT_STATS = FALSE; NEW_CONNECTION; -set read_only_staleness='exact_staleness 9999ns'; +set return_commit_stats = false; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 9999ns'; + set return_commit_stats = false; NEW_CONNECTION; - set read_only_staleness='EXACT_STALENESS 9999ns'; + set return_commit_stats = false; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set return_commit_stats = false; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns' ; +set return_commit_stats = false ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns' ; +set return_commit_stats = false ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns' +set return_commit_stats = false ; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set return_commit_stats = false; NEW_CONNECTION; -set read_only_staleness='EXACT_STALENESS 9999ns'; +set return_commit_stats = false; NEW_CONNECTION; set -read_only_staleness='EXACT_STALENESS 9999ns'; +return_commit_stats += +false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set read_only_staleness='EXACT_STALENESS 9999ns'; +foo set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns' bar; +set return_commit_stats = false bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set read_only_staleness='EXACT_STALENESS 9999ns'; +%set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'%; +set return_commit_stats = false%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS%9999ns'; +set return_commit_stats =%false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set read_only_staleness='EXACT_STALENESS 9999ns'; +_set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'_; +set return_commit_stats = false_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS_9999ns'; +set return_commit_stats =_false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set read_only_staleness='EXACT_STALENESS 9999ns'; +&set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'&; +set return_commit_stats = false&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS&9999ns'; +set return_commit_stats =&false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set read_only_staleness='EXACT_STALENESS 9999ns'; +$set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'$; +set return_commit_stats = false$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS$9999ns'; +set return_commit_stats =$false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set read_only_staleness='EXACT_STALENESS 9999ns'; +@set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'@; +set return_commit_stats = false@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS@9999ns'; +set return_commit_stats =@false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set read_only_staleness='EXACT_STALENESS 9999ns'; +!set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'!; +set return_commit_stats = false!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS!9999ns'; +set return_commit_stats =!false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set read_only_staleness='EXACT_STALENESS 9999ns'; +*set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'*; +set return_commit_stats = false*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS*9999ns'; +set return_commit_stats =*false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set read_only_staleness='EXACT_STALENESS 9999ns'; +(set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'(; +set return_commit_stats = false(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS(9999ns'; +set return_commit_stats =(false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set read_only_staleness='EXACT_STALENESS 9999ns'; +)set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'); +set return_commit_stats = false); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS)9999ns'; +set return_commit_stats =)false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set read_only_staleness='EXACT_STALENESS 9999ns'; +-set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'-; +set return_commit_stats = false-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-9999ns'; +set return_commit_stats =-false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set read_only_staleness='EXACT_STALENESS 9999ns'; ++set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'+; +set return_commit_stats = false+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS+9999ns'; +set return_commit_stats =+false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set read_only_staleness='EXACT_STALENESS 9999ns'; +-#set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'-#; +set return_commit_stats = false-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-#9999ns'; +set return_commit_stats =-#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set read_only_staleness='EXACT_STALENESS 9999ns'; +/set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'/; +set return_commit_stats = false/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/9999ns'; +set return_commit_stats =/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set read_only_staleness='EXACT_STALENESS 9999ns'; +\set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'\; +set return_commit_stats = false\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS\9999ns'; +set return_commit_stats =\false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set read_only_staleness='EXACT_STALENESS 9999ns'; +?set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'?; +set return_commit_stats = false?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS?9999ns'; +set return_commit_stats =?false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set read_only_staleness='EXACT_STALENESS 9999ns'; +-/set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'-/; +set return_commit_stats = false-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS-/9999ns'; +set return_commit_stats =-/false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set read_only_staleness='EXACT_STALENESS 9999ns'; +/#set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'/#; +set return_commit_stats = false/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/#9999ns'; +set return_commit_stats =/#false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set read_only_staleness='EXACT_STALENESS 9999ns'; +/-set return_commit_stats = false; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS 9999ns'/-; +set return_commit_stats = false/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set read_only_staleness='EXACT_STALENESS/-9999ns'; +set return_commit_stats =/-false; NEW_CONNECTION; -set optimizer_version='1'; +set statement_tag='tag1'; NEW_CONNECTION; -SET OPTIMIZER_VERSION='1'; +SET STATEMENT_TAG='TAG1'; NEW_CONNECTION; -set optimizer_version='1'; +set statement_tag='tag1'; NEW_CONNECTION; - set optimizer_version='1'; + set statement_tag='tag1'; NEW_CONNECTION; - set optimizer_version='1'; + set statement_tag='tag1'; NEW_CONNECTION; -set optimizer_version='1'; +set statement_tag='tag1'; NEW_CONNECTION; -set optimizer_version='1' ; +set statement_tag='tag1' ; NEW_CONNECTION; -set optimizer_version='1' ; +set statement_tag='tag1' ; NEW_CONNECTION; -set optimizer_version='1' +set statement_tag='tag1' ; NEW_CONNECTION; -set optimizer_version='1'; +set statement_tag='tag1'; NEW_CONNECTION; -set optimizer_version='1'; +set statement_tag='tag1'; NEW_CONNECTION; set -optimizer_version='1'; +statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version='1'; +foo set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1' bar; +set statement_tag='tag1' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version='1'; +%set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'%; +set statement_tag='tag1'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version='1'; +set%statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version='1'; +_set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'_; +set statement_tag='tag1'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version='1'; +set_statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version='1'; +&set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'&; +set statement_tag='tag1'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version='1'; +set&statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version='1'; +$set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'$; +set statement_tag='tag1'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version='1'; +set$statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version='1'; +@set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'@; +set statement_tag='tag1'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version='1'; +set@statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version='1'; +!set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'!; +set statement_tag='tag1'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version='1'; +set!statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version='1'; +*set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'*; +set statement_tag='tag1'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version='1'; +set*statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version='1'; +(set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'(; +set statement_tag='tag1'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version='1'; +set(statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version='1'; +)set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'); +set statement_tag='tag1'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version='1'; +set)statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version='1'; +-set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'-; +set statement_tag='tag1'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version='1'; +set-statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version='1'; ++set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'+; +set statement_tag='tag1'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version='1'; +set+statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version='1'; +-#set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'-#; +set statement_tag='tag1'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version='1'; +set-#statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version='1'; +/set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'/; +set statement_tag='tag1'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version='1'; +set/statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version='1'; +\set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'\; +set statement_tag='tag1'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version='1'; +set\statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version='1'; +?set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'?; +set statement_tag='tag1'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version='1'; +set?statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version='1'; +-/set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'-/; +set statement_tag='tag1'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version='1'; +set-/statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version='1'; +/#set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'/#; +set statement_tag='tag1'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version='1'; +set/#statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version='1'; +/-set statement_tag='tag1'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='1'/-; +set statement_tag='tag1'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version='1'; +set/-statement_tag='tag1'; NEW_CONNECTION; -set optimizer_version='200'; +set statement_tag='tag2'; NEW_CONNECTION; -SET OPTIMIZER_VERSION='200'; +SET STATEMENT_TAG='TAG2'; NEW_CONNECTION; -set optimizer_version='200'; +set statement_tag='tag2'; NEW_CONNECTION; - set optimizer_version='200'; + set statement_tag='tag2'; NEW_CONNECTION; - set optimizer_version='200'; + set statement_tag='tag2'; NEW_CONNECTION; -set optimizer_version='200'; +set statement_tag='tag2'; NEW_CONNECTION; -set optimizer_version='200' ; +set statement_tag='tag2' ; NEW_CONNECTION; -set optimizer_version='200' ; +set statement_tag='tag2' ; NEW_CONNECTION; -set optimizer_version='200' +set statement_tag='tag2' ; NEW_CONNECTION; -set optimizer_version='200'; +set statement_tag='tag2'; NEW_CONNECTION; -set optimizer_version='200'; +set statement_tag='tag2'; NEW_CONNECTION; set -optimizer_version='200'; +statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version='200'; +foo set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200' bar; +set statement_tag='tag2' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version='200'; +%set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'%; +set statement_tag='tag2'%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version='200'; +set%statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version='200'; +_set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'_; +set statement_tag='tag2'_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version='200'; +set_statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version='200'; +&set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'&; +set statement_tag='tag2'&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version='200'; +set&statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version='200'; +$set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'$; +set statement_tag='tag2'$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version='200'; +set$statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version='200'; +@set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'@; +set statement_tag='tag2'@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version='200'; +set@statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version='200'; +!set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'!; +set statement_tag='tag2'!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version='200'; +set!statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version='200'; +*set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'*; +set statement_tag='tag2'*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version='200'; +set*statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version='200'; +(set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'(; +set statement_tag='tag2'(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version='200'; +set(statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version='200'; +)set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'); +set statement_tag='tag2'); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version='200'; +set)statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version='200'; +-set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'-; +set statement_tag='tag2'-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version='200'; +set-statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version='200'; ++set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'+; +set statement_tag='tag2'+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version='200'; +set+statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version='200'; +-#set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'-#; +set statement_tag='tag2'-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version='200'; +set-#statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version='200'; +/set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'/; +set statement_tag='tag2'/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version='200'; +set/statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version='200'; +\set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'\; +set statement_tag='tag2'\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version='200'; +set\statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version='200'; +?set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'?; +set statement_tag='tag2'?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version='200'; +set?statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version='200'; +-/set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'-/; +set statement_tag='tag2'-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version='200'; +set-/statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version='200'; +/#set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'/#; +set statement_tag='tag2'/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version='200'; +set/#statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version='200'; +/-set statement_tag='tag2'; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='200'/-; +set statement_tag='tag2'/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version='200'; +set/-statement_tag='tag2'; NEW_CONNECTION; -set optimizer_version='LATEST'; +set statement_tag=''; NEW_CONNECTION; -SET OPTIMIZER_VERSION='LATEST'; +SET STATEMENT_TAG=''; NEW_CONNECTION; -set optimizer_version='latest'; +set statement_tag=''; NEW_CONNECTION; - set optimizer_version='LATEST'; + set statement_tag=''; NEW_CONNECTION; - set optimizer_version='LATEST'; + set statement_tag=''; NEW_CONNECTION; -set optimizer_version='LATEST'; +set statement_tag=''; NEW_CONNECTION; -set optimizer_version='LATEST' ; +set statement_tag='' ; NEW_CONNECTION; -set optimizer_version='LATEST' ; +set statement_tag='' ; NEW_CONNECTION; -set optimizer_version='LATEST' +set statement_tag='' ; NEW_CONNECTION; -set optimizer_version='LATEST'; +set statement_tag=''; NEW_CONNECTION; -set optimizer_version='LATEST'; +set statement_tag=''; NEW_CONNECTION; set -optimizer_version='LATEST'; +statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version='LATEST'; +foo set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST' bar; +set statement_tag='' bar; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version='LATEST'; +%set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'%; +set statement_tag=''%; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version='LATEST'; +set%statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version='LATEST'; +_set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'_; +set statement_tag=''_; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version='LATEST'; +set_statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version='LATEST'; +&set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'&; +set statement_tag=''&; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version='LATEST'; +set&statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version='LATEST'; +$set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'$; +set statement_tag=''$; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version='LATEST'; +set$statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version='LATEST'; +@set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'@; +set statement_tag=''@; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version='LATEST'; +set@statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version='LATEST'; +!set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'!; +set statement_tag=''!; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version='LATEST'; +set!statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version='LATEST'; +*set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'*; +set statement_tag=''*; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version='LATEST'; +set*statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version='LATEST'; +(set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'(; +set statement_tag=''(; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version='LATEST'; +set(statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version='LATEST'; +)set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'); +set statement_tag=''); NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version='LATEST'; +set)statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version='LATEST'; +-set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'-; +set statement_tag=''-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version='LATEST'; +set-statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version='LATEST'; ++set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'+; +set statement_tag=''+; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version='LATEST'; +set+statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version='LATEST'; +-#set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'-#; +set statement_tag=''-#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version='LATEST'; +set-#statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version='LATEST'; +/set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'/; +set statement_tag=''/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version='LATEST'; +set/statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version='LATEST'; +\set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'\; +set statement_tag=''\; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version='LATEST'; +set\statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version='LATEST'; +?set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'?; +set statement_tag=''?; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version='LATEST'; +set?statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version='LATEST'; +-/set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'-/; +set statement_tag=''-/; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version='LATEST'; +set-/statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version='LATEST'; +/#set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'/#; +set statement_tag=''/#; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version='LATEST'; +set/#statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version='LATEST'; +/-set statement_tag=''; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='LATEST'/-; +set statement_tag=''/-; NEW_CONNECTION; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version='LATEST'; +set/-statement_tag=''; NEW_CONNECTION; -set optimizer_version=''; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; -SET OPTIMIZER_VERSION=''; +set autocommit = false; +SET TRANSACTION_TAG='TAG1'; NEW_CONNECTION; -set optimizer_version=''; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; - set optimizer_version=''; +set autocommit = false; + set transaction_tag='tag1'; NEW_CONNECTION; - set optimizer_version=''; +set autocommit = false; + set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; -set optimizer_version=''; +set transaction_tag='tag1'; NEW_CONNECTION; -set optimizer_version='' ; +set autocommit = false; +set transaction_tag='tag1' ; NEW_CONNECTION; -set optimizer_version='' ; +set autocommit = false; +set transaction_tag='tag1' ; NEW_CONNECTION; -set optimizer_version='' +set autocommit = false; +set transaction_tag='tag1' ; NEW_CONNECTION; -set optimizer_version=''; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; -set optimizer_version=''; +set autocommit = false; +set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; set -optimizer_version=''; +transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set optimizer_version=''; +foo set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version='' bar; +set transaction_tag='tag1' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set optimizer_version=''; +%set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''%; +set transaction_tag='tag1'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set%optimizer_version=''; +set%transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set optimizer_version=''; +_set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''_; +set transaction_tag='tag1'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set_optimizer_version=''; +set_transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set optimizer_version=''; +&set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''&; +set transaction_tag='tag1'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set&optimizer_version=''; +set&transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set optimizer_version=''; +$set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''$; +set transaction_tag='tag1'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set$optimizer_version=''; +set$transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set optimizer_version=''; +@set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''@; +set transaction_tag='tag1'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set@optimizer_version=''; +set@transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set optimizer_version=''; +!set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''!; +set transaction_tag='tag1'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set!optimizer_version=''; +set!transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set optimizer_version=''; +*set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''*; +set transaction_tag='tag1'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set*optimizer_version=''; +set*transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set optimizer_version=''; +(set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''(; +set transaction_tag='tag1'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set(optimizer_version=''; +set(transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set optimizer_version=''; +)set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''); +set transaction_tag='tag1'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set)optimizer_version=''; +set)transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set optimizer_version=''; +-set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''-; +set transaction_tag='tag1'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-optimizer_version=''; +set-transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set optimizer_version=''; ++set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''+; +set transaction_tag='tag1'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set+optimizer_version=''; +set+transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set optimizer_version=''; +-#set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''-#; +set transaction_tag='tag1'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-#optimizer_version=''; +set-#transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set optimizer_version=''; +/set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''/; +set transaction_tag='tag1'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/optimizer_version=''; +set/transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set optimizer_version=''; +\set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''\; +set transaction_tag='tag1'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set\optimizer_version=''; +set\transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set optimizer_version=''; +?set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''?; +set transaction_tag='tag1'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set?optimizer_version=''; +set?transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set optimizer_version=''; +-/set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''-/; +set transaction_tag='tag1'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set-/optimizer_version=''; +set-/transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set optimizer_version=''; +/#set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''/#; +set transaction_tag='tag1'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/#optimizer_version=''; +set/#transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set optimizer_version=''; +/-set transaction_tag='tag1'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set optimizer_version=''/-; +set transaction_tag='tag1'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set/-optimizer_version=''; +set/-transaction_tag='tag1'; NEW_CONNECTION; -set return_commit_stats = true; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; -SET RETURN_COMMIT_STATS = TRUE; +set autocommit = false; +SET TRANSACTION_TAG='TAG2'; NEW_CONNECTION; -set return_commit_stats = true; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; - set return_commit_stats = true; +set autocommit = false; + set transaction_tag='tag2'; NEW_CONNECTION; - set return_commit_stats = true; +set autocommit = false; + set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; -set return_commit_stats = true; +set transaction_tag='tag2'; NEW_CONNECTION; -set return_commit_stats = true ; +set autocommit = false; +set transaction_tag='tag2' ; NEW_CONNECTION; -set return_commit_stats = true ; +set autocommit = false; +set transaction_tag='tag2' ; NEW_CONNECTION; -set return_commit_stats = true +set autocommit = false; +set transaction_tag='tag2' ; NEW_CONNECTION; -set return_commit_stats = true; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; -set return_commit_stats = true; +set autocommit = false; +set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; set -return_commit_stats -= -true; +transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set return_commit_stats = true; +foo set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true bar; +set transaction_tag='tag2' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set return_commit_stats = true; +%set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true%; +set transaction_tag='tag2'%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =%true; +set%transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set return_commit_stats = true; +_set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true_; +set transaction_tag='tag2'_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =_true; +set_transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set return_commit_stats = true; +&set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true&; +set transaction_tag='tag2'&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =&true; +set&transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set return_commit_stats = true; +$set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true$; +set transaction_tag='tag2'$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =$true; +set$transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set return_commit_stats = true; +@set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true@; +set transaction_tag='tag2'@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =@true; +set@transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set return_commit_stats = true; +!set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true!; +set transaction_tag='tag2'!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =!true; +set!transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set return_commit_stats = true; +*set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true*; +set transaction_tag='tag2'*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =*true; +set*transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set return_commit_stats = true; +(set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true(; +set transaction_tag='tag2'(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =(true; +set(transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set return_commit_stats = true; +)set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true); +set transaction_tag='tag2'); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =)true; +set)transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set return_commit_stats = true; +-set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true-; +set transaction_tag='tag2'-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-true; +set-transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set return_commit_stats = true; ++set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true+; +set transaction_tag='tag2'+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =+true; +set+transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set return_commit_stats = true; +-#set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true-#; +set transaction_tag='tag2'-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-#true; +set-#transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set return_commit_stats = true; +/set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true/; +set transaction_tag='tag2'/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/true; +set/transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set return_commit_stats = true; +\set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true\; +set transaction_tag='tag2'\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =\true; +set\transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set return_commit_stats = true; +?set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true?; +set transaction_tag='tag2'?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =?true; +set?transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set return_commit_stats = true; +-/set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true-/; +set transaction_tag='tag2'-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-/true; +set-/transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set return_commit_stats = true; +/#set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true/#; +set transaction_tag='tag2'/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/#true; +set/#transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set return_commit_stats = true; +/-set transaction_tag='tag2'; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = true/-; +set transaction_tag='tag2'/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/-true; +set/-transaction_tag='tag2'; NEW_CONNECTION; -set return_commit_stats = false; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; -SET RETURN_COMMIT_STATS = FALSE; +set autocommit = false; +SET TRANSACTION_TAG=''; NEW_CONNECTION; -set return_commit_stats = false; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; - set return_commit_stats = false; +set autocommit = false; + set transaction_tag=''; NEW_CONNECTION; - set return_commit_stats = false; +set autocommit = false; + set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; -set return_commit_stats = false; +set transaction_tag=''; NEW_CONNECTION; -set return_commit_stats = false ; +set autocommit = false; +set transaction_tag='' ; NEW_CONNECTION; -set return_commit_stats = false ; +set autocommit = false; +set transaction_tag='' ; NEW_CONNECTION; -set return_commit_stats = false +set autocommit = false; +set transaction_tag='' ; NEW_CONNECTION; -set return_commit_stats = false; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; -set return_commit_stats = false; +set autocommit = false; +set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; set -return_commit_stats -= -false; +transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -foo set return_commit_stats = false; +foo set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false bar; +set transaction_tag='' bar; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -%set return_commit_stats = false; +%set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false%; +set transaction_tag=''%; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =%false; +set%transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -_set return_commit_stats = false; +_set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false_; +set transaction_tag=''_; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =_false; +set_transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -&set return_commit_stats = false; +&set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false&; +set transaction_tag=''&; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =&false; +set&transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -$set return_commit_stats = false; +$set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false$; +set transaction_tag=''$; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =$false; +set$transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -@set return_commit_stats = false; +@set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false@; +set transaction_tag=''@; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =@false; +set@transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -!set return_commit_stats = false; +!set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false!; +set transaction_tag=''!; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =!false; +set!transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -*set return_commit_stats = false; +*set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false*; +set transaction_tag=''*; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =*false; +set*transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -(set return_commit_stats = false; +(set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false(; +set transaction_tag=''(; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =(false; +set(transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -)set return_commit_stats = false; +)set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false); +set transaction_tag=''); NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =)false; +set)transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --set return_commit_stats = false; +-set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false-; +set transaction_tag=''-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-false; +set-transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -+set return_commit_stats = false; ++set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false+; +set transaction_tag=''+; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =+false; +set+transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --#set return_commit_stats = false; +-#set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false-#; +set transaction_tag=''-#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-#false; +set-#transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/set return_commit_stats = false; +/set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false/; +set transaction_tag=''/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/false; +set/transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -\set return_commit_stats = false; +\set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false\; +set transaction_tag=''\; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =\false; +set\transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -?set return_commit_stats = false; +?set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false?; +set transaction_tag=''?; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =?false; +set?transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT --/set return_commit_stats = false; +-/set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false-/; +set transaction_tag=''-/; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =-/false; +set-/transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/#set return_commit_stats = false; +/#set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false/#; +set transaction_tag=''/#; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/#false; +set/#transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -/-set return_commit_stats = false; +/-set transaction_tag=''; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats = false/-; +set transaction_tag=''/-; NEW_CONNECTION; +set autocommit = false; @EXPECT EXCEPTION INVALID_ARGUMENT -set return_commit_stats =/-false; +set/-transaction_tag=''; 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 b56c2b8906..e94bb6da31 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,194 +1,212 @@ NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MAX_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=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +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=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MAX_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=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +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=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:39.999000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:39.999000000Z' +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:39.999000000Z'; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.237000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +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=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; 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; +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; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +NEW_CONNECTION; +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; @@ -204,29 +222,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -270,54 +288,75 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; 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=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=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -327,124 +366,172 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; 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; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @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 ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -454,53 +541,77 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; 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; +BEGIN TRANSACTION; SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.104000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.104000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.104000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.104000000Z' +COMMIT; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.345000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; 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; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; 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 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; +@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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -516,29 +627,41 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @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 STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -582,29 +705,47 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +SELECT 1 AS TEST; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -616,210 +757,206 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; +@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=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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 +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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 2020-11-06T18:52:40.202000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.202000000Z' +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.443000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.443000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.202000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.202000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.443000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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; +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; +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; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -835,29 +972,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -901,61 +1038,60 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; 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); +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -965,124 +1101,124 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +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 READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @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'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @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'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -@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=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -1092,53 +1228,59 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +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=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.272000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.272000000Z' +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z' 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 2020-11-06T18:52:40.272000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.272000000Z' +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.529000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +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=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +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=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +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=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; +@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'; +SELECT 1 AS TEST; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1154,29 +1296,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @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'; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1220,29 +1362,35 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @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'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1254,35 +1402,27 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MAX_STALENESS 10s'; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -1292,172 +1432,124 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; 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; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @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 ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -1467,69 +1559,59 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; 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; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.494000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.494000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z' 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 2020-11-06T18:52:40.494000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.494000000Z' +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.633000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; 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; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; 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 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; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -1545,41 +1627,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @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 STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -1623,39 +1693,35 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @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; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1667,9 +1733,7 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; @@ -1804,14 +1868,14 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.575000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.575000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.575000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.575000000Z' +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.712000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; @@ -1834,6 +1898,11 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; @@ -1930,6 +1999,11 @@ RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=TRUE; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -1944,229 +2018,197 @@ SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @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 +START BATCH DDL; ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @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 +START BATCH DDL; 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; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@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; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=FALSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +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; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.623000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.623000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.755000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.623000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.755000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +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; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +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; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +START BATCH DDL; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2182,35 +2224,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2254,191 +2290,215 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@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; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; +START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION -BEGIN TRANSACTION; +SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +START BATCH DDL; +@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; -SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; +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; 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; BEGIN TRANSACTION; -@EXPECT UPDATE_COUNT 1 +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; BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; 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; BEGIN TRANSACTION; SET TRANSACTION READ ONLY; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; 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; BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; 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; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; 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; 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; @@ -2446,19 +2506,22 @@ NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.740000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.740000000Z' +SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.807000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.807000000Z' 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='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.740000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.807000000Z'; 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; @@ -2466,12 +2529,14 @@ 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'; 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; @@ -2479,10 +2544,19 @@ 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; @@ -2499,28 +2573,34 @@ 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; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2565,53 +2645,74 @@ 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; BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; COMMIT; 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; +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -2621,48 +2722,68 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; 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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; 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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; 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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' SHOW VARIABLE AUTOCOMMIT_DML_MODE; @@ -2672,57 +2793,79 @@ 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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -2734,7 +2877,9 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -2746,13 +2891,17 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -2762,53 +2911,77 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.836000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.836000000Z' +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.903000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.903000000Z' 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='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.836000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.836000000Z' +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.903000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:20.903000000Z' 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); +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; 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); +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -2824,29 +2997,41 @@ 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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' 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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -2890,29 +3075,47 @@ 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); +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=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; @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); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -2923,176 +3126,137 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +BEGIN TRANSACTION; +UPDATE foo SET bar=1; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @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; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; +@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; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; 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; +BEGIN TRANSACTION; +@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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; 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 +BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +BEGIN TRANSACTION; +@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; -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; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -3104,79 +3268,68 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:40.908000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.908000000Z' +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:20.957000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:20.957000000Z' 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 2020-11-06T18:52:40.908000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.908000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:20.957000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; +@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; +BEGIN TRANSACTION; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -3192,35 +3345,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @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; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3264,66 +3411,59 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -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); +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; 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=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3333,48 +3473,48 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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=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=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; 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=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=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=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=TRUE; -SELECT 1 AS TEST; +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; @@ -3384,57 +3524,57 @@ SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; 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=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; 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=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=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; 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=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +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=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=TRUE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +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=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -3446,7 +3586,7 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -3458,13 +3598,13 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -3474,53 +3614,59 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); 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 2020-11-06T18:52:40.966000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:40.966000000Z' +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.041000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.041000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:40.966000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:40.966000000Z' +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.041000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.041000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); 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; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); 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; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); 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; +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=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=TRUE; +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; @@ -3536,29 +3682,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; 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=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=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=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=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +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; @@ -3602,29 +3748,35 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SELECT 1 AS TEST; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; 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=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +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=TRUE; -SELECT 1 AS TEST; +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=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; @@ -3635,195 +3787,230 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; 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=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; 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 +UPDATE foo SET bar=1; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +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=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @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 +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; +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=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.009000000Z'; +UPDATE foo SET bar=1; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.009000000Z'; +UPDATE foo SET bar=1; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.115000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +UPDATE foo SET bar=1; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -3839,29 +4026,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -3905,62 +4092,70 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +UPDATE foo SET bar=1; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +UPDATE foo SET bar=1; @EXPECT EXCEPTION FAILED_PRECONDITION -BEGIN TRANSACTION; +SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -START BATCH DDL; +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=TRUE; -BEGIN TRANSACTION; UPDATE foo SET bar=1; -COMMIT; NEW_CONNECTION; SET READONLY=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=TRUE; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -3970,68 +4165,58 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=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=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=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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; @@ -4041,79 +4226,68 @@ SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -4125,9 +4299,8 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -4139,17 +4312,15 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -4159,69 +4330,68 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.060000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.060000000Z' +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.186000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.186000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.060000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:41.060000000Z' +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.186000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.186000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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 OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4237,41 +4407,35 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=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=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=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=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=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4315,39 +4479,41 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -BEGIN TRANSACTION; -UPDATE foo SET bar=1; -COMMIT; +@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; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -4358,29 +4524,28 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=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=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -4390,48 +4555,48 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; 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; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; SET AUTOCOMMIT_DML_MODE='TRANSACTIONAL'; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE','TRANSACTIONAL' SHOW VARIABLE AUTOCOMMIT_DML_MODE; @@ -4441,57 +4606,57 @@ SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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; +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; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +SELECT 1 AS TEST; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -4503,7 +4668,7 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -4515,13 +4680,13 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -4531,53 +4696,59 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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=TRUE; -UPDATE foo SET bar=1; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.132000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.132000000Z' +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.132000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:41.132000000Z' +SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.257000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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=TRUE; -UPDATE foo SET bar=1; +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=TRUE; -UPDATE foo SET bar=1; +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=TRUE; -UPDATE foo SET bar=1; +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; +SELECT 1 AS TEST; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -4593,29 +4764,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP' +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; +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -4659,29 +4830,35 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +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; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; +@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; @@ -4692,7 +4869,7 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -UPDATE foo SET bar=1; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; @@ -4841,14 +5018,14 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.178000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.178000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.178000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2020-11-06T18:52:41.178000000Z' +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','MIN_READ_TIMESTAMP 2021-04-13T18:14:21.313000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; @@ -4871,6 +5048,11 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; @@ -4967,6 +5149,11 @@ RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=TRUE; +@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; @@ -4980,131 +5167,141 @@ SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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; -BEGIN TRANSACTION; +COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -5116,62 +5313,72 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.209000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.209000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.357000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.357000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.209000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.357000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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; -BEGIN TRANSACTION; +COMMIT; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5187,29 +5394,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -5253,66 +5460,72 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +COMMIT; +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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; @@ -5322,166 +5535,145 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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 UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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 WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -5493,10 +5685,9 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -5508,18 +5699,16 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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; @@ -5529,75 +5718,75 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.254000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.254000000Z' +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +RUN BATCH; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.419000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.419000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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 2020-11-06T18:52:41.254000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.419000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; +SET AUTOCOMMIT=FALSE; +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; @@ -5613,47 +5802,41 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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; @@ -5697,43 +5880,45 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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_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; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -5744,219 +5929,240 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@EXPECT UPDATE_COUNT 1 +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -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; -COMMIT; -START BATCH DML; -@EXPECT EXCEPTION FAILED_PRECONDITION -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +START BATCH DDL; 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; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.287000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.287000000Z' -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 2021-04-13T18:14:21.477000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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 2020-11-06T18:52:41.287000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.477000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +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); SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -5972,29 +6178,35 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; @@ -6038,320 +6250,241 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -@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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; -BEGIN TRANSACTION; -SELECT 1 AS TEST; -UPDATE foo SET bar=1; +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=FALSE; +SET AUTOCOMMIT=FALSE; +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=FALSE; SET AUTOCOMMIT=FALSE; -COMMIT; +START BATCH DDL; +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; 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; @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; -@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; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; 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; 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; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; -@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; 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; -@EXPECT UPDATE_COUNT 1 +@EXPECT EXCEPTION FAILED_PRECONDITION 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; 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; 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; 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; 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; @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; 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; -@EXPECT RESULT_SET 'TEST',1 +@EXPECT EXCEPTION FAILED_PRECONDITION 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; 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; 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; -@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' +@EXPECT EXCEPTION FAILED_PRECONDITION 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; 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; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; 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; @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); @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; -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; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; +@EXPECT EXCEPTION FAILED_PRECONDITION 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 READONLY=FALSE; -@EXPECT RESULT_SET 'READONLY',FALSE -SHOW VARIABLE READONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; +@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; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -RUN BATCH; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.323000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.323000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.520000000Z'; 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; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.323000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.520000000Z'; 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; +@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; -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=FALSE; SET AUTOCOMMIT=FALSE; 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='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; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +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 OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -6368,40 +6501,28 @@ 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; 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; 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; 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; 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; @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 STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -6446,82 +6567,71 @@ 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; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS' +@EXPECT EXCEPTION FAILED_PRECONDITION 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; 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; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; -@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; -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_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +START BATCH DDL; @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; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -6531,166 +6641,166 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; 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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; 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=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=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=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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; 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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; 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=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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; 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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +COMMIT; +@EXPECT RESULT_SET 'READ_TIMESTAMP' SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -6702,10 +6812,10 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -6717,18 +6827,18 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -6738,75 +6848,84 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.379000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.379000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.566000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.566000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.379000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.566000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; 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=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; @@ -6822,47 +6941,47 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; 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=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=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=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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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; @@ -6906,43 +7025,51 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @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=FALSE; 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=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -ROLLBACK; +COMMIT; +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +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; @@ -6953,239 +7080,206 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +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=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT UPDATE_COUNT 1 +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION READ ONLY; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION READ ONLY; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @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 -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 TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.431000000Z'; +SET TRANSACTION READ ONLY; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.620000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.620000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.431000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.620000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7201,35 +7295,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7273,170 +7361,178 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SET TRANSACTION READ ONLY; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'TEST',1 -SELECT 1 AS TEST; +SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @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'; +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; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7448,58 +7544,72 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.485000000Z'; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.679000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.679000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.485000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.679000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; +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=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -7515,29 +7625,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -7581,54 +7691,76 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +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=FALSE; -SELECT 1 AS TEST; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -7638,103 +7770,166 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; START BATCH DDL; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7746,7 +7941,10 @@ START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -7758,12 +7956,18 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -7773,51 +7977,84 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.537000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.537000000Z' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.778000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.778000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.537000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.778000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +NEW_CONNECTION; +SET READONLY=FALSE; +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; @@ -7833,29 +8070,47 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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; @@ -7899,28 +8154,51 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; +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; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -7931,197 +8209,336 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@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; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@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; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@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=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.561000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.561000000Z' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.885000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.885000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.561000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.885000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@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=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +NEW_CONNECTION; +SET READONLY=FALSE; +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; @@ -8137,29 +8554,47 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; -@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +BEGIN TRANSACTION; +@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=FALSE; -SET TRANSACTION READ ONLY; +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; @@ -8203,222 +8638,266 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +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 TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; +@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=FALSE; SET AUTOCOMMIT=FALSE; -SET TRANSACTION READ ONLY; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +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; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT UPDATE_COUNT 1 UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +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; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.592000000Z'; +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:21.950000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:21.950000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.592000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:21.950000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +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; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8434,29 +8913,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -8500,250 +8979,195 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -@EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; +SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; 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=FALSE; 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; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; -COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @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; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -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; -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; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @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=FALSE; -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; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; START BATCH DML; @EXPECT EXCEPTION FAILED_PRECONDITION SELECT 1 AS TEST; @@ -8755,96 +9179,75 @@ START BATCH DML; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=FALSE; 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; +@EXPECT EXCEPTION FAILED_PRECONDITION 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; -COMMIT; +@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; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.648000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.648000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.004000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.648000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.004000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@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; -BEGIN TRANSACTION; @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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@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; -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=FALSE; +SET AUTOCOMMIT=FALSE; +@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; -COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -8860,47 +9263,35 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -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; -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; @@ -8944,281 +9335,246 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -COMMIT; NEW_CONNECTION; SET READONLY=FALSE; 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=FALSE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; @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); +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @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; -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); +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); +SELECT 1 AS TEST; @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); +SELECT 1 AS TEST; +@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); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; 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); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; 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); +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; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +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); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@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); +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); +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); +SET AUTOCOMMIT=FALSE; +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); +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); +SELECT 1 AS TEST; @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); +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); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@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); +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); +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); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@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); +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); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION 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); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION 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); +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); +SELECT 1 AS TEST; @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); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; +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; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; 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); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='STRONG'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.697000000Z'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.065000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.697000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.065000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SELECT 1 AS TEST; @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); +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='EXACT_STALENESS 100us'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -START BATCH DDL; -CREATE TABLE foo (id INT64 NOT NULL, name STRING(100)) PRIMARY KEY (id); +SELECT 1 AS TEST; +@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); +SELECT 1 AS TEST; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -9234,35 +9590,29 @@ 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); +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); +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); +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); +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); +SELECT 1 AS TEST; @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); +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -9306,40 +9656,40 @@ 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); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; +@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); +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); -@EXPECT EXCEPTION FAILED_PRECONDITION +SELECT 1 AS TEST; 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); +SELECT 1 AS TEST; +@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); +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @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); +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; @@ -9482,14 +9832,14 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.734000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.734000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.116000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.116000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.734000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.116000000Z'; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; @@ -9510,6 +9860,11 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; @@ -9605,6 +9960,10 @@ RUN BATCH; NEW_CONNECTION; SET READONLY=FALSE; SET AUTOCOMMIT=FALSE; +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=FALSE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; UPDATE foo SET bar=1; @@ -9618,194 +9977,208 @@ SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@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 AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@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 AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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=FALSE; -BEGIN TRANSACTION; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.758000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.758000000Z' +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.181000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.181000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.758000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.181000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +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=FALSE; -BEGIN TRANSACTION; +COMMIT; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; +COMMIT; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -9821,29 +10194,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -9887,54 +10260,66 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +COMMIT; +@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; -BEGIN TRANSACTION; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET AUTOCOMMIT=FALSE; @EXPECT RESULT_SET 'AUTOCOMMIT',FALSE SHOW VARIABLE AUTOCOMMIT; @@ -9944,122 +10329,122 @@ SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET READONLY=FALSE; @EXPECT RESULT_SET 'READONLY',FALSE SHOW VARIABLE READONLY; @@ -10069,51 +10454,57 @@ SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.790000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.790000000Z' +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.221000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.221000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.790000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.221000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +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; -COMMIT; +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; -COMMIT; +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; -COMMIT; +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; @@ -10129,29 +10520,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -10195,28 +10586,34 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +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 @@ -10228,7 +10625,7 @@ BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -COMMIT; +SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @@ -10481,8 +10878,8 @@ BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; ROLLBACK; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.834000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.834000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.271000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.271000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; @@ -10492,7 +10889,7 @@ BEGIN TRANSACTION; SELECT 1 AS TEST; ROLLBACK; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.834000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.271000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @@ -10529,6 +10926,15 @@ 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=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @@ -10672,6 +11078,15 @@ 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=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +ROLLBACK; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION @@ -10690,227 +11105,319 @@ ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=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=FALSE; +BEGIN TRANSACTION; @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 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=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=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=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=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @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 AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @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 AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.873000000Z'; +COMMIT; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.325000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.325000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.873000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.325000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @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 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'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @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 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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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; @@ -10926,35 +11433,47 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=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=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; @@ -10998,228 +11517,264 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=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=FALSE; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +COMMIT; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; +COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -RUN BATCH; +SET TRANSACTION_TAG = 'some-tag'; NEW_CONNECTION; SET READONLY=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 +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; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; +COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'OPTIMIZER_VERSION' SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION ABORT BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +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=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION UPDATE foo SET bar=1; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT_DML_MODE='PARTITIONED_NON_ATOMIC'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'AUTOCOMMIT_DML_MODE' SHOW VARIABLE AUTOCOMMIT_DML_MODE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +BEGIN TRANSACTION; SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT RESULT_SET 'READ_TIMESTAMP' +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'READ_TIMESTAMP',null SHOW VARIABLE READ_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; ROLLBACK; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.911000000Z'; +BEGIN TRANSACTION; +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.371000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.371000000Z' +SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.911000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.371000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION SET READ_ONLY_STALENESS='MAX_STALENESS 100ms'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; -@EXPECT EXCEPTION FAILED_PRECONDITION +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=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11235,29 +11790,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null SHOW VARIABLE COMMIT_TIMESTAMP; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11301,233 +11856,271 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT RESULT_SET 'READ_ONLY_STALENESS' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; +BEGIN TRANSACTION; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SELECT 1 AS TEST; +BEGIN TRANSACTION; 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'; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @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; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=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'; +@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=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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; 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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=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'; +@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=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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ WRITE; 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'; -@EXPECT RESULT_SET 'READ_TIMESTAMP',null +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DDL; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION START BATCH DML; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; 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; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.936000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.936000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.416000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.936000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.416000000Z'; 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; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='EXACT_STALENESS 1s'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @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'; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=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; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET OPTIMIZER_VERSION='1'; @EXPECT RESULT_SET 'OPTIMIZER_VERSION','1' SHOW VARIABLE OPTIMIZER_VERSION; @@ -11543,29 +12136,35 @@ SHOW VARIABLE OPTIMIZER_VERSION; 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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; 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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; SET STATEMENT_TIMEOUT='1s'; @EXPECT RESULT_SET 'STATEMENT_TIMEOUT','1s' SHOW VARIABLE STATEMENT_TIMEOUT; @@ -11609,347 +12208,241 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@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=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'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='EXACT_STALENESS 10s'; -BEGIN TRANSACTION; +@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); +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'TEST',1 +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; 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; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET AUTOCOMMIT=FALSE; -@EXPECT RESULT_SET 'AUTOCOMMIT',FALSE -SHOW VARIABLE AUTOCOMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET AUTOCOMMIT=TRUE; -@EXPECT RESULT_SET 'AUTOCOMMIT',TRUE -SHOW VARIABLE AUTOCOMMIT; NEW_CONNECTION; SET READONLY=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=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=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@EXPECT EXCEPTION FAILED_PRECONDITION SET TRANSACTION READ ONLY; NEW_CONNECTION; SET READONLY=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=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=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; ROLLBACK; NEW_CONNECTION; SET READONLY=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; +@EXPECT EXCEPTION FAILED_PRECONDITION SET READONLY=TRUE; -@EXPECT RESULT_SET 'READONLY',TRUE -SHOW VARIABLE READONLY; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@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; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.962000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.962000000Z' -SHOW VARIABLE READ_ONLY_STALENESS; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.473000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.962000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.473000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@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; -BEGIN TRANSACTION; -@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 AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; +@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; -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=FALSE; +SELECT 1 AS TEST; NEW_CONNECTION; SET READONLY=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; @@ -11965,47 +12458,29 @@ SHOW VARIABLE OPTIMIZER_VERSION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=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=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; @@ -12049,58 +12524,40 @@ SHOW VARIABLE STATEMENT_TIMEOUT; NEW_CONNECTION; SET READONLY=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=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; COMMIT; -COMMIT; NEW_CONNECTION; SET READONLY=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=FALSE; -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); +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; +SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION BEGIN TRANSACTION; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -BEGIN TRANSACTION; -@EXPECT RESULT_SET 'TEST',1 SELECT 1 AS TEST; -COMMIT; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @@ -12233,14 +12690,14 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; -SET READ_ONLY_STALENESS='READ_TIMESTAMP 2020-11-06T18:52:41.990000000Z'; -@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2020-11-06T18:52:41.990000000Z' +SET READ_ONLY_STALENESS='READ_TIMESTAMP 2021-04-13T18:14:22.517000000Z'; +@EXPECT RESULT_SET 'READ_ONLY_STALENESS','READ_TIMESTAMP 2021-04-13T18:14:22.517000000Z' SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @EXPECT EXCEPTION FAILED_PRECONDITION -SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2020-11-06T18:52:41.990000000Z'; +SET READ_ONLY_STALENESS='MIN_READ_TIMESTAMP 2021-04-13T18:14:22.517000000Z'; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @@ -12261,6 +12718,11 @@ SHOW VARIABLE READ_ONLY_STALENESS; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +@EXPECT RESULT_SET 'COMMIT_TIMESTAMP',null +SHOW VARIABLE COMMIT_RESPONSE; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; @@ -12356,6 +12818,11 @@ RUN BATCH; NEW_CONNECTION; SET READONLY=TRUE; SET AUTOCOMMIT=FALSE; +@EXPECT EXCEPTION FAILED_PRECONDITION +SET TRANSACTION_TAG = 'some-tag'; +NEW_CONNECTION; +SET READONLY=TRUE; +SET AUTOCOMMIT=FALSE; BEGIN TRANSACTION; SELECT 1 AS TEST; @EXPECT EXCEPTION FAILED_PRECONDITION