diff --git a/sdk/tables/aztable/table_client.go b/sdk/tables/aztable/table_client.go index 55e1490defa2..2ac0132eefbb 100644 --- a/sdk/tables/aztable/table_client.go +++ b/sdk/tables/aztable/table_client.go @@ -55,19 +55,22 @@ func (t *TableClient) Delete(ctx context.Context) (TableDeleteResponse, error) { // // Query returns a Pager, which allows iteration through each page of results. Example: // -// pager := client.Query(QueryOptions{}) +// pager := client.Query(nil) // for pager.NextPage(ctx) { // resp = pager.PageResponse() // fmt.sprintf("The page contains %i results", len(resp.TableEntityQueryResponse.Value)) // } // err := pager.Err() -func (t *TableClient) Query(queryOptions QueryOptions) TableEntityQueryResponsePager { - return &tableEntityQueryResponsePager{tableClient: t, queryOptions: &queryOptions, tableQueryOptions: &TableQueryEntitiesOptions{}} +func (t *TableClient) Query(queryOptions *QueryOptions) TableEntityQueryResponsePager { + if queryOptions == nil { + queryOptions = &QueryOptions{} + } + return &tableEntityQueryResponsePager{tableClient: t, queryOptions: queryOptions, tableQueryOptions: &TableQueryEntitiesOptions{}} } // GetEntity retrieves a specific entity from the service using the specified partitionKey and rowKey values. func (t *TableClient) GetEntity(ctx context.Context, partitionKey string, rowKey string) (MapOfInterfaceResponse, error) { - resp, err := t.client.QueryEntityWithPartitionAndRowKey(ctx, t.Name, partitionKey, rowKey, &TableQueryEntityWithPartitionAndRowKeyOptions{}, &QueryOptions{}) + resp, err := t.client.QueryEntityWithPartitionAndRowKey(ctx, t.Name, partitionKey, rowKey, &TableQueryEntityWithPartitionAndRowKeyOptions{}, nil) if err != nil { return resp, err } @@ -82,7 +85,7 @@ func (t *TableClient) AddEntity(ctx context.Context, entity interface{}) (TableI if err != nil { return TableInsertEntityResponse{}, azcore.NewResponseError(err, nil) } - resp, err := t.client.InsertEntity(ctx, t.Name, &TableInsertEntityOptions{TableEntityProperties: *entmap, ResponsePreference: ResponseFormatReturnNoContent.ToPtr()}, &QueryOptions{}) + resp, err := t.client.InsertEntity(ctx, t.Name, &TableInsertEntityOptions{TableEntityProperties: *entmap, ResponsePreference: ResponseFormatReturnNoContent.ToPtr()}, nil) if err == nil { insertResp := resp.(TableInsertEntityResponse) return insertResp, nil @@ -93,7 +96,7 @@ func (t *TableClient) AddEntity(ctx context.Context, entity interface{}) (TableI // DeleteEntity deletes the entity with the specified partitionKey and rowKey from the table. func (t *TableClient) DeleteEntity(ctx context.Context, partitionKey string, rowKey string, etag string) (TableDeleteEntityResponse, error) { - return t.client.DeleteEntity(ctx, t.Name, partitionKey, rowKey, etag, nil, &QueryOptions{}) + return t.client.DeleteEntity(ctx, t.Name, partitionKey, rowKey, etag, nil, nil) } // UpdateEntity updates the specified table entity if it exists. @@ -110,9 +113,9 @@ func (t *TableClient) UpdateEntity(ctx context.Context, entity map[string]interf } switch updateMode { case Merge: - return t.client.MergeEntity(ctx, t.Name, pk, rk, &TableMergeEntityOptions{IfMatch: &ifMatch, TableEntityProperties: entity}, &QueryOptions{}) + return t.client.MergeEntity(ctx, t.Name, pk, rk, &TableMergeEntityOptions{IfMatch: &ifMatch, TableEntityProperties: entity}, nil) case Replace: - return t.client.UpdateEntity(ctx, t.Name, pk, rk, &TableUpdateEntityOptions{IfMatch: &ifMatch, TableEntityProperties: entity}, &QueryOptions{}) + return t.client.UpdateEntity(ctx, t.Name, pk, rk, &TableUpdateEntityOptions{IfMatch: &ifMatch, TableEntityProperties: entity}, nil) } return nil, errors.New("Invalid TableUpdateMode") } @@ -126,9 +129,9 @@ func (t *TableClient) UpsertEntity(ctx context.Context, entity map[string]interf switch updateMode { case Merge: - return t.client.MergeEntity(ctx, t.Name, pk, rk, &TableMergeEntityOptions{TableEntityProperties: entity}, &QueryOptions{}) + return t.client.MergeEntity(ctx, t.Name, pk, rk, &TableMergeEntityOptions{TableEntityProperties: entity}, nil) case Replace: - return t.client.UpdateEntity(ctx, t.Name, pk, rk, &TableUpdateEntityOptions{TableEntityProperties: entity}, &QueryOptions{}) + return t.client.UpdateEntity(ctx, t.Name, pk, rk, &TableUpdateEntityOptions{TableEntityProperties: entity}, nil) } return nil, errors.New("Invalid TableUpdateMode") } diff --git a/sdk/tables/aztable/table_client_test.go b/sdk/tables/aztable/table_client_test.go index 17fd0560dc5c..fc8f584d0917 100644 --- a/sdk/tables/aztable/table_client_test.go +++ b/sdk/tables/aztable/table_client_test.go @@ -111,7 +111,7 @@ func (s *tableClientLiveTests) TestMergeEntity() { var qResp TableEntityQueryResponseResponse filter := "RowKey eq '1'" - pager := client.Query(QueryOptions{Filter: &filter}) + pager := client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { qResp = pager.PageResponse() } @@ -128,7 +128,7 @@ func (s *tableClientLiveTests) TestMergeEntity() { _, updateErr := client.UpdateEntity(ctx, mergeProperty, nil, Merge) assert.Nil(updateErr) - pager = client.Query(QueryOptions{Filter: &filter}) + pager = client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { qResp = pager.PageResponse() } @@ -152,7 +152,7 @@ func (s *tableClientLiveTests) TestUpsertEntity() { var qResp TableEntityQueryResponseResponse filter := "RowKey eq '1'" - pager := client.Query(QueryOptions{Filter: &filter}) + pager := client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { qResp = pager.PageResponse() } @@ -169,7 +169,7 @@ func (s *tableClientLiveTests) TestUpsertEntity() { _, updateErr := client.UpsertEntity(ctx, mergeProperty, Replace) require.Nil(updateErr) - pager = client.Query(QueryOptions{Filter: &filter}) + pager = client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { qResp = pager.PageResponse() } @@ -229,7 +229,7 @@ func (s *tableClientLiveTests) TestQuerySimpleEntity() { expectedCount := 4 var resp TableEntityQueryResponseResponse var models []simpleEntity - pager := client.Query(QueryOptions{Filter: &filter}) + pager := client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { resp = pager.PageResponse() models = make([]simpleEntity, len(resp.TableEntityQueryResponse.Value)) @@ -279,7 +279,7 @@ func (s *tableClientLiveTests) TestQueryComplexEntity() { filter := "RowKey lt '5'" expectedCount := 4 var resp TableEntityQueryResponseResponse - pager := client.Query(QueryOptions{Filter: &filter}) + pager := client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { resp = pager.PageResponse() assert.Equal(expectedCount, len(resp.TableEntityQueryResponse.Value)) @@ -367,7 +367,7 @@ func (s *tableClientLiveTests) TestBatchMixed() { var qResp TableEntityQueryResponseResponse filter := "RowKey eq '1'" - pager := client.Query(QueryOptions{Filter: &filter}) + pager := client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { qResp = pager.PageResponse() } @@ -413,7 +413,7 @@ func (s *tableClientLiveTests) TestBatchMixed() { } - pager = client.Query(QueryOptions{Filter: &filter}) + pager = client.Query(&QueryOptions{Filter: &filter}) for pager.NextPage(ctx) { qResp = pager.PageResponse() } diff --git a/sdk/tables/aztable/table_service_client.go b/sdk/tables/aztable/table_service_client.go index f22a3c16e6b8..c74dbff76e66 100644 --- a/sdk/tables/aztable/table_service_client.go +++ b/sdk/tables/aztable/table_service_client.go @@ -64,14 +64,14 @@ func (t *TableServiceClient) Delete(ctx context.Context, name string) (TableDele // // Query returns a Pager, which allows iteration through each page of results. Example: // -// pager := client.Query(QueryOptions{}) +// pager := client.Query(nil) // for pager.NextPage(ctx) { // resp = pager.PageResponse() // fmt.sprintf("The page contains %i results", len(resp.TableQueryResponse.Value)) // } // err := pager.Err() -func (t *TableServiceClient) Query(queryOptions QueryOptions) TableQueryResponsePager { - return &tableQueryResponsePager{client: t.client, queryOptions: &queryOptions, tableQueryOptions: new(TableQueryOptions)} +func (t *TableServiceClient) Query(queryOptions *QueryOptions) TableQueryResponsePager { + return &tableQueryResponsePager{client: t.client, queryOptions: queryOptions, tableQueryOptions: new(TableQueryOptions)} } func isCosmosEndpoint(url string) bool { diff --git a/sdk/tables/aztable/table_service_client_test.go b/sdk/tables/aztable/table_service_client_test.go index 2c4d55f006df..62af3cfd42b0 100644 --- a/sdk/tables/aztable/table_service_client_test.go +++ b/sdk/tables/aztable/table_service_client_test.go @@ -85,7 +85,7 @@ func (s *tableServiceClientLiveTests) TestQueryTable() { // Query for tables with no pagination. The filter should exclude one table from the results filter := fmt.Sprintf("TableName ge '%s' and TableName lt '%s'", prefix1, prefix2) - pager := context.client.Query(QueryOptions{Filter: &filter}) + pager := context.client.Query(&QueryOptions{Filter: &filter}) resultCount := 0 for pager.NextPage(ctx) { @@ -98,7 +98,7 @@ func (s *tableServiceClientLiveTests) TestQueryTable() { // Query for tables with pagination top := int32(2) - pager = context.client.Query(QueryOptions{Filter: &filter, Top: &top}) + pager = context.client.Query(&QueryOptions{Filter: &filter, Top: &top}) resultCount = 0 pageCount := 0 diff --git a/sdk/tables/aztable/zt_table_recorded_tests.go b/sdk/tables/aztable/zt_table_recorded_tests.go index 257bef5e34fe..8af8521fec02 100644 --- a/sdk/tables/aztable/zt_table_recorded_tests.go +++ b/sdk/tables/aztable/zt_table_recorded_tests.go @@ -97,7 +97,7 @@ func recordedTestTeardown(key string) { func cleanupTables(context *testContext, tables *[]string) { c := context.client if tables == nil { - pager := c.Query(QueryOptions{}) + pager := c.Query(nil) for pager.NextPage(ctx) { for _, t := range pager.PageResponse().TableQueryResponse.Value { c.Delete(ctx, *t.TableName)