From 9f2e0bd082b9b972068cc506cc5d36cd1165a208 Mon Sep 17 00:00:00 2001 From: Scott Winkler Date: Mon, 4 Dec 2023 23:33:22 -0800 Subject: [PATCH] update --- pkg/sdk/event_tables_def.go | 3 +- pkg/sdk/event_tables_dto_builders_gen.go | 5 ++ pkg/sdk/event_tables_dto_gen.go | 1 + pkg/sdk/event_tables_gen.go | 5 +- pkg/sdk/event_tables_gen_test.go | 3 +- pkg/sdk/event_tables_impl_gen.go | 3 +- .../testint/event_tables_integration_test.go | 70 ++++++++----------- 7 files changed, 46 insertions(+), 44 deletions(-) diff --git a/pkg/sdk/event_tables_def.go b/pkg/sdk/event_tables_def.go index df1b247087..d400a75785 100644 --- a/pkg/sdk/event_tables_def.go +++ b/pkg/sdk/event_tables_def.go @@ -96,6 +96,7 @@ var EventTablesDef = g.NewInterface( Field("OwnerRoleType", "string"), g.NewQueryStruct("ShowEventTables"). Show(). + Terse(). SQL("EVENT TABLES"). OptionalLike(). OptionalIn(). @@ -127,7 +128,7 @@ var EventTablesDef = g.NewInterface( OptionalSQL("RESTRICT"). // CASCADE or RESTRICT, and CASCADE for Default WithValidation(g.ValidIdentifier, "name"), ).AlterOperation( - "https://docs.snowflake.com/en/sql-reference/sql/alter-event-table", + "https://docs.snowflake.com/en/sql-reference/sql/alter-table-event-table", g.NewQueryStruct("AlterEventTable"). Alter(). SQL("TABLE"). diff --git a/pkg/sdk/event_tables_dto_builders_gen.go b/pkg/sdk/event_tables_dto_builders_gen.go index c1475265e4..9d25168bbc 100644 --- a/pkg/sdk/event_tables_dto_builders_gen.go +++ b/pkg/sdk/event_tables_dto_builders_gen.go @@ -71,6 +71,11 @@ func NewShowEventTableRequest() *ShowEventTableRequest { return &ShowEventTableRequest{} } +func (s *ShowEventTableRequest) WithTerse(Terse *bool) *ShowEventTableRequest { + s.Terse = Terse + return s +} + func (s *ShowEventTableRequest) WithLike(Like *Like) *ShowEventTableRequest { s.Like = Like return s diff --git a/pkg/sdk/event_tables_dto_gen.go b/pkg/sdk/event_tables_dto_gen.go index 4e9a8b078b..c043c86b21 100644 --- a/pkg/sdk/event_tables_dto_gen.go +++ b/pkg/sdk/event_tables_dto_gen.go @@ -26,6 +26,7 @@ type CreateEventTableRequest struct { } type ShowEventTableRequest struct { + Terse *bool Like *Like In *In StartsWith *string diff --git a/pkg/sdk/event_tables_gen.go b/pkg/sdk/event_tables_gen.go index b853d53999..93d7a98d83 100644 --- a/pkg/sdk/event_tables_gen.go +++ b/pkg/sdk/event_tables_gen.go @@ -36,6 +36,7 @@ type CreateEventTableOptions struct { // ShowEventTableOptions is based on https://docs.snowflake.com/en/sql-reference/sql/show-event-tables. type ShowEventTableOptions struct { show bool `ddl:"static" sql:"SHOW"` + Terse *bool `ddl:"keyword" sql:"TERSE"` eventTables bool `ddl:"static" sql:"EVENT TABLES"` Like *Like `ddl:"keyword" sql:"LIKE"` In *In `ddl:"keyword" sql:"IN"` @@ -63,7 +64,7 @@ type EventTable struct { OwnerRoleType string } -// DescribeEventTableOptions is based on https://docs.snowflake.com/en/sql-reference/sql/describe-event-table. +// DescribeEventTableOptions is based on https://docs.snowflake.com/en/sql-reference/sql/desc-event-table. type DescribeEventTableOptions struct { describe bool `ddl:"static" sql:"DESCRIBE"` eventTable bool `ddl:"static" sql:"EVENT TABLE"` @@ -91,7 +92,7 @@ type DropEventTableOptions struct { Restrict *bool `ddl:"keyword" sql:"RESTRICT"` } -// AlterEventTableOptions is based on https://docs.snowflake.com/en/sql-reference/sql/alter-event-table. +// AlterEventTableOptions is based on https://docs.snowflake.com/en/sql-reference/sql/alter-table-event-table. type AlterEventTableOptions struct { alter bool `ddl:"static" sql:"ALTER"` table bool `ddl:"static" sql:"TABLE"` diff --git a/pkg/sdk/event_tables_gen_test.go b/pkg/sdk/event_tables_gen_test.go index c4aaa69312..006cb2cd98 100644 --- a/pkg/sdk/event_tables_gen_test.go +++ b/pkg/sdk/event_tables_gen_test.go @@ -81,13 +81,14 @@ func TestEventTables_Show(t *testing.T) { t.Run("show with like and in", func(t *testing.T) { opts := defaultOpts() + opts.Terse = Bool(true) opts.Like = &Like{ Pattern: String(id.Name()), } opts.In = &In{ Database: NewAccountObjectIdentifier("database"), } - assertOptsValidAndSQLEquals(t, opts, `SHOW EVENT TABLES LIKE '%s' IN DATABASE "database"`, id.Name()) + assertOptsValidAndSQLEquals(t, opts, `SHOW TERSE EVENT TABLES LIKE '%s' IN DATABASE "database"`, id.Name()) }) } diff --git a/pkg/sdk/event_tables_impl_gen.go b/pkg/sdk/event_tables_impl_gen.go index 8cf6992791..8da92bd29c 100644 --- a/pkg/sdk/event_tables_impl_gen.go +++ b/pkg/sdk/event_tables_impl_gen.go @@ -77,6 +77,7 @@ func (r *CreateEventTableRequest) toOpts() *CreateEventTableOptions { func (r *ShowEventTableRequest) toOpts() *ShowEventTableOptions { opts := &ShowEventTableOptions{ + Terse: r.Terse, Like: r.Like, In: r.In, StartsWith: r.StartsWith, @@ -188,7 +189,7 @@ func (r *AlterEventTableRequest) toOpts() *AlterEventTableOptions { opts.SearchOptimizationAction = &EventTableSearchOptimizationAction{} if r.SearchOptimizationAction.Add != nil { opts.SearchOptimizationAction.Add = &SearchOptimization{ - On: r.SearchOptimizationAction.Drop.On, + On: r.SearchOptimizationAction.Add.On, } } if r.SearchOptimizationAction.Drop != nil { diff --git a/pkg/sdk/testint/event_tables_integration_test.go b/pkg/sdk/testint/event_tables_integration_test.go index 4b32ed2d8a..d871d9ec4d 100644 --- a/pkg/sdk/testint/event_tables_integration_test.go +++ b/pkg/sdk/testint/event_tables_integration_test.go @@ -106,36 +106,27 @@ func TestInt_EventTables(t *testing.T) { }) t.Run("describe event table", func(t *testing.T) { - name := random.String() - id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, name) - - err := client.EventTables.Create(ctx, sdk.NewCreateEventTableRequest(id)) - require.NoError(t, err) - t.Cleanup(cleanupTableHandle(t, id)) + dt := createEventTableHandle(t) + id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, dt.Name) details, err := client.EventTables.Describe(ctx, id) require.NoError(t, err) assert.Equal(t, "TIMESTAMP", details.Name) - assert.Equal(t, "EVENT TABLE", details.Kind) - assert.Equal(t, "", details.Comment) + assert.NotEmpty(t, details.Kind) }) t.Run("alter event table: set and unset comment", func(t *testing.T) { - name := random.String() - id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, name) - - err := client.EventTables.Create(ctx, sdk.NewCreateEventTableRequest(id)) - require.NoError(t, err) - t.Cleanup(cleanupTableHandle(t, id)) + dt := createEventTableHandle(t) + id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, dt.Name) comment := random.Comment() set := sdk.NewEventTableSetRequest().WithComment(&comment) - err = client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSet(set)) + err := client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSet(set)) require.NoError(t, err) et, err := client.EventTables.ShowByID(ctx, id) require.NoError(t, err) - assertEventTableHandle(t, et, name, comment, nil) + assertEventTableHandle(t, et, dt.Name, comment, nil) unset := sdk.NewEventTableUnsetRequest().WithComment(sdk.Bool(true)) err = client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithUnset(unset)) @@ -143,19 +134,15 @@ func TestInt_EventTables(t *testing.T) { et, err = client.EventTables.ShowByID(ctx, id) require.NoError(t, err) - assertEventTableHandle(t, et, name, "", nil) + assertEventTableHandle(t, et, dt.Name, "", nil) }) t.Run("alter event table: set and unset change tacking", func(t *testing.T) { - name := random.String() - id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, name) - - err := client.EventTables.Create(ctx, sdk.NewCreateEventTableRequest(id)) - require.NoError(t, err) - t.Cleanup(cleanupTableHandle(t, id)) + dt := createEventTableHandle(t) + id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, dt.Name) set := sdk.NewEventTableSetRequest().WithChangeTracking(sdk.Bool(true)) - err = client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSet(set)) + err := client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSet(set)) require.NoError(t, err) unset := sdk.NewEventTableUnsetRequest().WithChangeTracking(sdk.Bool(true)) @@ -164,12 +151,8 @@ func TestInt_EventTables(t *testing.T) { }) t.Run("alter event table: set and unset tag", func(t *testing.T) { - name := random.String() - id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, name) - - err := client.EventTables.Create(ctx, sdk.NewCreateEventTableRequest(id)) - require.NoError(t, err) - t.Cleanup(cleanupTableHandle(t, id)) + dt := createEventTableHandle(t) + id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, dt.Name) set := []sdk.TagAssociation{ { @@ -177,7 +160,7 @@ func TestInt_EventTables(t *testing.T) { Value: "v1", }, } - err = client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSetTags(set)) + err := client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSetTags(set)) require.NoError(t, err) unset := []sdk.ObjectIdentifier{tagTest.ID()} @@ -209,23 +192,32 @@ func TestInt_EventTables(t *testing.T) { }) t.Run("alter event table: clustering action with drop", func(t *testing.T) { - name := random.String() - id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, name) + dt := createEventTableHandle(t) + id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, dt.Name) - err := client.EventTables.Create(ctx, sdk.NewCreateEventTableRequest(id)) + action := sdk.NewEventTableClusteringActionRequest().WithDropClusteringKey(sdk.Bool(true)) + err := client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithClusteringAction(action)) require.NoError(t, err) - t.Cleanup(cleanupTableHandle(t, id)) + }) - action := sdk.NewEventTableClusteringActionRequest().WithDropClusteringKey(sdk.Bool(true)) - err = client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithClusteringAction(action)) + t.Run("alter event table: search optimization action", func(t *testing.T) { + dt := createEventTableHandle(t) + id := sdk.NewSchemaObjectIdentifier(databaseTest.Name, schemaTest.Name, dt.Name) + + action := sdk.NewEventTableSearchOptimizationActionRequest().WithAdd(sdk.NewSearchOptimizationRequest().WithOn([]string{"SUBSTRING(*)"})) + err := client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSearchOptimizationAction(action)) + require.NoError(t, err) + + action = sdk.NewEventTableSearchOptimizationActionRequest().WithDrop(sdk.NewSearchOptimizationRequest().WithOn([]string{"SUBSTRING(*)"})) + err = client.EventTables.Alter(ctx, sdk.NewAlterEventTableRequest(id).WithSearchOptimizationAction(action)) require.NoError(t, err) }) // alter view: add and drop row access policies t.Run("alter event table: add and drop row access policies", func(t *testing.T) { - rowAccessPolicyId, rowAccessPolicyCleanup := createRowAccessPolicy(t, client, testSchema(t)) + rowAccessPolicyId, rowAccessPolicyCleanup := createRowAccessPolicy(t, client, schemaTest) t.Cleanup(rowAccessPolicyCleanup) - rowAccessPolicy2Id, rowAccessPolicy2Cleanup := createRowAccessPolicy(t, client, testSchema(t)) + rowAccessPolicy2Id, rowAccessPolicy2Cleanup := createRowAccessPolicy(t, client, schemaTest) t.Cleanup(rowAccessPolicy2Cleanup) table, tableCleanup := createTable(t, client, databaseTest, schemaTest)