@@ -5,7 +5,6 @@ const Errors = require('../constants/errors.js');
5
5
6
6
const Command = require ( './command.js' ) ;
7
7
const Packets = require ( '../packets/index.js' ) ;
8
- const Types = require ( '../constants/types' ) ;
9
8
10
9
class ServerHandshake extends Command {
11
10
constructor ( args ) {
@@ -70,6 +69,11 @@ class ServerHandshake extends Command {
70
69
return ServerHandshake . prototype . dispatchCommands ;
71
70
}
72
71
72
+ _isStatement ( query , name ) {
73
+ const firstWord = query . split ( ' ' ) [ 0 ] . toUpperCase ( ) ;
74
+ return firstWord == name ;
75
+ }
76
+
73
77
dispatchCommands ( packet , connection ) {
74
78
// command from client to server
75
79
let knownCommand = true ;
@@ -90,67 +94,7 @@ class ServerHandshake extends Command {
90
94
break ;
91
95
case CommandCode . STMT_EXECUTE :
92
96
if ( connection . listeners ( 'stmt_execute' ) . length ) {
93
- console . log ( packet )
94
- const stmtId = packet . readInt32 ( ) ;
95
- const flags = packet . readInt8 ( ) ;
96
- const iterationCount = packet . readInt32 ( ) ;
97
-
98
- let nullBitmaps = 0 ;
99
- let i = packet . offset ;
100
- while ( i < packet . end - 1 ) {
101
- if ( ( packet . buffer [ i + 1 ] == Types . VAR_STRING
102
- || packet . buffer [ i + 1 ] == Types . NULL
103
- || packet . buffer [ i + 1 ] == Types . DOUBLE
104
- || packet . buffer [ i + 1 ] == Types . TINY
105
- || packet . buffer [ i + 1 ] == Types . DATETIME
106
- || packet . buffer [ i + 1 ] == Types . JSON ) && packet . buffer [ i ] == 1 && packet . buffer [ i + 2 ] == 0 ) {
107
- break
108
- }
109
- else {
110
- nullBitmaps += packet . readInt8 ( ) ;
111
- }
112
- i ++ ;
113
- }
114
-
115
- const types = [ ] ;
116
-
117
- for ( let i = packet . offset + 1 ; i < packet . end - 1 ; i ++ ) {
118
- if ( ( packet . buffer [ i ] == Types . VAR_STRING
119
- || packet . buffer [ i ] == Types . NULL
120
- || packet . buffer [ i ] == Types . DOUBLE
121
- || packet . buffer [ i ] == Types . TINY
122
- || packet . buffer [ i ] == Types . DATETIME
123
- || packet . buffer [ i ] == Types . JSON ) && packet . buffer [ i + 1 ] == 0 ) {
124
- types . push ( packet . buffer [ i ] ) ;
125
- packet . skip ( 2 ) ;
126
- }
127
- }
128
-
129
- packet . skip ( 1 ) ;
130
-
131
- const values = [ ] ;
132
- for ( let i = 0 ; i < types . length ; i ++ ) {
133
- if ( types [ i ] == Types . VAR_STRING ) {
134
- values . push ( packet . readLengthCodedString ( encoding ) )
135
- }
136
- else if ( types [ i ] == Types . DOUBLE ) {
137
- values . push ( packet . readDouble ( ) )
138
- }
139
- else if ( types [ i ] == Types . TINY ) {
140
- values . push ( packet . readInt8 ( ) )
141
- }
142
- else if ( types [ i ] == Types . DATETIME ) {
143
- values . push ( packet . readDateTime ( ) )
144
- }
145
- else if ( types [ i ] == Types . JSON ) {
146
- values . push ( JSON . parse ( packet . readLengthCodedString ( encoding ) ) )
147
- }
148
- if ( types [ i ] == Types . NULL ) {
149
- values . push ( null )
150
- }
151
- }
152
- console . log ( values )
153
-
97
+ const { stmtId, flags, iterationCount, values } = Packets . Execute . fromPacket ( packet , encoding ) ;
154
98
connection . emit ( 'stmt_execute' , stmtId , flags , iterationCount , values ) ;
155
99
} else {
156
100
connection . writeError ( {
0 commit comments