Skip to content

Commit 98cfd12

Browse files
author
Aurynn Shaw
committed
Adding the BindComplete message.
Verified node 0.2.0 support.
1 parent 38ed09d commit 98cfd12

File tree

1 file changed

+82
-77
lines changed

1 file changed

+82
-77
lines changed

lib/postgres-pure.js

Lines changed: 82 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -197,85 +197,90 @@ function parse_response(code, buffer) {
197197
break;
198198
}
199199
break;
200-
case 'E':
201-
type = "ErrorResponse";
202-
args = [{}];
203-
reader.multicstring().forEach(function (field) {
204-
args[0][field[0]] = field.substr(1);
205-
});
206-
break;
207-
case 't':
208-
type = "ParameterDescription",
209-
num_fields = reader.int16();
210-
data = [];
211-
for (var i = 0; i < num_fields; i++) {
212-
data.push(reader.int32());
213-
}
214-
args = [data];
215-
break;
216-
case 'S':
217-
type = "ParameterStatus";
218-
args = [reader.cstring(), reader.cstring()];
219-
break;
220-
case 'K':
221-
type = "BackendKeyData";
222-
args = [reader.int32(), reader.int32()];
223-
break;
224-
case 'Z':
225-
type = "ReadyForQuery";
226-
args = [reader.string(1)];
227-
break;
228-
case 'T':
229-
type = "RowDescription";
230-
num_fields = reader.int16();
231-
data = [];
232-
for (var i = 0; i < num_fields; i += 1) {
233-
data.push({
234-
field: reader.cstring(),
235-
table_id: reader.int32(),
236-
column_id: reader.int16(),
237-
type_id: reader.int32(),
238-
type_size: reader.int16(),
239-
type_modifier: reader.int32(),
240-
format_code: reader.int16()
200+
case 'E':
201+
type = "ErrorResponse";
202+
args = [{}];
203+
reader.multicstring().forEach(function (field) {
204+
args[0][field[0]] = field.substr(1);
241205
});
242-
}
243-
args = [data];
244-
break;
245-
case 'D':
246-
type = "DataRow";
247-
data = [];
248-
num_fields = reader.int16();
249-
for (i = 0; i < num_fields; i += 1) {
250-
size = reader.int32();
251-
if (size === -1) {
252-
data.push(null);
253-
} else {
254-
data.push(reader.string(size));
255-
}
256-
}
257-
args = [data];
258-
break;
259-
case 'C':
260-
type = "CommandComplete";
261-
args = [reader.cstring()];
262-
break;
263-
case 'N':
264-
type = "NoticeResponse";
265-
args = [{}];
266-
reader.multicstring().forEach(function (field) {
267-
args[0][field[0]] = field.substr(1);
268-
});
269-
break;
270-
case '1':
271-
type = 'ParseComplete';
272-
args = [{}];
273-
break;
274-
case 'n':
275-
type = 'NoData';
276-
args = [];
277-
break;
206+
break;
207+
case 't':
208+
type = "ParameterDescription",
209+
num_fields = reader.int16();
210+
data = [];
211+
for (var i = 0; i < num_fields; i++) {
212+
data.push(reader.int32());
213+
}
214+
args = [data];
215+
break;
216+
case 'S':
217+
type = "ParameterStatus";
218+
args = [reader.cstring(), reader.cstring()];
219+
break;
220+
case 'K':
221+
type = "BackendKeyData";
222+
args = [reader.int32(), reader.int32()];
223+
break;
224+
case 'Z':
225+
type = "ReadyForQuery";
226+
args = [reader.string(1)];
227+
break;
228+
case 'T':
229+
type = "RowDescription";
230+
num_fields = reader.int16();
231+
data = [];
232+
for (var i = 0; i < num_fields; i += 1) {
233+
data.push({
234+
field: reader.cstring(),
235+
table_id: reader.int32(),
236+
column_id: reader.int16(),
237+
type_id: reader.int32(),
238+
type_size: reader.int16(),
239+
type_modifier: reader.int32(),
240+
format_code: reader.int16()
241+
});
242+
}
243+
args = [data];
244+
break;
245+
case 'D':
246+
type = "DataRow";
247+
data = [];
248+
num_fields = reader.int16();
249+
for (i = 0; i < num_fields; i += 1) {
250+
size = reader.int32();
251+
if (size === -1) {
252+
data.push(null);
253+
} else {
254+
data.push(reader.string(size));
255+
}
256+
}
257+
args = [data];
258+
break;
259+
case 'C':
260+
type = "CommandComplete";
261+
args = [reader.cstring()];
262+
break;
263+
case 'N':
264+
type = "NoticeResponse";
265+
args = [{}];
266+
reader.multicstring().forEach(function (field) {
267+
args[0][field[0]] = field.substr(1);
268+
});
269+
break;
270+
case '1':
271+
type = 'ParseComplete';
272+
args = [{}];
273+
break;
274+
case 'n':
275+
type = 'NoData';
276+
args = [];
277+
break;
278+
case '2':
279+
type = "BindComplete";
280+
args = [{}];
281+
break;
278282
}
283+
279284

280285
if (!type) {
281286
sys.debug("Unknown response " + code);

0 commit comments

Comments
 (0)