Skip to content

Commit 4ed0fc0

Browse files
committed
rebase
1 parent d7e2353 commit 4ed0fc0

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

crates/codegen/src/get_node_properties.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,19 @@ fn custom_handlers(node: &Node) -> TokenStream {
664664
_ => panic!("Unknown IndexElem {:#?}", n.nulls_ordering()),
665665
}
666666
},
667+
"DefineStmt" => quote! {
668+
tokens.push(TokenProperty::from(Token::Create));
669+
if n.replace {
670+
tokens.push(TokenProperty::from(Token::Or));
671+
tokens.push(TokenProperty::from(Token::Replace));
672+
}
673+
match n.kind() {
674+
protobuf::ObjectType::ObjectOperator => {
675+
tokens.push(TokenProperty::from(Token::Operator));
676+
},
677+
_ => todo!("Unknown DefineStmt {:#?}", n.kind())
678+
}
679+
},
667680
_ => quote! {},
668681
}
669682
}

crates/parser/src/codegen.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,4 +224,21 @@ mod tests {
224224
],
225225
)
226226
}
227+
228+
#[test]
229+
fn test_create_operator() {
230+
test_get_node_properties(
231+
"create operator + (
232+
procedure = plusfunc,
233+
leftarg = int4,
234+
rightarg = int4
235+
);",
236+
SyntaxKind::DefineStmt,
237+
vec![
238+
TokenProperty::from(SyntaxKind::Create),
239+
TokenProperty::from(SyntaxKind::Operator),
240+
TokenProperty::from("+".to_string()),
241+
],
242+
)
243+
}
227244
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CREATE OPERATOR + (procedure = plusfunc);
2+
CREATE OPERATOR + (procedure = plusfunc, leftarg = int4, rightarg = int4);
3+
CREATE OPERATOR + (procedure = plusfunc, hashes, merges);

0 commit comments

Comments
 (0)