File tree 2 files changed +38
-6
lines changed
test/integration/gh-issues
2 files changed +38
-6
lines changed Original file line number Diff line number Diff line change @@ -876,13 +876,17 @@ class Connection : public ObjectWrap {
876
876
} else if (val->IsNull ()) {
877
877
paramValues[i] = NULL ;
878
878
} else if (val->IsObject () && Buffer::HasInstance (val)) {
879
- char *cHexString = MallocCHexString (val->ToObject ());
880
- if (!cHexString) {
881
- LOG (" ArgToCStringArray: OUT OF MEMORY OR SOMETHING BAD!" );
882
- ReleaseCStringArray (paramValues, i-1 );
883
- return 0 ;
879
+ if (Buffer::Length (val) > 0 ) {
880
+ char *cHexString = MallocCHexString (val->ToObject ());
881
+ if (!cHexString) {
882
+ LOG (" ArgToCStringArray: OUT OF MEMORY OR SOMETHING BAD!" );
883
+ ReleaseCStringArray (paramValues, i-1 );
884
+ return 0 ;
885
+ }
886
+ paramValues[i] = cHexString;
887
+ } else {
888
+ paramValues[i] = MallocCString (NanNew<String>(" " ));
884
889
}
885
- paramValues[i] = cHexString;
886
890
} else {
887
891
// a paramter was not a string
888
892
LOG (" Parameter not a string or buffer" );
Original file line number Diff line number Diff line change
1
+ var helper = require ( '../test-helper' ) ;
2
+ var assert = require ( 'assert' ) ;
3
+
4
+ helper . pg . connect ( function ( err , client , done ) {
5
+ if ( err ) throw err ;
6
+
7
+ var c = 'CREATE TEMP TABLE posts (body TEXT)' ;
8
+
9
+ client . query ( c , function ( err ) {
10
+ if ( err ) throw err ;
11
+
12
+ c = 'INSERT INTO posts (body) VALUES ($1) RETURNING *' ;
13
+
14
+ var body = new Buffer ( 'foo' ) ;
15
+ client . query ( c , [ body ] , function ( err ) {
16
+ if ( err ) throw err ;
17
+
18
+ body = new Buffer ( [ ] ) ;
19
+ client . query ( c , [ body ] , function ( err , res ) {
20
+ done ( ) ;
21
+
22
+ if ( err ) throw err ;
23
+ assert . equal ( res . rows [ 0 ] . body , '' )
24
+ helper . pg . end ( ) ;
25
+ } ) ;
26
+ } ) ;
27
+ } ) ;
28
+ } ) ;
You can’t perform that action at this time.
0 commit comments