Skip to content

Commit 759bf70

Browse files
committed
Fix OFFSET() formatting for BigQuery
1 parent 1ba99b1 commit 759bf70

2 files changed

Lines changed: 3 additions & 4 deletions

File tree

src/languages/bigquery.formatter.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -867,14 +867,14 @@ function postProcess(tokens: Token[]): Token[] {
867867
return detectArraySubscripts(combineParameterizedTypes(tokens));
868868
}
869869

870-
// Converts OFFSET token inside array from RESERVED_COMMAND to RESERVED_KEYWORD
870+
// Converts OFFSET token inside array from RESERVED_COMMAND to RESERVED_FUNCTION_NAME
871871
// See: https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#array_subscript_operator
872872
function detectArraySubscripts(tokens: Token[]) {
873873
let prevToken = EOF_TOKEN;
874874
return tokens.map(token => {
875875
if (token.value === 'OFFSET' && prevToken.value === '[') {
876876
prevToken = token;
877-
return { ...token, type: TokenType.RESERVED_KEYWORD };
877+
return { ...token, type: TokenType.RESERVED_FUNCTION_NAME };
878878
} else {
879879
prevToken = token;
880880
return token;

test/bigquery.test.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ describe('BigQueryFormatter', () => {
180180
});
181181

182182
// Regression test for issue #243
183-
// TODO: Incorrect formatting of OFFSET()
184183
it('supports array subscript operator', () => {
185184
expect(
186185
format(`
@@ -192,7 +191,7 @@ describe('BigQueryFormatter', () => {
192191
`)
193192
).toBe(dedent`
194193
SELECT
195-
item_array[OFFSET (1)] AS item_offset,
194+
item_array[OFFSET(1)] AS item_offset,
196195
item_array[ORDINAL(1)] AS item_ordinal,
197196
item_array[SAFE_OFFSET(6)] AS item_safe_offset,
198197
item_array[SAFE_ORDINAL(6)] AS item_safe_ordinal

0 commit comments

Comments
 (0)