Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
sfc-gh-swinkler committed Dec 5, 2023
1 parent 6d26e1e commit 9f2e0bd
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 44 deletions.
3 changes: 2 additions & 1 deletion pkg/sdk/event_tables_def.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ var EventTablesDef = g.NewInterface(
Field("OwnerRoleType", "string"),
g.NewQueryStruct("ShowEventTables").
Show().
Terse().
SQL("EVENT TABLES").
OptionalLike().
OptionalIn().
Expand Down Expand Up @@ -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").
Expand Down
5 changes: 5 additions & 0 deletions pkg/sdk/event_tables_dto_builders_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions pkg/sdk/event_tables_dto_gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ type CreateEventTableRequest struct {
}

type ShowEventTableRequest struct {
Terse *bool
Like *Like
In *In
StartsWith *string
Expand Down
5 changes: 3 additions & 2 deletions pkg/sdk/event_tables_gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"`
Expand Down Expand Up @@ -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"`
Expand Down Expand Up @@ -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"`
Expand Down
3 changes: 2 additions & 1 deletion pkg/sdk/event_tables_gen_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())
})
}

Expand Down
3 changes: 2 additions & 1 deletion pkg/sdk/event_tables_impl_gen.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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 {
Expand Down
70 changes: 31 additions & 39 deletions pkg/sdk/testint/event_tables_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,56 +106,43 @@ 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))
require.NoError(t, err)

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))
Expand All @@ -164,20 +151,16 @@ 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{
{
Name: tagTest.ID(),
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()}
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 9f2e0bd

Please sign in to comment.