@@ -3083,6 +3083,7 @@ fn test_parentheses_overflow() {
30833083#[ test]
30843084fn test_show_databases ( ) {
30853085 snowflake ( ) . verified_stmt ( "SHOW DATABASES" ) ;
3086+ snowflake ( ) . verified_stmt ( "SHOW TERSE DATABASES" ) ;
30863087 snowflake ( ) . verified_stmt ( "SHOW DATABASES HISTORY" ) ;
30873088 snowflake ( ) . verified_stmt ( "SHOW DATABASES LIKE '%abc%'" ) ;
30883089 snowflake ( ) . verified_stmt ( "SHOW DATABASES STARTS WITH 'demo_db'" ) ;
@@ -3095,6 +3096,7 @@ fn test_show_databases() {
30953096#[ test]
30963097fn test_parse_show_schemas ( ) {
30973098 snowflake ( ) . verified_stmt ( "SHOW SCHEMAS" ) ;
3099+ snowflake ( ) . verified_stmt ( "SHOW TERSE SCHEMAS" ) ;
30983100 snowflake ( ) . verified_stmt ( "SHOW SCHEMAS IN ACCOUNT" ) ;
30993101 snowflake ( ) . verified_stmt ( "SHOW SCHEMAS IN ACCOUNT abc" ) ;
31003102 snowflake ( ) . verified_stmt ( "SHOW SCHEMAS IN DATABASE" ) ;
@@ -3104,9 +3106,51 @@ fn test_parse_show_schemas() {
31043106 snowflake ( ) . verified_stmt ( "SHOW SCHEMAS IN DATABASE STARTS WITH 'abc' LIMIT 20 FROM 'xyz'" ) ;
31053107}
31063108
3109+ #[ test]
3110+ fn test_parse_show_objects ( ) {
3111+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS" ) ;
3112+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS IN abc" ) ;
3113+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS LIKE '%test%' IN abc" ) ;
3114+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS IN ACCOUNT" ) ;
3115+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS IN DATABASE" ) ;
3116+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS IN DATABASE abc" ) ;
3117+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS IN SCHEMA" ) ;
3118+ snowflake ( ) . verified_stmt ( "SHOW OBJECTS IN SCHEMA abc" ) ;
3119+ snowflake ( ) . verified_stmt ( "SHOW TERSE OBJECTS" ) ;
3120+ snowflake ( ) . verified_stmt ( "SHOW TERSE OBJECTS IN abc" ) ;
3121+ snowflake ( ) . verified_stmt ( "SHOW TERSE OBJECTS LIKE '%test%' IN abc" ) ;
3122+ snowflake ( ) . verified_stmt ( "SHOW TERSE OBJECTS LIKE '%test%' IN abc STARTS WITH 'b'" ) ;
3123+ snowflake ( ) . verified_stmt ( "SHOW TERSE OBJECTS LIKE '%test%' IN abc STARTS WITH 'b' LIMIT 10" ) ;
3124+ snowflake ( )
3125+ . verified_stmt ( "SHOW TERSE OBJECTS LIKE '%test%' IN abc STARTS WITH 'b' LIMIT 10 FROM 'x'" ) ;
3126+ match snowflake ( ) . verified_stmt ( "SHOW TERSE OBJECTS LIKE '%test%' IN abc" ) {
3127+ Statement :: ShowObjects ( ShowObjects {
3128+ terse,
3129+ show_options,
3130+ } ) => {
3131+ assert ! ( terse) ;
3132+ let name = match show_options. show_in {
3133+ Some ( ShowStatementIn {
3134+ parent_name : Some ( val) ,
3135+ ..
3136+ } ) => val. to_string ( ) ,
3137+ _ => unreachable ! ( ) ,
3138+ } ;
3139+ assert_eq ! ( "abc" , name) ;
3140+ let like = match show_options. filter_position {
3141+ Some ( ShowStatementFilterPosition :: Infix ( ShowStatementFilter :: Like ( val) ) ) => val,
3142+ _ => unreachable ! ( ) ,
3143+ } ;
3144+ assert_eq ! ( "%test%" , like) ;
3145+ }
3146+ _ => unreachable ! ( ) ,
3147+ }
3148+ }
3149+
31073150#[ test]
31083151fn test_parse_show_tables ( ) {
31093152 snowflake ( ) . verified_stmt ( "SHOW TABLES" ) ;
3153+ snowflake ( ) . verified_stmt ( "SHOW TERSE TABLES" ) ;
31103154 snowflake ( ) . verified_stmt ( "SHOW TABLES IN ACCOUNT" ) ;
31113155 snowflake ( ) . verified_stmt ( "SHOW TABLES IN DATABASE" ) ;
31123156 snowflake ( ) . verified_stmt ( "SHOW TABLES IN DATABASE xyz" ) ;
@@ -3129,6 +3173,7 @@ fn test_parse_show_tables() {
31293173#[ test]
31303174fn test_show_views ( ) {
31313175 snowflake ( ) . verified_stmt ( "SHOW VIEWS" ) ;
3176+ snowflake ( ) . verified_stmt ( "SHOW TERSE VIEWS" ) ;
31323177 snowflake ( ) . verified_stmt ( "SHOW VIEWS IN ACCOUNT" ) ;
31333178 snowflake ( ) . verified_stmt ( "SHOW VIEWS IN DATABASE" ) ;
31343179 snowflake ( ) . verified_stmt ( "SHOW VIEWS IN DATABASE xyz" ) ;
0 commit comments