File tree 3 files changed +36
-0
lines changed
tests/data/statements/valid
3 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -683,6 +683,21 @@ fn custom_handlers(node: &Node) -> TokenStream {
683
683
tokens. push( TokenProperty :: from( Token :: Create ) ) ;
684
684
tokens. push( TokenProperty :: from( Token :: TypeP ) ) ;
685
685
} ,
686
+ "CreatedbStmt" => quote ! {
687
+ tokens. push( TokenProperty :: from( Token :: Create ) ) ;
688
+ tokens. push( TokenProperty :: from( Token :: Database ) ) ;
689
+ for option in & n. options {
690
+ if let Some ( NodeEnum :: DefElem ( node) ) = & option. node {
691
+ if node. defname == "location" {
692
+ tokens. push( TokenProperty :: from( Token :: Default ) ) ;
693
+ }
694
+ if node. defname == "connection_limit" {
695
+ tokens. push( TokenProperty :: from( Token :: Limit ) ) ;
696
+ tokens. push( TokenProperty :: from( Token :: Iconst ) ) ;
697
+ }
698
+ }
699
+ }
700
+ } ,
686
701
_ => quote ! { } ,
687
702
}
688
703
}
Original file line number Diff line number Diff line change @@ -268,4 +268,19 @@ mod tests {
268
268
] ,
269
269
)
270
270
}
271
+
272
+ #[ test]
273
+ fn test_create_database ( ) {
274
+ test_get_node_properties (
275
+ "create database x owner abc connection limit 5;" ,
276
+ SyntaxKind :: CreatedbStmt ,
277
+ vec ! [
278
+ TokenProperty :: from( SyntaxKind :: Create ) ,
279
+ TokenProperty :: from( SyntaxKind :: Database ) ,
280
+ TokenProperty :: from( SyntaxKind :: Limit ) ,
281
+ TokenProperty :: from( SyntaxKind :: Iconst ) ,
282
+ TokenProperty :: from( "x" . to_string( ) ) ,
283
+ ] ,
284
+ )
285
+ }
271
286
}
Original file line number Diff line number Diff line change
1
+ CREATE DATABASE x OWNER abc CONNECTION LIMIT 5 ;
2
+ CREATE DATABASE x ENCODING \" SQL_ASCII\" ;
3
+ CREATE DATABASE x LC_COLLATE \" en_US.UTF-8\" ;
4
+ CREATE DATABASE x LOCATION DEFAULT;
5
+ CREATE DATABASE x TABLESPACE abc;
6
+ CREATE DATABASE x TEMPLATE TRUE;
You can’t perform that action at this time.
0 commit comments