@@ -472,8 +472,9 @@ Connection.prototype.parseZ = function(buffer, length) {
472
472
return msg ;
473
473
} ;
474
474
475
+ ROW_DESCRIPTION = 'rowDescription' ;
475
476
Connection . prototype . parseT = function ( buffer , length ) {
476
- var msg = new Message ( 'rowDescription' , length ) ;
477
+ var msg = new Message ( ROW_DESCRIPTION , length ) ;
477
478
msg . fieldCount = this . parseInt16 ( buffer ) ;
478
479
var fields = [ ] ;
479
480
for ( var i = 0 ; i < msg . fieldCount ; i ++ ) {
@@ -483,44 +484,56 @@ Connection.prototype.parseT = function(buffer, length) {
483
484
return msg ;
484
485
} ;
485
486
487
+ var Field = function ( ) {
488
+ this . name = null ;
489
+ this . tableID = null ;
490
+ this . columnID = null ;
491
+ this . dataTypeID = null ;
492
+ this . dataTypeSize = null ;
493
+ this . dataTypeModifier = null ;
494
+ this . format = null ;
495
+ } ;
496
+
497
+ FORMAT_TEXT = 'text' ;
498
+ FORMAT_BINARY = 'binary' ;
486
499
Connection . prototype . parseField = function ( buffer ) {
487
- var field = {
488
- name : this . parseCString ( buffer ) ,
489
- tableID : this . parseInt32 ( buffer ) ,
490
- columnID : this . parseInt16 ( buffer ) ,
491
- dataTypeID : this . parseInt32 ( buffer ) ,
492
- dataTypeSize : this . parseInt16 ( buffer ) ,
493
- dataTypeModifier : this . parseInt32 ( buffer ) ,
494
- format : undefined
495
- } ;
500
+ var field = new Field ( ) ;
501
+ field . name = this . parseCString ( buffer ) ;
502
+ field . tableID = this . parseInt32 ( buffer ) ;
503
+ field . columnID = this . parseInt16 ( buffer ) ;
504
+ field . dataTypeID = this . parseInt32 ( buffer ) ;
505
+ field . dataTypeSize = this . parseInt16 ( buffer ) ;
506
+ field . dataTypeModifier = this . parseInt32 ( buffer ) ;
496
507
if ( this . parseInt16 ( buffer ) === TEXT_MODE ) {
497
508
this . _mode = TEXT_MODE ;
498
- field . format = 'text' ;
509
+ field . format = FORMAT_TEXT ;
499
510
} else {
500
511
this . _mode = BINARY_MODE ;
501
- this . readField = this . readBytes ;
502
- field . format = 'binary' ;
512
+ field . format = FORMAT_BINARY ;
503
513
}
504
514
return field ;
505
515
} ;
506
516
517
+ DATA_ROW = 'dataRow' ;
507
518
var DataRowMessage = function ( name , length , fieldCount ) {
508
- this . name = name ;
519
+ this . name = DATA_ROW ;
509
520
this . length = length ;
510
521
this . fieldCount = fieldCount ;
511
522
this . fields = [ ] ;
512
- }
523
+ } ;
524
+
513
525
514
- Connection . prototype . parseD = function ( buffer , length ) {
526
+ //extremely hot-path code
527
+ Connection . prototype [ 0x44 ] = Connection . prototype . parseD = function ( buffer , length ) {
515
528
var fieldCount = this . parseInt16 ( buffer ) ;
516
- var msg = new DataRowMessage ( 'dataRow' , length , fieldCount ) ;
529
+ var msg = new DataRowMessage ( length , fieldCount ) ;
517
530
for ( var i = 0 ; i < fieldCount ; i ++ ) {
518
- var value = this . _readValue ( buffer ) ;
519
- msg . fields . push ( value ) ;
531
+ msg . fields . push ( this . _readValue ( buffer ) ) ;
520
532
}
521
533
return msg ;
522
534
} ;
523
535
536
+ //extremely hot-path code
524
537
Connection . prototype . _readValue = function ( buffer ) {
525
538
var length = this . parseInt32 ( buffer ) ;
526
539
if ( length === - 1 ) return null ;
0 commit comments