MCPcopy Create free account
hub / github.com/ajitpratap0/GoSQLX / initialize

Method initialize

pkg/sql/keywords/categories.go:66–125  ·  view source on GitHub ↗

initialize sets up the initial keyword mappings

()

Source from the content-addressed store, hash-verified

64
65// initialize sets up the initial keyword mappings
66func (k *Keywords) initialize() {
67 // Initialize DML keywords
68 k.DMLKeywords = map[string]models.TokenType{
69 "DISTINCT": models.TokenTypeDistinct,
70 "ALL": models.TokenTypeAll,
71 "FETCH": models.TokenTypeFetch,
72 "NEXT": models.TokenTypeNext,
73 "ROWS": models.TokenTypeRows,
74 "ONLY": models.TokenTypeOnly,
75 "WITH": models.TokenTypeWith,
76 "TIES": models.TokenTypeTies,
77 "NULLS": models.TokenTypeNulls,
78 "FIRST": models.TokenTypeFirst,
79 "LAST": models.TokenTypeLast,
80 "PERCENT": models.TokenTypePercent, // SQL-99 FETCH ... PERCENT ROWS
81 "ROLLUP": models.TokenTypeRollup, // SQL-99 grouping operation
82 "CUBE": models.TokenTypeCube, // SQL-99 grouping operation
83 "GROUPING": models.TokenTypeGrouping, // SQL-99 GROUPING SETS
84 "SETS": models.TokenTypeSets, // SQL-99 GROUPING SETS
85 "CAST": models.TokenTypeCast, // CAST expression
86 "INTERVAL": models.TokenTypeInterval, // INTERVAL expression
87 // Row locking keywords (SQL:2003, PostgreSQL, MySQL)
88 "FOR": models.TokenTypeFor,
89 "SHARE": models.TokenTypeShare,
90 "NOWAIT": models.TokenTypeNoWait,
91 "SKIP": models.TokenTypeSkip,
92 "LOCKED": models.TokenTypeLocked,
93 "OF": models.TokenTypeOf,
94 }
95
96 // Initialize compound keywords
97 k.CompoundKeywords = map[string]models.TokenType{
98 "FULL JOIN": models.TokenTypeKeyword,
99 "CROSS JOIN": models.TokenTypeKeyword,
100 "NATURAL JOIN": models.TokenTypeKeyword,
101 "GROUP BY": models.TokenTypeKeyword,
102 "ORDER BY": models.TokenTypeKeyword,
103 "LEFT JOIN": models.TokenTypeKeyword,
104 "GROUPING SETS": models.TokenTypeKeyword, // SQL-99 grouping operation
105 }
106
107 // Add all keywords to the main keyword map
108 for word, tokenType := range k.DMLKeywords {
109 k.keywordMap[word] = Keyword{
110 Word: word,
111 Type: tokenType,
112 Reserved: true,
113 }
114 k.reservedKeywords[word] = true
115 }
116
117 for word, tokenType := range k.CompoundKeywords {
118 k.keywordMap[word] = Keyword{
119 Word: word,
120 Type: tokenType,
121 Reserved: true,
122 }
123 k.reservedKeywords[word] = true

Callers 1

NewKeywordsFunction · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected