Cast buffer to string, #796

This commit is contained in:
Tim Griesser 2015-04-28 08:14:22 -04:00
parent 7b17cc404a
commit ca158836a0
5 changed files with 20 additions and 50 deletions

View File

@ -53,10 +53,13 @@ assign(Client_Oracle.prototype, {
return _.map(bindings, function(value) {
// returning helper uses always ROWID as string
if (value instanceof ReturningHelper && this.driver) {
value = new this.driver.OutParam(this.driver.OCCISTRING)
return new this.driver.OutParam(this.driver.OCCISTRING)
}
else if (typeof value === 'boolean') {
value = value ? 1 : 0
return value ? 1 : 0
}
else if (Buffer.isBuffer(value)) {
return SqlString.bufferToString(value)
}
return value
}, this)
@ -69,6 +72,7 @@ assign(Client_Oracle.prototype, {
return new Promise(function(resolver, rejecter) {
client.driver.connect(client.connectionSettings,
function(err, connection) {
Promise.promisifyAll(connection)
if (err) return rejecter(err)
if (client.connectionSettings.prefetchRowCount) {
connection.setPrefetchRowCount(client.connectionSettings.prefetchRowCount)
@ -120,35 +124,17 @@ assign(Client_Oracle.prototype, {
if (!obj.sql) throw new Error('The query is empty');
return new Promise(function(resolver, rejecter) {
connection.execute(obj.sql, obj.bindings, function(err, response) {
if (err) {
console.log(obj)
return rejecter(err);
}
if (obj.returning) {
var rowIds = obj.outParams.map(function (v, i) {
return response['returnParam' + (i ? i : '')];
});
return connection.execute(obj.returningSql, rowIds, function (err, subres) {
if (err) {
console.log(obj.returningSql)
console.log(obj.bindings)
return rejecter(err);
}
obj.response = subres;
resolver(obj);
});
} else {
obj.response = response;
resolver(obj);
}
return connection.executeAsync(obj.sql, obj.bindings).then(function(response) {
if (!obj.returning) return response
var rowIds = obj.outParams.map(function (v, i) {
return response['returnParam' + (i ? i : '')];
});
});
return connection.executeAsync(obj.returningSql, rowIds)
}).then(function(response) {
obj.response = response;
return obj
})
},
// Process the response as returned from the query.

View File

@ -19,7 +19,7 @@ assign(Oracle_Transaction.prototype, {
},
commit: function(conn, value) {
return Promise.promisify(conn.commit, conn)()
return conn.commitAsync()
.return(value)
.then(this._resolver, this._rejecter)
},
@ -30,7 +30,7 @@ assign(Oracle_Transaction.prototype, {
rollback: function(conn, err) {
debugTx('%s: rolling back', this.txid)
return Promise.promisify(conn.rollback, conn)()
return conn.rollbackAsync()
.throw(err)
.catch(this._rejecter)
},

View File

@ -1,16 +0,0 @@
'use strict';
// Oracle Client
// -------
var inherits = require('inherits')
var Client_Oracle = require('../oracle')
function Client_OracleDb() {
Client_Oracle.apply(this, arguments);
}
inherits(Client_OracleDb, Client_Oracle);
Client_OracleDb.prototype.driverName = 'oracledb'
module.exports = Client_OracleDb;

View File

@ -4,6 +4,7 @@
// -------
var inherits = require('inherits')
var Client_Oracle = require('../oracle')
var helpers = require('../../helpers')
function Client_StrongOracle() {
Client_Oracle.apply(this, arguments);

View File

@ -184,11 +184,10 @@ Migrator.prototype._writeNewMigration = function(name) {
// Get the last batch of migrations, by name, ordered by insert id
// in reverse order.
Migrator.prototype._getLastBatch = function() {
var knex = this.knex;
var tableName = this.config.tableName;
return this.knex(tableName)
.where('batch', function(qb) {
this.max('batch').from(tableName)
qb.max('batch').from(tableName)
})
.orderBy('id', 'desc');
};