parse the request
()
| 98 | |
| 99 | // parse the request |
| 100 | func (m *Sqlbridge) parse() (SqlStatement, error) { |
| 101 | m.comment = readComment(m) |
| 102 | m.firstToken = m.Cur() |
| 103 | switch m.firstToken.T { |
| 104 | case lex.TokenPrepare: |
| 105 | return m.parsePrepare() |
| 106 | case lex.TokenSelect: |
| 107 | return m.parseSqlSelect() |
| 108 | case lex.TokenInsert, lex.TokenReplace: |
| 109 | return m.parseSqlInsert() |
| 110 | case lex.TokenUpdate: |
| 111 | return m.parseSqlUpdate() |
| 112 | case lex.TokenUpsert: |
| 113 | return m.parseSqlUpsert() |
| 114 | case lex.TokenDelete: |
| 115 | return m.parseSqlDelete() |
| 116 | case lex.TokenShow: |
| 117 | return m.parseShow() |
| 118 | case lex.TokenExplain, lex.TokenDescribe, lex.TokenDesc: |
| 119 | return m.parseDescribe() |
| 120 | case lex.TokenSet, lex.TokenUse: |
| 121 | return m.parseCommand() |
| 122 | case lex.TokenRollback, lex.TokenCommit: |
| 123 | return m.parseTransaction() |
| 124 | case lex.TokenCreate: |
| 125 | return m.parseCreate() |
| 126 | case lex.TokenDrop: |
| 127 | return m.parseDrop() |
| 128 | } |
| 129 | return nil, fmt.Errorf("Unrecognized request type: %v", m.l.PeekWord()) |
| 130 | } |
| 131 | |
| 132 | func readComment(p expr.TokenPager) string { |
| 133 |
no test coverage detected