@@ -6,7 +6,7 @@ const util = require('util')
6
6
7
7
let nextUniqueID = 1 // concept borrowed from org.postgresql.core.v3.QueryExecutorImpl
8
8
9
- function Cursor ( text , values , config ) {
9
+ function Cursor ( text , values , config ) {
10
10
EventEmitter . call ( this )
11
11
12
12
this . _conf = config || { }
@@ -25,42 +25,42 @@ function Cursor(text, values, config) {
25
25
26
26
util . inherits ( Cursor , EventEmitter )
27
27
28
- Cursor . prototype . _ifNoData = function ( ) {
28
+ Cursor . prototype . _ifNoData = function ( ) {
29
29
this . state = 'idle'
30
30
this . _shiftQueue ( )
31
31
}
32
32
33
- Cursor . prototype . _rowDescription = function ( ) {
33
+ Cursor . prototype . _rowDescription = function ( ) {
34
34
if ( this . connection ) {
35
35
this . connection . removeListener ( 'noData' , this . _ifNoData )
36
36
}
37
37
}
38
38
39
- Cursor . prototype . submit = function ( connection ) {
39
+ Cursor . prototype . submit = function ( connection ) {
40
40
this . connection = connection
41
41
this . _portal = 'C_' + nextUniqueID ++
42
42
43
43
const con = connection
44
44
45
45
con . parse (
46
46
{
47
- text : this . text ,
47
+ text : this . text
48
48
} ,
49
49
true
50
50
)
51
51
52
52
con . bind (
53
53
{
54
54
portal : this . _portal ,
55
- values : this . values ,
55
+ values : this . values
56
56
} ,
57
57
true
58
58
)
59
59
60
60
con . describe (
61
61
{
62
62
type : 'P' ,
63
- name : this . _portal , // AWS Redshift requires a portal name
63
+ name : this . _portal // AWS Redshift requires a portal name
64
64
} ,
65
65
true
66
66
)
@@ -75,13 +75,13 @@ Cursor.prototype.submit = function(connection) {
75
75
con . once ( 'rowDescription' , this . _rowDescription )
76
76
}
77
77
78
- Cursor . prototype . _shiftQueue = function ( ) {
78
+ Cursor . prototype . _shiftQueue = function ( ) {
79
79
if ( this . _queue . length ) {
80
80
this . _getRows . apply ( this , this . _queue . shift ( ) )
81
81
}
82
82
}
83
83
84
- Cursor . prototype . _closePortal = function ( ) {
84
+ Cursor . prototype . _closePortal = function ( ) {
85
85
// because we opened a named portal to stream results
86
86
// we need to close the same named portal. Leaving a named portal
87
87
// open can lock tables for modification if inside a transaction.
@@ -90,19 +90,19 @@ Cursor.prototype._closePortal = function() {
90
90
this . connection . sync ( )
91
91
}
92
92
93
- Cursor . prototype . handleRowDescription = function ( msg ) {
93
+ Cursor . prototype . handleRowDescription = function ( msg ) {
94
94
this . _result . addFields ( msg . fields )
95
95
this . state = 'idle'
96
96
this . _shiftQueue ( )
97
97
}
98
98
99
- Cursor . prototype . handleDataRow = function ( msg ) {
99
+ Cursor . prototype . handleDataRow = function ( msg ) {
100
100
const row = this . _result . parseRow ( msg . fields )
101
101
this . emit ( 'row' , row , this . _result )
102
102
this . _rows . push ( row )
103
103
}
104
104
105
- Cursor . prototype . _sendRows = function ( ) {
105
+ Cursor . prototype . _sendRows = function ( ) {
106
106
this . state = 'idle'
107
107
setImmediate ( ( ) => {
108
108
const cb = this . _cb
@@ -118,26 +118,26 @@ Cursor.prototype._sendRows = function() {
118
118
} )
119
119
}
120
120
121
- Cursor . prototype . handleCommandComplete = function ( msg ) {
121
+ Cursor . prototype . handleCommandComplete = function ( msg ) {
122
122
this . _result . addCommandComplete ( msg )
123
123
this . _closePortal ( )
124
124
}
125
125
126
- Cursor . prototype . handlePortalSuspended = function ( ) {
126
+ Cursor . prototype . handlePortalSuspended = function ( ) {
127
127
this . _sendRows ( )
128
128
}
129
129
130
- Cursor . prototype . handleReadyForQuery = function ( ) {
130
+ Cursor . prototype . handleReadyForQuery = function ( ) {
131
131
this . _sendRows ( )
132
132
this . state = 'done'
133
133
this . emit ( 'end' , this . _result )
134
134
}
135
135
136
- Cursor . prototype . handleEmptyQuery = function ( ) {
136
+ Cursor . prototype . handleEmptyQuery = function ( ) {
137
137
this . connection . sync ( )
138
138
}
139
139
140
- Cursor . prototype . handleError = function ( msg ) {
140
+ Cursor . prototype . handleError = function ( msg ) {
141
141
this . connection . removeListener ( 'noData' , this . _ifNoData )
142
142
this . connection . removeListener ( 'rowDescription' , this . _rowDescription )
143
143
this . state = 'error'
@@ -159,29 +159,29 @@ Cursor.prototype.handleError = function(msg) {
159
159
this . connection . sync ( )
160
160
}
161
161
162
- Cursor . prototype . _getRows = function ( rows , cb ) {
162
+ Cursor . prototype . _getRows = function ( rows , cb ) {
163
163
this . state = 'busy'
164
164
this . _cb = cb
165
165
this . _rows = [ ]
166
166
const msg = {
167
167
portal : this . _portal ,
168
- rows : rows ,
168
+ rows : rows
169
169
}
170
170
this . connection . execute ( msg , true )
171
171
this . connection . flush ( )
172
172
}
173
173
174
174
// users really shouldn't be calling 'end' here and terminating a connection to postgres
175
175
// via the low level connection.end api
176
- Cursor . prototype . end = util . deprecate ( function ( cb ) {
176
+ Cursor . prototype . end = util . deprecate ( function ( cb ) {
177
177
if ( this . state !== 'initialized' ) {
178
178
this . connection . sync ( )
179
179
}
180
180
this . connection . once ( 'end' , cb )
181
181
this . connection . end ( )
182
182
} , 'Cursor.end is deprecated. Call end on the client itself to end a connection to the database.' )
183
183
184
- Cursor . prototype . close = function ( cb ) {
184
+ Cursor . prototype . close = function ( cb ) {
185
185
if ( this . state === 'done' ) {
186
186
if ( cb ) {
187
187
return setImmediate ( cb )
@@ -192,13 +192,13 @@ Cursor.prototype.close = function(cb) {
192
192
this . _closePortal ( )
193
193
this . state = 'done'
194
194
if ( cb ) {
195
- this . connection . once ( 'closeComplete' , function ( ) {
195
+ this . connection . once ( 'closeComplete' , function ( ) {
196
196
cb ( )
197
197
} )
198
198
}
199
199
}
200
200
201
- Cursor . prototype . read = function ( rows , cb ) {
201
+ Cursor . prototype . read = function ( rows , cb ) {
202
202
if ( this . state === 'idle' ) {
203
203
return this . _getRows ( rows , cb )
204
204
}
0 commit comments