Fix panic with GRANT/REVOKE in CONNECT, CREATE, EXECUTE or TEMPORARY (#401)

* fix inconsistency between parse_grant_permissions and matched keywords

* Make it clear the error is an internal problem

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
This commit is contained in:
Evgeny 2022-02-08 17:50:55 +02:00 committed by GitHub
parent c4cbc8340a
commit 8a3544abae
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 17 deletions

View file

@ -3898,7 +3898,7 @@ fn parse_drop_index() {
#[test]
fn parse_grant() {
let sql = "GRANT SELECT, INSERT, UPDATE (shape, size), USAGE, DELETE, TRUNCATE, REFERENCES, TRIGGER ON abc, def TO xyz, m WITH GRANT OPTION GRANTED BY jj";
let sql = "GRANT SELECT, INSERT, UPDATE (shape, size), USAGE, DELETE, TRUNCATE, REFERENCES, TRIGGER, CONNECT, CREATE, EXECUTE, TEMPORARY ON abc, def TO xyz, m WITH GRANT OPTION GRANTED BY jj";
match verified_stmt(sql) {
Statement::Grant {
privileges,
@ -3930,6 +3930,10 @@ fn parse_grant() {
Action::Truncate,
Action::References { columns: None },
Action::Trigger,
Action::Connect,
Action::Create,
Action::Execute,
Action::Temporary,
],
actions
);