Skip to content

Commit 87213dd

Browse files
committed
feat(grammar): postgres row level security
Support [ENABLE / DISABLE / FORCE / NO FORCE] ROW LEVEL SECURITY #345
1 parent ebf08ba commit 87213dd

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed

grammar.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,8 @@ module.exports = grammar({
147147
keyword_or: _ => make_keyword("or"),
148148
keyword_is: _ => make_keyword("is"),
149149
keyword_not: _ => make_keyword("not"),
150+
keyword_enable: _ => make_keyword("enable"),
151+
keyword_disable: _ => make_keyword("disable"),
150152
keyword_force: _ => make_keyword("force"),
151153
keyword_ignore: _ => make_keyword("ignore"),
152154
keyword_using: _ => make_keyword("using"),
@@ -1793,6 +1795,16 @@ module.exports = grammar({
17931795
)
17941796
)
17951797
),
1798+
seq(
1799+
choice(
1800+
$.keyword_enable,
1801+
$.keyword_disable,
1802+
seq(optional($.keyword_no), $.keyword_force),
1803+
),
1804+
$.keyword_row,
1805+
$.keyword_level,
1806+
$.keyword_security,
1807+
),
17961808
),
17971809
),
17981810

test/corpus/alter.txt

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,91 @@ ALTER TABLE my_table
426426
(keyword_schema)
427427
schema: (identifier)))))
428428

429+
================================================================================
430+
Postgres: Alter table and enable row level security
431+
================================================================================
432+
433+
ALTER TABLE my_table
434+
ENABLE ROW LEVEL SECURITY;
435+
436+
--------------------------------------------------------------------------------
437+
438+
(program
439+
(statement
440+
(alter_table
441+
(keyword_alter)
442+
(keyword_table)
443+
(object_reference
444+
name: (identifier))
445+
(keyword_enable)
446+
(keyword_row)
447+
(keyword_level)
448+
(keyword_security))))
449+
450+
================================================================================
451+
Postgres: Alter table and disable row level security
452+
================================================================================
453+
454+
ALTER TABLE my_table
455+
DISABLE ROW LEVEL SECURITY;
456+
457+
--------------------------------------------------------------------------------
458+
459+
(program
460+
(statement
461+
(alter_table
462+
(keyword_alter)
463+
(keyword_table)
464+
(object_reference
465+
name: (identifier))
466+
(keyword_disable)
467+
(keyword_row)
468+
(keyword_level)
469+
(keyword_security))))
470+
471+
================================================================================
472+
Postgres: Alter table and force row level security
473+
================================================================================
474+
475+
ALTER TABLE my_table
476+
FORCE ROW LEVEL SECURITY;
477+
478+
--------------------------------------------------------------------------------
479+
480+
(program
481+
(statement
482+
(alter_table
483+
(keyword_alter)
484+
(keyword_table)
485+
(object_reference
486+
name: (identifier))
487+
(keyword_force)
488+
(keyword_row)
489+
(keyword_level)
490+
(keyword_security))))
491+
492+
================================================================================
493+
Postgres: Alter table and no force row level security
494+
================================================================================
495+
496+
ALTER TABLE my_table
497+
NO FORCE ROW LEVEL SECURITY;
498+
499+
--------------------------------------------------------------------------------
500+
501+
(program
502+
(statement
503+
(alter_table
504+
(keyword_alter)
505+
(keyword_table)
506+
(object_reference
507+
name: (identifier))
508+
(keyword_no)
509+
(keyword_force)
510+
(keyword_row)
511+
(keyword_level)
512+
(keyword_security))))
513+
429514
================================================================================
430515
Alter table and change owner
431516
================================================================================

0 commit comments

Comments
 (0)