diff --git a/src/parser.rs b/src/parser.rs index 203b7e3f..5df75d78 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1173,7 +1173,7 @@ impl<'a> Parser<'a> { expr: Box::new(expr), }) } else if Token::LBracket == tok { - if dialect_of!(self is PostgreSqlDialect) { + if dialect_of!(self is PostgreSqlDialect | GenericDialect) { // parse index return self.parse_array_index(expr); } diff --git a/tests/sqlparser_postgres.rs b/tests/sqlparser_postgres.rs index e5dc2095..0106e255 100644 --- a/tests/sqlparser_postgres.rs +++ b/tests/sqlparser_postgres.rs @@ -1137,7 +1137,7 @@ fn parse_array_index_expr() { .collect(); let sql = "SELECT foo[0] FROM foos"; - let select = pg().verified_only_select(sql); + let select = pg_and_generic().verified_only_select(sql); assert_eq!( &Expr::ArrayIndex { obj: Box::new(Expr::Identifier(Ident::new("foo"))), @@ -1147,7 +1147,7 @@ fn parse_array_index_expr() { ); let sql = "SELECT foo[0][0] FROM foos"; - let select = pg().verified_only_select(sql); + let select = pg_and_generic().verified_only_select(sql); assert_eq!( &Expr::ArrayIndex { obj: Box::new(Expr::Identifier(Ident::new("foo"))), @@ -1157,7 +1157,7 @@ fn parse_array_index_expr() { ); let sql = r#"SELECT bar[0]["baz"]["fooz"] FROM foos"#; - let select = pg().verified_only_select(sql); + let select = pg_and_generic().verified_only_select(sql); assert_eq!( &Expr::ArrayIndex { obj: Box::new(Expr::Identifier(Ident::new("bar"))), @@ -1177,7 +1177,7 @@ fn parse_array_index_expr() { ); let sql = "SELECT (CAST(ARRAY[ARRAY[2, 3]] AS INT[][]))[1][2]"; - let select = pg().verified_only_select(sql); + let select = pg_and_generic().verified_only_select(sql); assert_eq!( &Expr::ArrayIndex { obj: Box::new(Expr::Nested(Box::new(Expr::Cast {