MCPcopy Create free account
hub / github.com/IceFireDB/IceFireDB / dispatch

Method dispatch

IceFireDB-SQLite/pkg/mysql/server/command.go:92–171  ·  view source on GitHub ↗

* func (c *Conn) HandleCommand() error { if c.Conn == nil { return fmt.Errorf("connection closed") } data, err := c.ReadPacket() if err != nil { c.Close() c.Conn = nil return err } v := c.dispatch(data) err = c.writeValue(v) if c.Conn != nil { c.ResetSequence()

(data []byte)

Source from the content-addressed store, hash-verified

90 }
91*/
92func (c *Conn) dispatch(data []byte) any {
93 cmd := data[0]
94 data = data[1:]
95 switch cmd {
96 case COM_QUIT:
97 //c.h.CloseConn(c)
98 c.Close()
99 c.Conn = nil
100 return noResponse{}
101 case COM_QUERY:
102 if r, err := c.h.HandleQuery(c, hack.String(data)); err != nil {
103 return err
104 } else {
105 return r
106 }
107 case COM_PING:
108 return nil
109 case COM_INIT_DB:
110 db := hack.String(data)
111 if err := c.h.UseDB(c, db); err != nil {
112 return err
113 }
114 c.db = db
115 return nil
116 case COM_FIELD_LIST:
117 index := bytes.IndexByte(data, 0x00)
118 table := hack.String(data[0:index])
119 wildcard := hack.String(data[index+1:])
120
121 if fs, err := c.h.HandleFieldList(c, table, wildcard); err != nil {
122 return err
123 } else {
124 return fs
125 }
126 case COM_STMT_PREPARE:
127 c.stmtID++
128 st := new(Stmt)
129 st.ID = c.stmtID
130 st.Query = hack.String(data)
131 var err error
132 if st.Params, st.Columns, st.Context, err = c.h.HandleStmtPrepare(c, st.Query); err != nil {
133 return err
134 } else {
135 st.ResetParams()
136 c.stmts[c.stmtID] = st
137 return st
138 }
139 case COM_STMT_EXECUTE:
140 if r, err := c.handleStmtExecute(data); err != nil {
141 return err
142 } else {
143 return r
144 }
145 case COM_STMT_CLOSE:
146 if err := c.handleStmtClose(data); err != nil {
147 return err
148 }
149 return noResponse{}

Callers 1

HandleCommandMethod · 0.95

Calls 12

CloseMethod · 0.95
handleStmtExecuteMethod · 0.95
handleStmtCloseMethod · 0.95
handleStmtResetMethod · 0.95
HandleQueryMethod · 0.65
StringMethod · 0.65
UseDBMethod · 0.65
HandleFieldListMethod · 0.65
HandleStmtPrepareMethod · 0.65
HandleOtherCommandMethod · 0.65
ResetParamsMethod · 0.45

Tested by

no test coverage detected