diff --git a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2.Tests/BigQueryClientImplTest.cs b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2.Tests/BigQueryClientImplTest.cs index 1e2a476e6f17..8fe525029105 100644 --- a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2.Tests/BigQueryClientImplTest.cs +++ b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2.Tests/BigQueryClientImplTest.cs @@ -328,7 +328,7 @@ public void ExecuteStatelessQuery() var service = new FakeBigqueryService(); var client = new BigQueryClientImpl("project", service); var sql = "SELECT * FROM dataset.table"; - var request = new QueryRequest { Query = sql, UseLegacySql = false, MaxResults = 10, Location = "us" }; + var request = new QueryRequest { Query = sql, UseLegacySql = false, MaxResults = 10, Location = "us", FormatOptions = new DataFormatOptions { UseInt64Timestamp = true } }; service.ExpectRequest(service.Jobs.Query(request, "project"), CreateStatelessResponse("value")); var results = client.ExecuteStatelessQuery(sql, parameters: null, queryOptions: new StatelessQueryOptions { MaxResults = 10, Location = "us" }); @@ -341,7 +341,7 @@ public async Task ExecuteStatelessQueryAsync() var service = new FakeBigqueryService(); var client = new BigQueryClientImpl("project", service); var sql = "SELECT * FROM dataset.table"; - var request = new QueryRequest { Query = sql, UseLegacySql = false, MaxResults = 10, Location = "us" }; + var request = new QueryRequest { Query = sql, UseLegacySql = false, MaxResults = 10, Location = "us", FormatOptions = new DataFormatOptions { UseInt64Timestamp = true } }; service.ExpectRequest(service.Jobs.Query(request, "project"), CreateStatelessResponse("value")); var results = await client.ExecuteStatelessQueryAsync(sql, parameters: null, queryOptions: new StatelessQueryOptions { MaxResults = 10, Location = "us" }); @@ -355,7 +355,7 @@ public void ExecuteStatelessQuery_WithParameters() var client = new BigQueryClientImpl("project", service); var sql = "SELECT * FROM dataset.table WHERE col = @val"; var parameters = new[] { new BigQueryParameter("val", BigQueryDbType.String, "foo") }; - var request = new QueryRequest { Query = sql, UseLegacySql = false, ParameterMode = "named", QueryParameters = new[] { parameters[0].ToQueryParameter() } }; + var request = new QueryRequest { Query = sql, UseLegacySql = false, ParameterMode = "named", QueryParameters = new[] { parameters[0].ToQueryParameter() }, FormatOptions = new DataFormatOptions { UseInt64Timestamp = true } }; service.ExpectRequest(service.Jobs.Query(request, "project"), CreateStatelessResponse("foo")); var results = client.ExecuteStatelessQuery(sql, parameters); @@ -394,7 +394,7 @@ public void ExecuteQuery_StatelessOptimization() var queryOptions = new QueryOptions { UseQueryCache = true }; var resultsOptions = new GetQueryResultsOptions { PageSize = 10 }; - var request = new QueryRequest { Query = sql, UseLegacySql = false, UseQueryCache = true, MaxResults = 10 }; + var request = new QueryRequest { Query = sql, UseLegacySql = false, UseQueryCache = true, MaxResults = 10, FormatOptions = new DataFormatOptions { UseInt64Timestamp = true } }; service.ExpectRequest(service.Jobs.Query(request, "project"), CreateStatelessResponse("value")); var results = client.ExecuteQuery(sql, parameters: null, queryOptions: queryOptions, resultsOptions: resultsOptions); @@ -412,7 +412,7 @@ public async Task ExecuteQueryAsync_StatelessOptimization() var queryOptions = new QueryOptions { UseQueryCache = true }; var resultsOptions = new GetQueryResultsOptions { PageSize = 10 }; - var request = new QueryRequest { Query = sql, UseLegacySql = false, UseQueryCache = true, MaxResults = 10 }; + var request = new QueryRequest { Query = sql, UseLegacySql = false, UseQueryCache = true, MaxResults = 10, FormatOptions = new DataFormatOptions { UseInt64Timestamp = true } }; service.ExpectRequest(service.Jobs.Query(request, "project"), CreateStatelessResponse("value")); var results = await client.ExecuteQueryAsync(sql, parameters: null, queryOptions: queryOptions, resultsOptions: resultsOptions); diff --git a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/BigQueryClientImpl.Queries.cs b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/BigQueryClientImpl.Queries.cs index d3534e486a1b..d635e43d0542 100644 --- a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/BigQueryClientImpl.Queries.cs +++ b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/BigQueryClientImpl.Queries.cs @@ -240,7 +240,8 @@ private QueryRequest CreateQueryRequest(string sql, IEnumerable p.ToQueryParameter()).ToList(), }; - options?.ModifyRequest(request); + // If no options are provided, we create an empty query options and propagate any defaults to the request + (options ?? new StatelessQueryOptions()).ModifyRequest(request); request.Location ??= DefaultLocation; // If there aren't any parameters, set ParameterMode to null - otherwise legacy SQL queries fail, // even if haven't set any parameters. diff --git a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/GetQueryResultsOptions.cs b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/GetQueryResultsOptions.cs index 6ca0fceb54c2..a2c1dd39f1cf 100644 --- a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/GetQueryResultsOptions.cs +++ b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/GetQueryResultsOptions.cs @@ -95,7 +95,8 @@ private void ModifyRequest(GetQueryResultsRequest request) PageSize = PageSize, PageToken = PageToken, StartIndex = StartIndex, - Timeout = Timeout + Timeout = Timeout, + UseInt64Timestamp = UseInt64Timestamp }; } diff --git a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/StatelessQueryOptions.cs b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/StatelessQueryOptions.cs index 76b882af4242..561e2186e5e7 100644 --- a/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/StatelessQueryOptions.cs +++ b/apis/Google.Cloud.BigQuery.V2/Google.Cloud.BigQuery.V2/StatelessQueryOptions.cs @@ -61,7 +61,7 @@ internal sealed class StatelessQueryOptions /// /// Optional output format adjustments. /// - internal DataFormatOptions FormatOptions { get; set; } + internal DataFormatOptions FormatOptions { get; set; } = new DataFormatOptions {UseInt64Timestamp = true}; /// /// Specifies whether a job is required to be created. diff --git a/apis/Google.Cloud.Datastore.V1/Google.Cloud.Datastore.V1.IntegrationTests/DatastoreFixture.cs b/apis/Google.Cloud.Datastore.V1/Google.Cloud.Datastore.V1.IntegrationTests/DatastoreFixture.cs index 298a0da585ba..769a765eb2b3 100644 --- a/apis/Google.Cloud.Datastore.V1/Google.Cloud.Datastore.V1.IntegrationTests/DatastoreFixture.cs +++ b/apis/Google.Cloud.Datastore.V1/Google.Cloud.Datastore.V1.IntegrationTests/DatastoreFixture.cs @@ -49,7 +49,7 @@ public sealed class DatastoreFixture : CloudProjectFixtureBase, ICollectionFixtu // We don't want to wait *forever* (which would be the behavior of default poll settings) // but we need to have a timeout of more than a minute. private static readonly PollSettings AdminOperationPollSettings = - new PollSettings(expiration: Expiration.FromTimeout(TimeSpan.FromMinutes(5)), delay: TimeSpan.FromSeconds(5)); + new PollSettings(expiration: Expiration.FromTimeout(TimeSpan.FromMinutes(10)), delay: TimeSpan.FromSeconds(5)); public string NamespaceId { get; } public PartitionId PartitionId => new PartitionId { ProjectId = ProjectId, NamespaceId = NamespaceId }; diff --git a/apis/Google.Cloud.Firestore/Google.Cloud.Firestore.IntegrationTests/FirestoreFixture.cs b/apis/Google.Cloud.Firestore/Google.Cloud.Firestore.IntegrationTests/FirestoreFixture.cs index cbc3347edc50..8107d732e9d9 100644 --- a/apis/Google.Cloud.Firestore/Google.Cloud.Firestore.IntegrationTests/FirestoreFixture.cs +++ b/apis/Google.Cloud.Firestore/Google.Cloud.Firestore.IntegrationTests/FirestoreFixture.cs @@ -37,7 +37,7 @@ public class FirestoreFixture : CloudProjectFixtureBase, ICollectionFixture