MCPcopy Create free account
hub / github.com/AfterShip/clickhouse-sql-parser / parsePrivilegeSystem

Method parsePrivilegeSystem

parser/parse_system.go:1112–1182  ·  view source on GitHub ↗
(pos Pos)

Source from the content-addressed store, hash-verified

1110}
1111
1112func (p *Parser) parsePrivilegeSystem(pos Pos) (*PrivilegeClause, error) {
1113 keywords := []string{KeywordShow}
1114 switch {
1115 case p.matchOneOfKeywords(KeywordShutdown, KeywordMerges, KeywordFetches, KeywordSends, KeywordMoves, KeywordCluster):
1116 keyword := p.last().String
1117 _ = p.lexer.consumeToken()
1118 keywords = append(keywords, keyword)
1119 case p.tryConsumeKeywords(KeywordDrop):
1120 keywords = append(keywords, KeywordDrop)
1121 switch {
1122 case p.tryConsumeKeywords(KeywordCache):
1123 keywords = append(keywords, KeywordCache)
1124 case p.matchOneOfKeywords(KeywordMark, KeywordDNS, KeywordUncompressed):
1125 keyword := p.last().String
1126 _ = p.lexer.consumeToken()
1127 keywords = append(keywords, keyword)
1128 if err := p.expectKeyword(KeywordCache); err != nil {
1129 return nil, err
1130 }
1131 keywords = append(keywords, KeywordCache)
1132 default:
1133 return nil, fmt.Errorf("expected CACHE|MARK|DNS|UNCOMPRESSED")
1134 }
1135 case p.tryConsumeKeywords(KeywordReload):
1136 keywords = append(keywords, KeywordReload)
1137 switch {
1138 case p.matchOneOfKeywords(KeywordDictionary, KeywordFunction, KeywordFunctions, KeywordConfig):
1139 keyword := p.last().String
1140 _ = p.lexer.consumeToken()
1141 keywords = append(keywords, keyword)
1142 default:
1143 return nil, fmt.Errorf("expected DICTIONARY|FUNCTION|FUNCTIONS|CONFIG")
1144 }
1145 case p.tryConsumeKeywords(KeywordFlush):
1146 keywords = append(keywords, KeywordFlush)
1147 switch {
1148 case p.matchOneOfKeywords(KeywordLogs, KeywordDistributed):
1149 keyword := p.last().String
1150 _ = p.lexer.consumeToken()
1151 keywords = append(keywords, keyword)
1152 default:
1153 return nil, fmt.Errorf("expected LOGS|DISTRIBUTED")
1154 }
1155 case p.tryConsumeKeywords(KeywordTtl):
1156 keywords = append(keywords, KeywordTtl)
1157 if err := p.expectKeyword(KeywordMerges); err != nil {
1158 return nil, err
1159 }
1160 keywords = append(keywords, KeywordMerges)
1161 case p.matchOneOfKeywords(KeywordSync, KeywordRestart):
1162 keyword := p.last().String
1163 _ = p.lexer.consumeToken()
1164 keywords = append(keywords, keyword)
1165 if err := p.expectKeyword(KeywordReplica); err != nil {
1166 return nil, err
1167 }
1168 keywords = append(keywords, KeywordReplica)
1169 case p.tryConsumeKeywords(KeywordReplication):

Callers 1

parsePrivilegeClauseMethod · 0.95

Calls 5

matchOneOfKeywordsMethod · 0.95
lastMethod · 0.95
tryConsumeKeywordsMethod · 0.95
expectKeywordMethod · 0.95
consumeTokenMethod · 0.80

Tested by

no test coverage detected