stargate-grpc-go-client icon indicating copy to clipboard operation
stargate-grpc-go-client copied to clipboard

Feature request: default keyspace option

Open SpencerC opened this issue 2 years ago • 0 comments

Current design

Callers must chose between including the keyspace in each query:

_, err = stargateClient.ExecuteQuery(&sgpb.Query{
	Cql:        "INSERT INTO main_keyspace.some_table (id) VALUES ('abcd')",
})

or adding a crazy complicated parameter to every query

_, err = stargateClient.ExecuteQuery(&sgpb.Query{
	Cql:        "INSERT INTO some_table (id) VALUES ('abcd')",
	Parameters: &sgpb.QueryParameters{Keyspace: &wrapperspb.StringValue{Value: "main_keyspace"}},
})

Proposed design

sc, err := client.NewStargateClientWithConn(conn, cilent.WithDefaultKeyspace("main_keyspace"))

_, err = stargateClient.ExecuteQuery(&sgpb.Query{
	Cql:        "INSERT INTO some_table (id) VALUES ('abcd')",
	// implicitly uses "main_keyspace"
})

_, err = stargateClient.ExecuteQuery(&sgpb.Query{
	Cql:        "INSERT INTO some_table (id) VALUES ('abcd')",
	Parameters: &sgpb.QueryParameters{Keyspace: &wrapperspb.StringValue{Value: "overriding_keyspace"}},
})

SpencerC avatar May 18 '22 03:05 SpencerC