(pos Pos)
| 989 | } |
| 990 | |
| 991 | func (p *Parser) parsePrivilegeAlter(pos Pos) (*PrivilegeClause, error) { |
| 992 | keywords := []string{KeywordAlter} |
| 993 | switch { |
| 994 | case p.tryConsumeKeywords(KeywordIndex): |
| 995 | keywords = append(keywords, KeywordIndex) |
| 996 | case p.matchOneOfKeywords(KeywordUpdate, KeywordDelete, KeywordUser, KeywordRole, KeywordQuota): |
| 997 | keyword := p.last().String |
| 998 | _ = p.lexer.consumeToken() |
| 999 | keywords = append(keywords, keyword) |
| 1000 | case p.matchOneOfKeywords(KeywordAdd, KeywordDrop, KeywordModify, KeywordClear, KeywordComment, KeywordRename, KeywordMaterialized): |
| 1001 | keyword := p.last().String |
| 1002 | _ = p.lexer.consumeToken() |
| 1003 | keywords = append(keywords, keyword) |
| 1004 | switch { |
| 1005 | case p.tryConsumeKeywords(KeywordColumn): |
| 1006 | keywords = append(keywords, KeywordColumn) |
| 1007 | case p.tryConsumeKeywords(KeywordIndex): |
| 1008 | keywords = append(keywords, KeywordIndex) |
| 1009 | keywords = append(keywords, KeywordConstraint) |
| 1010 | case p.tryConsumeKeywords(KeywordTtl): |
| 1011 | keywords = append(keywords, KeywordTtl) |
| 1012 | default: |
| 1013 | return nil, fmt.Errorf("expected COLUMN|INDEX") |
| 1014 | } |
| 1015 | case p.tryConsumeKeywords(KeywordOrder): |
| 1016 | if err := p.expectKeyword(KeywordBy); err != nil { |
| 1017 | return nil, err |
| 1018 | } |
| 1019 | keywords = append(keywords, KeywordOrder, KeywordBy) |
| 1020 | case p.tryConsumeKeywords(KeywordSample): |
| 1021 | if err := p.expectKeyword(KeywordBy); err != nil { |
| 1022 | return nil, err |
| 1023 | } |
| 1024 | keywords = append(keywords, KeywordSample, KeywordBy) |
| 1025 | case p.tryConsumeKeywords(KeywordSettings): |
| 1026 | keywords = append(keywords, KeywordSettings) |
| 1027 | case p.tryConsumeKeywords(KeywordView): |
| 1028 | keywords = append(keywords, KeywordView) |
| 1029 | switch { |
| 1030 | case p.tryConsumeKeywords(KeywordModify): |
| 1031 | keywords = append(keywords, KeywordModify) |
| 1032 | case p.tryConsumeKeywords(KeywordRefresh): |
| 1033 | keywords = append(keywords, KeywordRefresh) |
| 1034 | default: |
| 1035 | return nil, fmt.Errorf("expected MODIFY|REFRESH") |
| 1036 | } |
| 1037 | case p.matchOneOfKeywords(KeywordMove, KeywordFreeze): |
| 1038 | keyword := p.last().String |
| 1039 | _ = p.lexer.consumeToken() |
| 1040 | keywords = append(keywords, keyword) |
| 1041 | if err := p.expectKeyword(KeywordPartition); err != nil { |
| 1042 | return nil, err |
| 1043 | } |
| 1044 | keywords = append(keywords, KeywordPartition) |
| 1045 | default: |
| 1046 | return nil, fmt.Errorf("expected UPDATE|DELETE|ADD|DROP|MODIFY|CLEAR|COMMENT|RENAME|MATERIALIZED|ORDER|SAMPLE|SETTINGS|VIEW|MOVE|FREEZE") |
| 1047 | } |
| 1048 | return &PrivilegeClause{ |
no test coverage detected