Skip to content

Commit

Permalink
Include query with view and materialized_view (#436)
Browse files Browse the repository at this point in the history
* Include create_sql to read query

* Terraform Docs

---------

Co-authored-by: bobbyiliev <[email protected]>
  • Loading branch information
bobbyiliev and bobbyiliev authored Jan 11, 2024
1 parent e6cde73 commit 029fbc2
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 0 deletions.
1 change: 1 addition & 0 deletions docs/resources/materialized_view.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ resource "materialize_materialized_view" "simple_materialized_view" {

### Read-Only

- `create_sql` (String) The SQL statement used to create the materialized view.
- `id` (String) The ID of this resource.
- `qualified_sql_name` (String) The fully qualified name of the materialized view.

Expand Down
1 change: 1 addition & 0 deletions docs/resources/view.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ resource "materialize_view" "simple_view" {

### Read-Only

- `create_sql` (String) The SQL statement used to create the view.
- `id` (String) The ID of this resource.
- `qualified_sql_name` (String) The fully qualified name of the view.

Expand Down
2 changes: 2 additions & 0 deletions pkg/materialize/materialized_view.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ type MaterializedViewParams struct {
Comment sql.NullString `db:"comment"`
OwnerName sql.NullString `db:"owner_name"`
Privileges pq.StringArray `db:"privileges"`
CreateSQL sql.NullString `db:"create_sql"`
}

var materializedViewQuery = NewBaseQuery(`
Expand All @@ -100,6 +101,7 @@ var materializedViewQuery = NewBaseQuery(`
mz_clusters.name AS cluster_name,
comments.comment AS comment,
mz_roles.name AS owner_name,
mz_materialized_views.create_sql,
mz_materialized_views.privileges
FROM mz_materialized_views
JOIN mz_schemas
Expand Down
2 changes: 2 additions & 0 deletions pkg/materialize/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ type ViewParams struct {
Comment sql.NullString `db:"comment"`
OwnerName sql.NullString `db:"owner_name"`
Privileges pq.StringArray `db:"privileges"`
CreateSQL sql.NullString `db:"create_sql"`
}

var viewQuery = NewBaseQuery(`
Expand All @@ -70,6 +71,7 @@ var viewQuery = NewBaseQuery(`
mz_databases.name AS database_name,
comments.comment AS comment,
mz_roles.name AS owner_name,
mz_views.create_sql,
mz_views.privileges
FROM mz_views
JOIN mz_schemas
Expand Down
1 change: 1 addition & 0 deletions pkg/provider/acceptance_materialized_view_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ func TestAccMaterializedView_basic(t *testing.T) {
resource.TestCheckResourceAttr("materialize_materialized_view.test", "qualified_sql_name", fmt.Sprintf(`"materialize"."public"."%s"`, viewName)),
resource.TestCheckResourceAttr("materialize_materialized_view.test", "statement", "SELECT 1 AS id"),
resource.TestCheckResourceAttr("materialize_materialized_view.test", "ownership_role", "mz_system"),
resource.TestCheckResourceAttr("materialize_materialized_view.test", "create_sql", fmt.Sprintf(`CREATE MATERIALIZED VIEW "materialize"."public"."%s" IN CLUSTER [u1] WITH (ASSERT NOT NULL = "id", REFRESH = ON COMMIT) AS SELECT 1 AS "id"`, viewName)),
testAccCheckMaterializedViewExists("materialize_materialized_view.test_role"),
resource.TestCheckResourceAttr("materialize_materialized_view.test_role", "name", view2Name),
resource.TestCheckResourceAttr("materialize_materialized_view.test_role", "ownership_role", roleName),
Expand Down
1 change: 1 addition & 0 deletions pkg/provider/acceptance_view_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ func TestAccView_basic(t *testing.T) {
resource.TestCheckResourceAttr("materialize_view.test", "qualified_sql_name", fmt.Sprintf(`"materialize"."public"."%s"`, viewName)),
resource.TestCheckResourceAttr("materialize_view.test", "statement", "SELECT 1 AS id"),
resource.TestCheckResourceAttr("materialize_view.test", "ownership_role", "mz_system"),
resource.TestCheckResourceAttr("materialize_view.test", "create_sql", fmt.Sprintf(`CREATE VIEW "materialize"."public"."%s" AS SELECT 1 AS "id"`, viewName)),
testAccCheckViewExists("materialize_view.test_role"),
resource.TestCheckResourceAttr("materialize_view.test_role", "name", view2Name),
resource.TestCheckResourceAttr("materialize_view.test_role", "ownership_role", roleName),
Expand Down
9 changes: 9 additions & 0 deletions pkg/resources/resource_materialized_view.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ var materializedViewSchema = map[string]*schema.Schema{
Required: true,
ForceNew: true,
},
"create_sql": {
Description: "The SQL statement used to create the materialized view.",
Type: schema.TypeString,
Computed: true,
},
"ownership_role": OwnershipRoleSchema(),
"region": RegionSchema(),
}
Expand Down Expand Up @@ -106,6 +111,10 @@ func materializedViewRead(ctx context.Context, d *schema.ResourceData, meta inte
return diag.FromErr(err)
}

if err := d.Set("create_sql", s.CreateSQL.String); err != nil {
return diag.FromErr(err)
}

return nil
}

Expand Down
9 changes: 9 additions & 0 deletions pkg/resources/resource_view.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ var viewSchema = map[string]*schema.Schema{
Required: true,
ForceNew: true,
},
"create_sql": {
Description: "The SQL statement used to create the view.",
Type: schema.TypeString,
Computed: true,
},
"ownership_role": OwnershipRoleSchema(),
"region": RegionSchema(),
}
Expand Down Expand Up @@ -87,6 +92,10 @@ func viewRead(ctx context.Context, d *schema.ResourceData, meta interface{}) dia
return diag.FromErr(err)
}

if err := d.Set("create_sql", s.CreateSQL.String); err != nil {
return diag.FromErr(err)
}

return nil
}

Expand Down
2 changes: 2 additions & 0 deletions pkg/testhelpers/mock_scans.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@ func MockMaterializeViewScan(mock sqlmock.Sqlmock, predicate string) {
mz_clusters.name AS cluster_name,
comments.comment AS comment,
mz_roles.name AS owner_name,
mz_materialized_views.create_sql,
mz_materialized_views.privileges
FROM mz_materialized_views
JOIN mz_schemas
Expand Down Expand Up @@ -620,6 +621,7 @@ func MockViewScan(mock sqlmock.Sqlmock, predicate string) {
mz_databases.name AS database_name,
comments.comment AS comment,
mz_roles.name AS owner_name,
mz_views.create_sql,
mz_views.privileges
FROM mz_views
JOIN mz_schemas
Expand Down

0 comments on commit 029fbc2

Please sign in to comment.