Skip to content

Commit 03941d0

Browse files
committed
ING-1495: When creating/dropping a primary idx, call consistency helpers with '#primary'
1 parent 3949dae commit 03941d0

2 files changed

Lines changed: 57 additions & 3 deletions

File tree

gateway/dataimpl/server_v1/queryadminserver.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ func (s *QueryIndexAdminServer) CreatePrimaryIndex(
270270
BucketName: in.BucketName,
271271
ScopeName: scopeName,
272272
CollectionName: collectionName,
273-
IndexName: in.GetName(),
273+
IndexName: indexName,
274274
OnBehalfOf: oboInfo,
275275
})
276276
if err != nil {
@@ -402,11 +402,18 @@ func (s *QueryIndexAdminServer) DropPrimaryIndex(
402402
return nil, errSt.Err()
403403
}
404404

405+
var indexName string
406+
if in.Name == nil {
407+
indexName = "#primary"
408+
} else {
409+
indexName = *in.Name
410+
}
411+
405412
err := agent.DropPrimaryIndex(ctx, &cbqueryx.DropPrimaryIndexOptions{
406413
BucketName: in.BucketName,
407414
ScopeName: in.GetScopeName(),
408415
CollectionName: in.GetCollectionName(),
409-
IndexName: in.GetName(),
416+
IndexName: indexName,
410417
IgnoreIfNotExists: in.GetIgnoreIfMissing(),
411418
OnBehalfOf: oboInfo,
412419
})
@@ -465,7 +472,7 @@ func (s *QueryIndexAdminServer) DropPrimaryIndex(
465472
BucketName: in.BucketName,
466473
ScopeName: scopeName,
467474
CollectionName: collectionName,
468-
IndexName: in.GetName(),
475+
IndexName: indexName,
469476
OnBehalfOf: oboInfo,
470477
})
471478
if err != nil {

gateway/test/query_mgmt_test.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,53 @@ func (s *GatewayOpsTestSuite) TestQueryManagement() {
4747
}
4848

4949
s.Run("PrimaryIndex", func() {
50+
s.Run("CreateAndDropWithUnsetName", func() {
51+
creds := s.basicRpcCreds
52+
53+
// First let's attempt a drop in case the primary index exists already
54+
{
55+
resp, err := queryAdminClient.DropPrimaryIndex(context.Background(),
56+
&admin_query_v1.DropPrimaryIndexRequest{
57+
Name: nil,
58+
BucketName: s.bucketName,
59+
ScopeName: &s.scopeName,
60+
CollectionName: &s.collectionName,
61+
IgnoreIfMissing: &trueBool,
62+
},
63+
grpc.PerRPCCredentials(creds))
64+
65+
requireRpcSuccess(s.T(), resp, err)
66+
}
67+
68+
// Create the index
69+
{
70+
resp, err := queryAdminClient.CreatePrimaryIndex(context.Background(),
71+
&admin_query_v1.CreatePrimaryIndexRequest{
72+
BucketName: s.bucketName,
73+
Name: nil,
74+
ScopeName: &s.scopeName,
75+
CollectionName: &s.collectionName,
76+
},
77+
grpc.PerRPCCredentials(creds))
78+
79+
requireRpcSuccess(s.T(), resp, err)
80+
}
81+
82+
// Drop it again, this time without IgnoreIfMissing, it must exist.
83+
{
84+
resp, err := queryAdminClient.DropPrimaryIndex(context.Background(),
85+
&admin_query_v1.DropPrimaryIndexRequest{
86+
Name: nil,
87+
BucketName: s.bucketName,
88+
ScopeName: &s.scopeName,
89+
CollectionName: &s.collectionName,
90+
},
91+
grpc.PerRPCCredentials(creds))
92+
93+
requireRpcSuccess(s.T(), resp, err)
94+
}
95+
})
96+
5097
indexName := uuid.NewString()
5198

5299
s.Run("Create", func() {

0 commit comments

Comments
 (0)