code: function LargeObjectManager(options)
  {
          if (typeof options.query === 'function') { // backwards compatibility
                  // `client` is a https://www.npmjs.com/package/pg client instance
                  var client = options;
                  this._query = client.query.bind(client);
          }
          else if (options.pg) {
                  var client = options.pg;
                  this._query = client.query.bind(client);
          }
          else if (options.pgPromise) {
                  // https://www.npmjs.com/package/pg-promise
                  var tx = options.pgPromise;
                  this._query = pgPromiseAdapter(tx);
          }
          else {
                  throw Error('Either the `pg` or `pgPromise` option must be given');
          }
  }
docs: This class lets you use the Large Object functionality of PostgreSQL.
  All usage of Large Object should take place within a transaction block!
  (BEGIN ... COMMIT)
  
  @example new LargeObjectManager(client)
  @constructor
  @exports pg-large-object/lib/LargeObjectManager
  @param {object} options Either `pg` or `pgPromise` must be given
  @param {module:pg/Client} options.pg A pg (https://www.npmjs.com/package/pg) Client object
  @param {module:pg-promise/Task} options.pgPromise A pg-promise (https://www.npmjs.com/package/pg-promise) transaction
  object as given by `db.tx()`