Skip to content

Commit f62cb26

Browse files
committed
Support for parsing REFRESH MATERIALIZED VIEW
The engine already understood it, just had to teach the compiler. closes sqlc-dev#2264
1 parent f086636 commit f62cb26

File tree

12 files changed

+165
-1
lines changed

12 files changed

+165
-1
lines changed

internal/compiler/output_columns.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (c *Compiler) outputColumns(qc *QueryCatalog, node ast.Node) ([]*Column, er
115115
}
116116
case *ast.CallStmt:
117117
targets = &ast.List{}
118-
case *ast.TruncateStmt:
118+
case *ast.TruncateStmt, *ast.RefreshMatViewStmt:
119119
targets = &ast.List{}
120120
case *ast.UpdateStmt:
121121
targets = n.ReturningList
@@ -480,6 +480,11 @@ func (c *Compiler) sourceTables(qc *QueryCatalog, node ast.Node) ([]*Table, erro
480480
_, ok := node.(*ast.RangeVar)
481481
return ok
482482
})
483+
case *ast.RefreshMatViewStmt:
484+
list = astutils.Search(n.Relation, func(node ast.Node) bool {
485+
_, ok := node.(*ast.RangeVar)
486+
return ok
487+
})
483488
case *ast.UpdateStmt:
484489
list = &ast.List{
485490
Items: append(n.FromClause.Items, n.Relations.Items...),

internal/compiler/parse.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ func (c *Compiler) parseQuery(stmt ast.Node, src string, o opts.Parser) (*Query,
5050
}
5151
case *ast.TruncateStmt:
5252
case *ast.UpdateStmt:
53+
case *ast.RefreshMatViewStmt:
5354
default:
5455
return nil, ErrUnsupportedStatementType
5556
}

internal/endtoend/testdata/refreshmatview/postgresql/pgx/v4/go/db.go

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/refreshmatview/postgresql/pgx/v4/go/models.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/refreshmatview/postgresql/pgx/v4/go/query.sql.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CREATE MATERIALIZED VIEW myview AS (SELECT 1);
2+
3+
-- name: Refresh :exec
4+
REFRESH MATERIALIZED VIEW myview;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"path": "go",
6+
"engine": "postgresql",
7+
"sql_package": "pgx/v4",
8+
"name": "querytest",
9+
"schema": "query.sql",
10+
"queries": "query.sql",
11+
}
12+
]
13+
}

internal/endtoend/testdata/refreshmatview/postgresql/pgx/v5/go/db.go

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/refreshmatview/postgresql/pgx/v5/go/models.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/endtoend/testdata/refreshmatview/postgresql/pgx/v5/go/query.sql.go

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CREATE MATERIALIZED VIEW myview AS (SELECT 1);
2+
3+
-- name: Refresh :exec
4+
REFRESH MATERIALIZED VIEW myview;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": "1",
3+
"packages": [
4+
{
5+
"path": "go",
6+
"engine": "postgresql",
7+
"sql_package": "pgx/v5",
8+
"name": "querytest",
9+
"schema": "query.sql",
10+
"queries": "query.sql",
11+
}
12+
]
13+
}

0 commit comments

Comments
 (0)