File tree Expand file tree Collapse file tree 3 files changed +36
-2
lines changed Expand file tree Collapse file tree 3 files changed +36
-2
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,12 @@ export class BufferReader {
3131 return result
3232 }
3333
34+ public uint32 ( ) : number {
35+ const result = this . buffer . readUInt32BE ( this . offset )
36+ this . offset += 4
37+ return result
38+ }
39+
3440 public string ( length : number ) : string {
3541 const result = this . buffer . toString ( this . encoding , this . offset , this . offset + length )
3642 this . offset += length
Original file line number Diff line number Diff line change @@ -39,6 +39,17 @@ var twoRowBuf = buffers.rowDescription([
3939 } ,
4040] )
4141
42+ var rowWithBigOids = {
43+ name : 'bigoid' ,
44+ tableID : 3000000001 ,
45+ attributeNumber : 2 ,
46+ dataTypeID : 3000000003 ,
47+ dataTypeSize : 4 ,
48+ typeModifier : 5 ,
49+ formatCode : 0 ,
50+ }
51+ var bigOidDescBuff = buffers . rowDescription ( [ rowWithBigOids ] )
52+
4253var emptyRowFieldBuf = new BufferList ( ) . addInt16 ( 0 ) . join ( true , 'D' )
4354
4455var emptyRowFieldBuf = buffers . dataRow ( [ ] )
@@ -132,6 +143,22 @@ var expectedTwoRowMessage = {
132143 } ,
133144 ] ,
134145}
146+ var expectedBigOidMessage = {
147+ name : 'rowDescription' ,
148+ length : 31 ,
149+ fieldCount : 1 ,
150+ fields : [
151+ {
152+ name : 'bigoid' ,
153+ tableID : 3000000001 ,
154+ columnID : 2 ,
155+ dataTypeID : 3000000003 ,
156+ dataTypeSize : 4 ,
157+ dataTypeModifier : 5 ,
158+ format : 'text' ,
159+ } ,
160+ ] ,
161+ }
135162
136163var emptyParameterDescriptionBuffer = new BufferList ( )
137164 . addInt16 ( 0 ) // number of parameters
@@ -261,6 +288,7 @@ describe('PgPacketStream', function () {
261288 testForMessage ( emptyRowDescriptionBuffer , expectedEmptyRowDescriptionMessage )
262289 testForMessage ( oneRowDescBuff , expectedOneRowMessage )
263290 testForMessage ( twoRowBuf , expectedTwoRowMessage )
291+ testForMessage ( bigOidDescBuff , expectedBigOidMessage )
264292 } )
265293
266294 describe ( 'parameterDescription messages' , function ( ) {
Original file line number Diff line number Diff line change @@ -258,9 +258,9 @@ export class Parser {
258258
259259 private parseField ( ) : Field {
260260 const name = this . reader . cstring ( )
261- const tableID = this . reader . int32 ( )
261+ const tableID = this . reader . uint32 ( )
262262 const columnID = this . reader . int16 ( )
263- const dataTypeID = this . reader . int32 ( )
263+ const dataTypeID = this . reader . uint32 ( )
264264 const dataTypeSize = this . reader . int16 ( )
265265 const dataTypeModifier = this . reader . int32 ( )
266266 const mode = this . reader . int16 ( ) === 0 ? 'text' : 'binary'
You can’t perform that action at this time.
0 commit comments