MCPcopy Create free account
hub / github.com/araddon/qlbridge / parseDrop

Method parseDrop

rel/parse_sql.go:815–865  ·  view source on GitHub ↗

First keyword was DROP

()

Source from the content-addressed store, hash-verified

813
814// First keyword was DROP
815func (m *Sqlbridge) parseDrop() (*SqlDrop, error) {
816
817 req := NewSqlDrop()
818 m.Next() // Consume DROP token
819 req.Raw = m.l.RawInput()
820
821 // DROP TEMPORARY TABLE x
822 if m.Cur().T == lex.TokenTemp {
823 m.Next()
824 req.Temp = true
825 }
826
827 // DROP (TABLE|VIEW|SOURCE|CONTINUOUSVIEW) <identity>
828 switch m.Cur().T {
829 case lex.TokenTable, lex.TokenView, lex.TokenSource, lex.TokenContinuousView,
830 lex.TokenSchema, lex.TokenDatabase:
831 req.Tok = m.Next()
832 case lex.TokenIdentity:
833 // triggers, indexes
834 req.Tok = m.Next()
835 default:
836 return nil, m.ErrMsg("Expected view, database,schema, table, source, continuousview for DROP got")
837 }
838
839 switch m.Cur().T {
840 case lex.TokenTable, lex.TokenIdentity:
841 req.Identity = m.Next().V
842 default:
843 return nil, m.ErrMsg("Expected identity after DROP (TABLE|VIEW|SOURCE|SCHEMA|DATABASE) ")
844 }
845
846 switch req.Tok.T {
847 case lex.TokenTable:
848 // just table
849 case lex.TokenSource, lex.TokenSchema:
850 // schema
851 case lex.TokenContinuousView, lex.TokenView:
852 // view
853 default:
854 // triggers, index, etc
855 }
856
857 // WITH
858 discardComments(m)
859 with, err := ParseWith(m.SqlTokenPager)
860 if err != nil {
861 return nil, err
862 }
863 req.With = with
864 return req, nil
865}
866
867func (m *Sqlbridge) parseTransaction() (*SqlCommand, error) {
868

Callers 1

parseMethod · 0.95

Calls 7

NewSqlDropFunction · 0.85
discardCommentsFunction · 0.85
ParseWithFunction · 0.85
RawInputMethod · 0.80
NextMethod · 0.65
CurMethod · 0.65
ErrMsgMethod · 0.65

Tested by

no test coverage detected