Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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" });
Expand All @@ -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" });
Expand All @@ -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);
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,8 @@ private QueryRequest CreateQueryRequest(string sql, IEnumerable<BigQueryParamete
ParameterMode = "named",
QueryParameters = parameters?.Select(p => 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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ private void ModifyRequest(GetQueryResultsRequest request)
PageSize = PageSize,
PageToken = PageToken,
StartIndex = StartIndex,
Timeout = Timeout
Timeout = Timeout,
UseInt64Timestamp = UseInt64Timestamp
Comment thread
robertvoinescu-work marked this conversation as resolved.
};

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ internal sealed class StatelessQueryOptions
/// <summary>
/// Optional output format adjustments.
/// </summary>
internal DataFormatOptions FormatOptions { get; set; }
internal DataFormatOptions FormatOptions { get; set; } = new DataFormatOptions {UseInt64Timestamp = true};

/// <summary>
/// Specifies whether a job is required to be created.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class FirestoreFixture : CloudProjectFixtureBase, ICollectionFixture<Fire
// 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));

// How long we should wait after creating an index, before returning to the caller
// (who is expecting to be able to use the index immediately). Sometimes the CreateIndex operation
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ public void ListObjectsMatchingContextKeyValuePair()
};
var destination = new Object
{
Bucket = _fixture.ReadBucket,
Bucket = _fixture.SingleVersionBucket,
Name = IdGenerator.FromGuid(),
Contexts = new Object.ContextsData { Custom = custom }
};
Expand All @@ -146,7 +146,7 @@ public void ListObjectsMatchingContextKeyValuePair()
_fixture.Client.UploadObject(destination, source);
string filter = $@"contexts.""{contextKey}""=""{contextValue}""";
var options = new ListObjectsOptions { Filter = filter };
var objects = _fixture.Client.ListObjects(_fixture.ReadBucket, options: options).ToList();
var objects = _fixture.Client.ListObjects(_fixture.SingleVersionBucket, options: options).ToList();
var obj = Assert.Single(objects);
var fetchedContext = Assert.Single(obj.Contexts.Custom);
Assert.Equal(contextKey, fetchedContext.Key);
Expand Down
Loading