1919import Record from '../record'
2020import Connection from './connection'
2121import { newError , PROTOCOL_ERROR } from '../error'
22- import { isString } from './util'
2322import Integer from '../integer'
24-
25- const DefaultBatchSize = 50
23+ import { ALL } from './request-message'
2624
2725class StreamObserver {
2826 onNext ( rawRecord ) { }
@@ -50,7 +48,7 @@ class ResultStreamObserver extends StreamObserver {
5048 * @param {boolean } param.reactive
5149 * @param {function(connection: Connection, stmtId: number|Integer, n: number|Integer, observer: StreamObserver) } param.moreFunction -
5250 * @param {function(connection: Connection, stmtId: number|Integer, observer: StreamObserver) } param.discardFunction -
53- * @param {number|Integer } param.batchSize -
51+ * @param {number|Integer } param.fetchSize -
5452 * @param {function(err: Error): Promise|void } param.beforeError -
5553 * @param {function(err: Error): Promise|void } param.afterError -
5654 * @param {function(keys: string[]): Promise|void } param.beforeKeys -
@@ -63,7 +61,7 @@ class ResultStreamObserver extends StreamObserver {
6361 reactive = false ,
6462 moreFunction,
6563 discardFunction,
66- batchSize = DefaultBatchSize ,
64+ fetchSize = ALL ,
6765 beforeError,
6866 afterError,
6967 beforeKeys,
@@ -98,7 +96,8 @@ class ResultStreamObserver extends StreamObserver {
9896 this . _moreFunction = moreFunction
9997 this . _discardFunction = discardFunction
10098 this . _discard = false
101- this . _batchSize = batchSize
99+ this . _fetchSize = fetchSize
100+ this . _finished = false
102101 }
103102
104103 /**
@@ -108,7 +107,7 @@ class ResultStreamObserver extends StreamObserver {
108107 * @param {Array } rawRecord - An array with the raw record
109108 */
110109 onNext ( rawRecord ) {
111- let record = new Record ( this . _fieldKeys , rawRecord , this . _fieldLookup )
110+ const record = new Record ( this . _fieldKeys , rawRecord , this . _fieldLookup )
112111 if ( this . _observers . some ( o => o . onNext ) ) {
113112 this . _observers . forEach ( o => {
114113 if ( o . onNext ) {
@@ -190,6 +189,7 @@ class ResultStreamObserver extends StreamObserver {
190189
191190 delete meta . has_more
192191 } else {
192+ this . _finished = true
193193 const completionMetadata = Object . assign (
194194 this . _connection ? { server : this . _connection . server } : { } ,
195195 this . _meta ,
@@ -229,7 +229,6 @@ class ResultStreamObserver extends StreamObserver {
229229
230230 _handleStreaming ( ) {
231231 if (
232- this . _reactive &&
233232 this . _head &&
234233 this . _observers . some ( o => o . onNext || o . onCompleted ) &&
235234 ! this . _streaming
@@ -242,7 +241,7 @@ class ResultStreamObserver extends StreamObserver {
242241 this . _moreFunction (
243242 this . _connection ,
244243 this . _statementId ,
245- this . _batchSize ,
244+ this . _fetchSize ,
246245 this
247246 )
248247 }
@@ -282,12 +281,13 @@ class ResultStreamObserver extends StreamObserver {
282281 this . _head = [ ]
283282 this . _fieldKeys = [ ]
284283 this . _tail = { }
284+ this . _finished = true
285285 }
286286
287287 /**
288- * Discard pending record stream
288+ * Cancel pending record stream
289289 */
290- discard ( ) {
290+ cancel ( ) {
291291 this . _discard = true
292292 }
293293
@@ -302,6 +302,7 @@ class ResultStreamObserver extends StreamObserver {
302302 return
303303 }
304304
305+ this . _finished = true
305306 this . _hasFailed = true
306307 this . _error = error
307308
@@ -357,7 +358,7 @@ class ResultStreamObserver extends StreamObserver {
357358 }
358359 this . _observers . push ( observer )
359360
360- if ( this . _reactive ) {
361+ if ( this . _reactive && ! this . _finished ) {
361362 this . _handleStreaming ( )
362363 }
363364 }
0 commit comments