Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions Cargo.lock

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

2 changes: 1 addition & 1 deletion crates/squawk_parser/src/grammar.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8674,7 +8674,7 @@ fn create_materialized_view(p: &mut Parser<'_>) -> CompletedMarker {
// A SELECT, TABLE, or VALUES command.
let statement = stmt(p, &StmtRestrictions::default());
match statement.map(|x| x.kind()) {
Some(SELECT | SELECT_INTO | COMPOUND_SELECT | TABLE | VALUES) => (),
Some(SELECT | SELECT_INTO | COMPOUND_SELECT | PAREN_SELECT | TABLE | VALUES) => (),
Some(kind) => {
p.error(format!(
"expected SELECT, TABLE, or VALUES statement, got {kind:?}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,9 @@ create materialized view t
create materialized view t
as values (1), (2, 2);

-- https://github.com/sbdchd/squawk/issues/646
CREATE MATERIALIZED VIEW "public"."user_countries_view"
AS (
select distinct "client_id", "address"->>'country' as "country"
from "users" where "users"."address"->>'country' IS NOT NULL
);
Original file line number Diff line number Diff line change
Expand Up @@ -202,3 +202,92 @@ SOURCE_FILE
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n\n"
COMMENT "-- https://github.com/sbdchd/squawk/issues/646"
WHITESPACE "\n"
CREATE_MATERIALIZED_VIEW
CREATE_KW "CREATE"
WHITESPACE " "
MATERIALIZED_KW "MATERIALIZED"
WHITESPACE " "
VIEW_KW "VIEW"
WHITESPACE " "
PATH
PATH
PATH_SEGMENT
NAME_REF
IDENT "\"public\""
DOT "."
PATH_SEGMENT
NAME
IDENT "\"user_countries_view\""
WHITESPACE " \n"
AS_KW "AS"
WHITESPACE " "
PAREN_SELECT
L_PAREN "("
WHITESPACE "\n "
SELECT
SELECT_CLAUSE
SELECT_KW "select"
WHITESPACE " "
DISTINCT_CLAUSE
DISTINCT_KW "distinct"
WHITESPACE " "
TARGET_LIST
TARGET
NAME_REF
IDENT "\"client_id\""
COMMA ","
WHITESPACE " "
TARGET
BIN_EXPR
NAME_REF
IDENT "\"address\""
CUSTOM_OP
MINUS "-"
R_ANGLE ">"
R_ANGLE ">"
LITERAL
STRING "'country'"
WHITESPACE " "
AS_KW "as"
WHITESPACE " "
NAME
IDENT "\"country\""
WHITESPACE " \n "
FROM_CLAUSE
FROM_KW "from"
WHITESPACE " "
FROM_ITEM
NAME_REF
IDENT "\"users\""
WHITESPACE " "
WHERE_CLAUSE
WHERE_KW "where"
WHITESPACE " "
BIN_EXPR
BIN_EXPR
FIELD_EXPR
NAME_REF
IDENT "\"users\""
DOT "."
NAME_REF
IDENT "\"address\""
CUSTOM_OP
MINUS "-"
R_ANGLE ">"
R_ANGLE ">"
LITERAL
STRING "'country'"
WHITESPACE " "
IS_NOT
IS_KW "IS"
WHITESPACE " "
NOT_KW "NOT"
WHITESPACE " "
LITERAL
NULL_KW "NULL"
WHITESPACE "\n"
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
Loading