Skip to content

Commit f105651

Browse files
authored
feat: Make state client versioning the default, remove option (#1938)
#### Summary Fixes cloudquery/cloudquery-issues#2435 ---
1 parent d9e6f47 commit f105651

File tree

3 files changed

+12
-25
lines changed

3 files changed

+12
-25
lines changed

internal/clients/state/v3/state.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,21 +36,8 @@ type versionedValue struct {
3636
version uint64
3737
}
3838

39-
func VersionedTable(name string) *schema.Table {
40-
t := table(name)
41-
t.Columns = append(t.Columns, schema.Column{
42-
// Not defined as PrimaryKey to enable single keys if the destination supports PKs
43-
Name: versionColumn,
44-
Type: arrow.PrimitiveTypes.Uint64,
45-
})
46-
return t
47-
}
48-
4939
func NewClient(ctx context.Context, conn *grpc.ClientConn, tableName string) (*Client, error) {
50-
return NewClientWithTable(ctx, conn, table(tableName))
51-
}
52-
53-
func NewClientWithTable(ctx context.Context, conn *grpc.ClientConn, table *schema.Table) (*Client, error) {
40+
table := Table(tableName)
5441
c := &Client{
5542
conn: conn,
5643
client: pb.NewPluginClient(conn),
@@ -215,7 +202,7 @@ func (c *Client) Close() error {
215202
return nil
216203
}
217204

218-
func table(name string) *schema.Table {
205+
func Table(name string) *schema.Table {
219206
return &schema.Table{
220207
Name: name,
221208
Columns: []schema.Column{
@@ -228,6 +215,11 @@ func table(name string) *schema.Table {
228215
Name: valueColumn,
229216
Type: arrow.BinaryTypes.String,
230217
},
218+
{
219+
// Not defined as PrimaryKey to enable single keys if the destination supports PKs
220+
Name: versionColumn,
221+
Type: arrow.PrimitiveTypes.Uint64,
222+
},
231223
},
232224
}
233225
}

serve/state_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,13 @@ func TestStateOverwriteGetLatest(t *testing.T) {
117117
t.Fatal(err)
118118
}
119119

120-
table := state.VersionedTable("test_no_pk")
120+
table := state.Table("test_no_pk")
121121
// Remove PKs
122122
for i := range table.Columns {
123123
table.Columns[i].PrimaryKey = false
124124
}
125125

126-
stateClient, err := state.NewClientWithTable(ctx, conn, table)
126+
stateClient, err := state.NewClient(ctx, conn, table.Name)
127127
if err != nil {
128128
t.Fatal(err)
129129
}
@@ -138,7 +138,7 @@ func TestStateOverwriteGetLatest(t *testing.T) {
138138
}
139139
}
140140

141-
stateClient, err = state.NewClientWithTable(ctx, conn, table)
141+
stateClient, err = state.NewClient(ctx, conn, table.Name)
142142
if err != nil {
143143
t.Fatal(err)
144144
}

state/client.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@ type Client interface {
2121
Close() error
2222
}
2323

24-
type ClientOptions struct {
25-
Versioned bool
26-
}
24+
type ClientOptions struct{}
2725

2826
type ConnectionOptions struct {
2927
MaxMsgSizeInBytes int
@@ -33,7 +31,7 @@ func NewClient(ctx context.Context, conn *grpc.ClientConn, tableName string) (Cl
3331
return NewClientWithOptions(ctx, conn, tableName, ClientOptions{})
3432
}
3533

36-
func NewClientWithOptions(ctx context.Context, conn *grpc.ClientConn, tableName string, opts ClientOptions) (Client, error) {
34+
func NewClientWithOptions(ctx context.Context, conn *grpc.ClientConn, tableName string, _ ClientOptions) (Client, error) {
3735
discoveryClient := pbDiscovery.NewDiscoveryClient(conn)
3836
versions, err := discoveryClient.GetVersions(ctx, &pbDiscovery.GetVersions_Request{})
3937
if err != nil {
@@ -43,9 +41,6 @@ func NewClientWithOptions(ctx context.Context, conn *grpc.ClientConn, tableName
4341
return nil, fmt.Errorf("please upgrade your state backend plugin. state supporting version 3 plugin has %v", versions.Versions)
4442
}
4543

46-
if opts.Versioned {
47-
return stateV3.NewClientWithTable(ctx, conn, stateV3.VersionedTable(tableName))
48-
}
4944
return stateV3.NewClient(ctx, conn, tableName)
5045
}
5146

0 commit comments

Comments
 (0)