From 7b7f1f443a8beb401c10b4cd63ad515d1f1ddf5f Mon Sep 17 00:00:00 2001 From: Matthias Queitsch Date: Thu, 6 Jun 2024 21:42:34 +0200 Subject: [PATCH 1/2] add: `ALTER COLUMN` `SET` variations --- grammar.js | 34 ++++++++++- test/corpus/alter.txt | 131 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+), 2 deletions(-) diff --git a/grammar.js b/grammar.js index 8ce538e..99f5722 100644 --- a/grammar.js +++ b/grammar.js @@ -261,6 +261,11 @@ module.exports = grammar({ keyword_header: _ => make_keyword("header"), keyword_match: _ => make_keyword("match"), keyword_program: _ => make_keyword("program"), + keyword_plain: _ => make_keyword("plain"), + keyword_extended: _ => make_keyword("extended"), + keyword_main: _ => make_keyword("main"), + keyword_storage: _ => make_keyword("storage"), + keyword_compression: _ => make_keyword("compression"), keyword_trigger: _ => make_keyword('trigger'), keyword_function: _ => make_keyword("function"), @@ -1725,8 +1730,33 @@ module.exports = grammar({ ), seq( $.keyword_set, - $.keyword_default, - $._expression, + choice( + seq( + $.keyword_statistics, + field('statistics', $._integer) + ), + seq( + $.keyword_storage, + choice( + $.keyword_plain, + $.keyword_external, + $.keyword_extended, + $.keyword_main, + $.keyword_default, + ), + ), + seq( + $.keyword_compression, + field('compression_method', $._identifier) + ), + seq( + paren_list($._key_value_pair, true), + ), + seq( + $.keyword_default, + $._expression, + ), + ) ), seq( $.keyword_drop, diff --git a/test/corpus/alter.txt b/test/corpus/alter.txt index 6ee401e..05f7ccb 100644 --- a/test/corpus/alter.txt +++ b/test/corpus/alter.txt @@ -1199,3 +1199,134 @@ ALTER TABLE table_name (identifier)) (column (identifier)))))))) + + +================================================================================ +Alter Column Set Storage +================================================================================ + +ALTER TABLE table_name + ALTER COLUMN col1 SET STORAGE PLAIN; +ALTER TABLE table_name + ALTER COLUMN col1 SET STORAGE EXTERNAL; +ALTER TABLE table_name + ALTER COLUMN col1 SET STORAGE EXTENDED; +ALTER TABLE table_name + ALTER COLUMN col1 SET STORAGE MAIN; +ALTER TABLE table_name + ALTER COLUMN col1 SET STORAGE DEFAULT; + +-------------------------------------------------------------------------------- + +(program + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_storage) + (keyword_plain)))) + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_storage) + (keyword_external)))) + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_storage) + (keyword_extended)))) + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_storage) + (keyword_main)))) + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_storage) + (keyword_default))))) + +================================================================================ +Alter Column Set Compression +================================================================================ + +ALTER TABLE table_name + ALTER COLUMN col1 SET COMPRESSION lz4; + +-------------------------------------------------------------------------------- + +(program + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_compression))))) + +================================================================================ +Alter Column Set Statistics +================================================================================ + +ALTER TABLE table_name + ALTER COLUMN col1 SET STATISTICS 100; + +-------------------------------------------------------------------------------- + +(program + (statement + (alter_table + (keyword_alter) + (keyword_table) + (object_reference + (identifier)) + (alter_column + (keyword_alter) + (keyword_column) + (identifier) + (keyword_set) + (keyword_statistics))))) From 6bca30d8e27035b9b515b803989d4d3dcdf614ab Mon Sep 17 00:00:00 2001 From: Matthias Queitsch Date: Thu, 6 Jun 2024 22:17:11 +0200 Subject: [PATCH 2/2] add: keywords to query.scm --- queries/highlights.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/queries/highlights.scm b/queries/highlights.scm index 2ed3bdd..c152913 100644 --- a/queries/highlights.scm +++ b/queries/highlights.scm @@ -317,6 +317,11 @@ (keyword_program) (keyword_quote) (keyword_stdin) + (keyword_extended) + (keyword_main) + (keyword_plain) + (keyword_storage) + (keyword_compression) ] @keyword [