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

Method parseReferentialAction

pkg/sql/parser/ddl_columns.go:311–339  ·  view source on GitHub ↗

parseReferentialAction parses a single referential action (CASCADE, SET NULL, etc.)

()

Source from the content-addressed store, hash-verified

309
310// parseReferentialAction parses a single referential action (CASCADE, SET NULL, etc.)
311func (p *Parser) parseReferentialAction() string {
312 if p.isType(models.TokenTypeCascade) {
313 p.advance()
314 return "CASCADE"
315 }
316 if p.isType(models.TokenTypeRestrict) {
317 p.advance()
318 return "RESTRICT"
319 }
320 if p.isType(models.TokenTypeSet) {
321 p.advance() // Consume SET
322 if p.isType(models.TokenTypeNull) {
323 p.advance()
324 return "SET NULL"
325 }
326 if p.isType(models.TokenTypeDefault) {
327 p.advance()
328 return "SET DEFAULT"
329 }
330 }
331 if p.isTokenMatch("NO") {
332 p.advance() // Consume NO
333 if p.isTokenMatch("ACTION") {
334 p.advance()
335 return "NO ACTION"
336 }
337 }
338 return ""
339}
340
341// parseTableConstraint parses a table constraint (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK)
342func (p *Parser) parseTableConstraint() (*ast.TableConstraint, error) {

Callers 1

Calls 3

isTypeMethod · 0.95
advanceMethod · 0.95
isTokenMatchMethod · 0.95

Tested by

no test coverage detected