|
36 | 36 | | useStmt
|
37 | 37 | | watchStmt
|
38 | 38 | | ctes? selectStmt
|
| 39 | + | grantStmt |
39 | 40 | ;
|
40 | 41 |
|
41 | 42 | // CTE statement
|
@@ -148,8 +149,12 @@ createStmt
|
148 | 149 | validUntilClause?
|
149 | 150 | (DEFAULT ROLE identifier (COMMA identifier)*)?
|
150 | 151 | (DEFAULT DATABASE identifier | NONE)?
|
151 |
| - |
152 | 152 | settingsClause? #CreateUserStmt
|
| 153 | + | CREATE ROLE (IF NOT EXISTS | OR REPLACE)? identifier (COMMA identifier)* clusterClause? |
| 154 | + (IN identifier)? settingsClause? #CreateRoleStmt |
| 155 | + | CREATE (ROW)? POLICY (IF NOT EXISTS | OR REPLACE)? identifier clusterClause? ON tableIdentifier |
| 156 | + (IN identifier)? (AS (PERMISSIVE | RESTRICTIVE))? (FOR SELECT)? USING columnExpr |
| 157 | + (TO identifier | ALL | ALL EXCEPT identifier)? # CreatePolicyStmt |
153 | 158 | ;
|
154 | 159 |
|
155 | 160 | userIdentifier
|
@@ -328,7 +333,7 @@ describeStmt
|
328 | 333 |
|
329 | 334 | dropStmt
|
330 | 335 | : (DETACH | DROP) DATABASE (IF EXISTS)? databaseIdentifier clusterClause? # DropDatabaseStmt
|
331 |
| - | (DETACH | DROP) (DICTIONARY | TEMPORARY? TABLE | VIEW) (IF EXISTS)? tableIdentifier clusterClause? ( |
| 336 | + | (DETACH | DROP) (DICTIONARY | TEMPORARY? TABLE | VIEW | ROLE | USER) (IF EXISTS)? tableIdentifier clusterClause? ( |
332 | 337 | NO DELAY
|
333 | 338 | )? # DropTableStmt
|
334 | 339 | ;
|
@@ -372,7 +377,7 @@ assignmentValue
|
372 | 377 | : literal # InsertRawValue
|
373 | 378 | | QUERY # InsertParameter
|
374 | 379 | | identifier (LPAREN columnExprList? RPAREN)? # InsertParameterFuncExpr
|
375 |
| - |
| 380 | + | LPAREN columnExpr RPAREN # InserParameterExpr |
376 | 381 | ;
|
377 | 382 |
|
378 | 383 | // KILL statement
|
@@ -571,13 +576,245 @@ setStmt
|
571 | 576 | // SET ROLE statement
|
572 | 577 |
|
573 | 578 | setRoleStmt
|
574 |
| - : SET (DEFAULT)? ROLE (setRolesList | NONE | ALL (EXCEPT setRolesList)) TO identifier | CURRENT_USER (COMMA identifier | CURRENT_USER)* |
| 579 | + : SET (DEFAULT)? ROLE (setRolesList | NONE | ALL (EXCEPT setRolesList)) (TO identifier | CURRENT_USER (COMMA identifier | CURRENT_USER)*)? |
575 | 580 | ;
|
576 | 581 |
|
577 | 582 | setRolesList
|
578 | 583 | : identifier (COMMA identifier)*
|
579 | 584 | ;
|
580 | 585 |
|
| 586 | +grantStmt |
| 587 | + : GRANT clusterClause? ((privilege ON grantTableIdentifier) | (identifier (COMMA identifier)*)) |
| 588 | + TO (CURRENT_USER | identifier) (COMMA identifier)* |
| 589 | + (WITH GRANT OPTION)? (WITH REPLACE OPTION)? |
| 590 | + ; |
| 591 | + |
| 592 | +grantTableIdentifier |
| 593 | + : (identifier DOT)? identifier |
| 594 | + | (identifier DOT)? ASTERISK |
| 595 | + | (ASTERISK DOT)? identifier |
| 596 | + | (ASTERISK DOT)? ASTERISK |
| 597 | + ; |
| 598 | + |
| 599 | +privilege |
| 600 | + : |
| 601 | + | ACCESS MANAGEMENT |
| 602 | + | ALLOW SQL SECURITY NONE |
| 603 | + | ROLE ADMIN |
| 604 | + | TABLE ENGINE |
| 605 | + | TRUNCATE |
| 606 | + | UNDROP TABLE |
| 607 | + | NONE |
| 608 | + | BACKUP |
| 609 | + | CLUSTER |
| 610 | + | INSERT |
| 611 | + | INTROSPECTION |
| 612 | + | KILL QUERY |
| 613 | + | KILL TRANSACTION |
| 614 | + | MOVE PARTITION BETWEEN SHARDS |
| 615 | + | NAMED COLLECTION ADMIN |
| 616 | + | ALTER NAMED COLLECTION |
| 617 | + | CREATE NAMED COLLECTION |
| 618 | + | NAMED COLLECTION |
| 619 | + | OPTIMIZE |
| 620 | + | SELECT |
| 621 | + | SET DEFINER |
| 622 | + | alterPrivilege |
| 623 | + | createPrivilege |
| 624 | + | dropPrivilege |
| 625 | + | showPrivilege |
| 626 | + | sourcePrivilege |
| 627 | + | systemPrivilege |
| 628 | + ; |
| 629 | + |
| 630 | +alterPrivilege |
| 631 | + : |
| 632 | + | ALTER QUOTA |
| 633 | + | ALTER ROLE |
| 634 | + | ALTER ROW POLICY |
| 635 | + | ALTER SETTINGS PROFILE |
| 636 | + | ALTER USER |
| 637 | + | ALTER |
| 638 | + | ALTER DATABASE |
| 639 | + | ALTER DATABASE SETTINGS |
| 640 | + | ALTER TABLE |
| 641 | + | ALTER COLUMN |
| 642 | + | ALTER ADD COLUMN |
| 643 | + | ALTER CLEAR COLUMN |
| 644 | + | ALTER COMMENT COLUMN |
| 645 | + | ALTER DROP COLUMN |
| 646 | + | ALTER MATERIALIZE COLUMN |
| 647 | + | ALTER MODIFY COLUMN |
| 648 | + | ALTER RENAME COLUMN |
| 649 | + | ALTER CONSTRAINT |
| 650 | + | ALTER ADD CONSTRAINT |
| 651 | + | ALTER DROP CONSTRAINT |
| 652 | + | ALTER DELETE |
| 653 | + | ALTER FETCH PARTITION |
| 654 | + | ALTER FREEZE PARTITION |
| 655 | + | ALTER INDEX |
| 656 | + | ALTER ADD INDEX |
| 657 | + | ALTER CLEAR INDEX |
| 658 | + | ALTER DROP INDEX |
| 659 | + | ALTER MATERIALIZE INDEX |
| 660 | + | ALTER ORDER BY |
| 661 | + | ALTER SAMPLE BY |
| 662 | + | ALTER MATERIALIZE TTL |
| 663 | + | ALTER MODIFY COMMENT |
| 664 | + | ALTER MOVE PARTITION |
| 665 | + | ALTER PROJECTION |
| 666 | + | ALTER SETTINGS |
| 667 | + | ALTER STATISTICS |
| 668 | + | ALTER ADD STATISTICS |
| 669 | + | ALTER DROP STATISTICS |
| 670 | + | ALTER MATERIALIZE STATISTICS |
| 671 | + | ALTER MODIFY STATISTICS |
| 672 | + | ALTER TTL |
| 673 | + | ALTER UPDATE |
| 674 | + | ALTER VIEW |
| 675 | + | ALTER VIEW MODIFY QUERY |
| 676 | + | ALTER VIEW REFRESH |
| 677 | + | ALTER VIEW MODIFY SQL SECURITY |
| 678 | + ; |
| 679 | + |
| 680 | +createPrivilege |
| 681 | + :CREATE QUOTA |
| 682 | + | CREATE ROLE |
| 683 | + | CREATE ROW POLICY |
| 684 | + | CREATE SETTINGS PROFILE |
| 685 | + | CREATE USER |
| 686 | + | CREATE |
| 687 | + | CREATE ARBITRARY TEMPORARY TABLE |
| 688 | + | CREATE TEMPORARY TABLE |
| 689 | + | CREATE DATABASE |
| 690 | + | CREATE DICTIONARY |
| 691 | + | CREATE FUNCTION |
| 692 | + | CREATE RESOURCE |
| 693 | + | CREATE TABLE |
| 694 | + | CREATE VIEW |
| 695 | + | CREATE WORKLOAD |
| 696 | + ; |
| 697 | + |
| 698 | +dropPrivilege |
| 699 | + : DROP QUOTA |
| 700 | + | DROP ROLE |
| 701 | + | DROP ROW POLICY |
| 702 | + | DROP SETTINGS PROFILE |
| 703 | + | DROP USER |
| 704 | + | DROP |
| 705 | + | DROP DATABASE |
| 706 | + | DROP DICTIONARY |
| 707 | + | DROP FUNCTION |
| 708 | + | DROP RESOURCE |
| 709 | + | DROP TABLE |
| 710 | + | DROP VIEW |
| 711 | + | DROP WORKLOAD |
| 712 | + | DROP NAMED COLLECTION |
| 713 | + ; |
| 714 | + |
| 715 | +showPrivilege |
| 716 | + : SHOW ACCESS |
| 717 | + | SHOW QUOTAS |
| 718 | + | SHOW ROLES |
| 719 | + | SHOW ROW POLICIES |
| 720 | + | SHOW SETTINGS PROFILES |
| 721 | + | SHOW USERS |
| 722 | + | SHOW |
| 723 | + | SHOW COLUMNS |
| 724 | + | SHOW DATABASES |
| 725 | + | SHOW DICTIONARIES |
| 726 | + | SHOW TABLES |
| 727 | + | SHOW FILESYSTEM CACHES |
| 728 | + | SHOW NAMED COLLECTIONS |
| 729 | + | SHOW NAMED COLLECTIONS SECRETS |
| 730 | + ; |
| 731 | + |
| 732 | +sourcePrivilege |
| 733 | + : SOURCES |
| 734 | + | AZURE |
| 735 | + | FILE |
| 736 | + | HDFS |
| 737 | + | HIVE |
| 738 | + | JDBC |
| 739 | + | KAFKA |
| 740 | + | MONGO |
| 741 | + | MYSQL |
| 742 | + | NATS |
| 743 | + | ODBC |
| 744 | + | POSTGRES |
| 745 | + | RABBITMQ |
| 746 | + | REDIS |
| 747 | + | REMOTE |
| 748 | + | S3 |
| 749 | + | SQLITE |
| 750 | + | URL |
| 751 | + ; |
| 752 | + |
| 753 | +systemPrivilege |
| 754 | + : SYSTEM |
| 755 | + | SYSTEM CLEANUP |
| 756 | + | SYSTEM DROP CACHE |
| 757 | + | SYSTEM DROP COMPILED EXPRESSION CACHE |
| 758 | + | SYSTEM DROP CONNECTIONS CACHE |
| 759 | + | SYSTEM DROP DISTRIBUTED CACHE |
| 760 | + | SYSTEM DROP DNS CACHE |
| 761 | + | SYSTEM DROP FILESYSTEM CACHE |
| 762 | + | SYSTEM DROP FORMAT SCHEMA CACHE |
| 763 | + | SYSTEM DROP MARK CACHE |
| 764 | + | SYSTEM DROP MMAP CACHE |
| 765 | + | SYSTEM DROP PAGE CACHE |
| 766 | + | SYSTEM DROP PRIMARY INDEX CACHE |
| 767 | + | SYSTEM DROP QUERY CACHE |
| 768 | + | SYSTEM DROP S3 CLIENT CACHE |
| 769 | + | SYSTEM DROP SCHEMA CACHE |
| 770 | + | SYSTEM DROP UNCOMPRESSED CACHE |
| 771 | + | SYSTEM DROP PRIMARY INDEX CACHE |
| 772 | + | SYSTEM DROP REPLICA |
| 773 | + | SYSTEM FAILPOINT |
| 774 | + | SYSTEM FETCHES |
| 775 | + | SYSTEM FLUSH |
| 776 | + | SYSTEM FLUSH ASYNC INSERT QUEUE |
| 777 | + | SYSTEM FLUSH LOGS |
| 778 | + | SYSTEM JEMALLOC |
| 779 | + | SYSTEM KILL QUERY |
| 780 | + | SYSTEM KILL TRANSACTION |
| 781 | + | SYSTEM LISTEN |
| 782 | + | SYSTEM LOAD PRIMARY KEY |
| 783 | + | SYSTEM MERGES |
| 784 | + | SYSTEM MOVES |
| 785 | + | SYSTEM PULLING REPLICATION LOG |
| 786 | + | SYSTEM REDUCE BLOCKING PARTS |
| 787 | + | SYSTEM REPLICATION QUEUES |
| 788 | + | SYSTEM REPLICA READINESS |
| 789 | + | SYSTEM RESTART DISK |
| 790 | + | SYSTEM RESTART REPLICA |
| 791 | + | SYSTEM RESTORE REPLICA |
| 792 | + | SYSTEM RELOAD |
| 793 | + | SYSTEM RELOAD ASYNCHRONOUS METRICS |
| 794 | + | SYSTEM RELOAD CONFIG |
| 795 | + | SYSTEM RELOAD DICTIONARY |
| 796 | + | SYSTEM RELOAD EMBEDDED DICTIONARIES |
| 797 | + | SYSTEM RELOAD FUNCTION |
| 798 | + | SYSTEM RELOAD MODEL |
| 799 | + | SYSTEM RELOAD USERS |
| 800 | + | SYSTEM SENDS |
| 801 | + | SYSTEM DISTRIBUTED SENDS |
| 802 | + | SYSTEM REPLICATED SENDS |
| 803 | + | SYSTEM SHUTDOWN |
| 804 | + | SYSTEM SYNC DATABASE REPLICA |
| 805 | + | SYSTEM SYNC FILE CACHE |
| 806 | + | SYSTEM SYNC FILESYSTEM CACHE |
| 807 | + | SYSTEM SYNC REPLICA |
| 808 | + | SYSTEM SYNC TRANSACTION LOG |
| 809 | + | SYSTEM THREAD FUZZER |
| 810 | + | SYSTEM TTL MERGES |
| 811 | + | SYSTEM UNFREEZE |
| 812 | + | SYSTEM UNLOAD PRIMARY KEY |
| 813 | + | SYSTEM VIEWS |
| 814 | + | SYSTEM VIRTUAL PARTS UPDATE |
| 815 | + | SYSTEM WAIT LOADING PARTS |
| 816 | + ; |
| 817 | + |
581 | 818 | // SHOW statements
|
582 | 819 |
|
583 | 820 | showStmt
|
@@ -643,6 +880,7 @@ columnsExpr
|
643 | 880 | columnExpr
|
644 | 881 | : CASE columnExpr? (WHEN columnExpr THEN columnExpr)+ (ELSE columnExpr)? END # ColumnExprCase
|
645 | 882 | | CAST LPAREN columnExpr AS columnTypeExpr RPAREN # ColumnExprCast
|
| 883 | + | columnExpr CAST_OP columnTypeExpr # ColumnExprCast2 |
646 | 884 | | DATE STRING_LITERAL # ColumnExprDate
|
647 | 885 | | EXTRACT LPAREN interval FROM columnExpr RPAREN # ColumnExprExtract
|
648 | 886 | | INTERVAL columnExpr interval? # ColumnExprInterval
|
@@ -693,8 +931,7 @@ columnExpr
|
693 | 931 | | LPAREN columnExprList RPAREN # ColumnExprTuple
|
694 | 932 | | LBRACKET columnExprList? RBRACKET # ColumnExprArray
|
695 | 933 | | columnIdentifier # ColumnExprIdentifier
|
696 |
| - | QUERY # ColumnExprParam |
697 |
| - | QUERY CAST_OP identifier # ColumnExprParamWithCast |
| 934 | + | QUERY (CAST_OP identifier)? # ColumnExprParam |
698 | 935 | ;
|
699 | 936 |
|
700 | 937 | columnArgList
|
|
0 commit comments