Skip to content

Commit

Permalink
feat: trino array improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
benfdking committed Feb 8, 2025
1 parent 75ac84a commit 072bdd7
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 1 deletion.
4 changes: 3 additions & 1 deletion crates/lib-dialects/src/trino.rs
Original file line number Diff line number Diff line change
Expand Up @@ -458,9 +458,11 @@ pub fn dialect() -> Dialect {
config.optional();
})
]),
Ref::keyword("ARRAY"),
// Structural
Ref::new("ArrayTypeSegment"),
Ref::keyword("MAP"),
Ref::new("RowTypeSegment"),
// Others
Ref::keyword("IPADDRESS"),
Ref::keyword("UUID")
])
Expand Down
6 changes: 6 additions & 0 deletions crates/lib-dialects/test/fixtures/dialects/trino/array.sql
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,9 @@ SELECT FILTER(ARRAY[5, -6, NULL, 7], x -> x > 0);
SELECT ANY_MATCH(ARRAY[5, -6, NULL, 7], x -> x > 0);

SELECT ELEMENT_AT(ARRAY['apple', 'banana', 'orange'], 2);

SELECT CAST(ARRAY[1,2] AS ARRAY<DOUBLE>);

SELECT CAST(ARRAY[1,2] AS ARRAY(DOUBLE));

SELECT CAST(JSON_PARSE('[1, 2, 3, 4, 5]') AS ARRAY<DOUBLE>);
90 changes: 90 additions & 0 deletions crates/lib-dialects/test/fixtures/dialects/trino/array.yml
Original file line number Diff line number Diff line change
Expand Up @@ -188,3 +188,93 @@ file:
- numeric_literal: '2'
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- typed_array_literal:
- array_type:
- keyword: ARRAY
- array_literal:
- start_square_bracket: '['
- numeric_literal: '1'
- comma: ','
- numeric_literal: '2'
- end_square_bracket: ']'
- keyword: AS
- data_type:
- array_type:
- keyword: ARRAY
- start_angle_bracket: <
- data_type:
- keyword: DOUBLE
- end_angle_bracket: '>'
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- typed_array_literal:
- array_type:
- keyword: ARRAY
- array_literal:
- start_square_bracket: '['
- numeric_literal: '1'
- comma: ','
- numeric_literal: '2'
- end_square_bracket: ']'
- keyword: AS
- data_type:
- array_type:
- keyword: ARRAY
- bracketed:
- start_bracket: (
- data_type:
- keyword: DOUBLE
- end_bracket: )
- end_bracket: )
- statement_terminator: ;
- statement:
- select_statement:
- select_clause:
- keyword: SELECT
- select_clause_element:
- function:
- function_name:
- function_name_identifier: CAST
- bracketed:
- start_bracket: (
- expression:
- function:
- function_name:
- function_name_identifier: JSON_PARSE
- bracketed:
- start_bracket: (
- expression:
- quoted_literal: '''[1, 2, 3, 4, 5]'''
- end_bracket: )
- keyword: AS
- data_type:
- array_type:
- keyword: ARRAY
- start_angle_bracket: <
- data_type:
- keyword: DOUBLE
- end_angle_bracket: '>'
- end_bracket: )
- statement_terminator: ;

0 comments on commit 072bdd7

Please sign in to comment.