Skip to content

Commit 5e7faa2

Browse files
callmehiphopJustinBeckwith
authored andcommitted
feature(database): make session pool hot swappable (#243)
1 parent 357d4de commit 5e7faa2

10 files changed

Lines changed: 2333 additions & 2375 deletions

File tree

handwritten/spanner/src/database.js

Lines changed: 312 additions & 136 deletions
Large diffs are not rendered by default.

handwritten/spanner/src/instance.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ Instance.formatName_ = function(projectId, name) {
176176
*
177177
* @typedef {object} CreateDatabaseRequest
178178
* @property {SessionPoolOptions} [poolOptions]
179+
* @property {SessionPoolCtor} [poolCtor]
179180
*/
180181
/**
181182
* @typedef {array} CreateDatabaseResponse
@@ -272,6 +273,9 @@ Instance.prototype.createDatabase = function(name, options, callback) {
272273
const poolOptions = options.poolOptions;
273274
delete options.poolOptions;
274275

276+
const poolCtor = options.poolCtor;
277+
delete options.poolCtor;
278+
275279
const reqOpts = extend(
276280
{
277281
parent: this.formattedName_,
@@ -297,8 +301,7 @@ Instance.prototype.createDatabase = function(name, options, callback) {
297301
return;
298302
}
299303

300-
const database = self.database(name, poolOptions);
301-
304+
const database = self.database(name, poolOptions || poolCtor);
302305
callback(null, database, operation, resp);
303306
}
304307
);
@@ -310,7 +313,8 @@ Instance.prototype.createDatabase = function(name, options, callback) {
310313
* @throws {Error} If a name is not provided.
311314
*
312315
* @param {string} name The name of the instance.
313-
* @param {SessionPoolOptions} [poolOptions] Session pool configuration options.
316+
* @param {SessionPoolOptions|SessionPoolCtor} [poolOptions] Session pool
317+
* configuration options.
314318
* @return {Database} A Database object.
315319
*
316320
* @example

0 commit comments

Comments
 (0)