mirror of
https://github.com/knex/knex.git
synced 2025-12-28 07:29:16 +00:00
Cast buffer to string, #796
This commit is contained in:
parent
7b17cc404a
commit
ca158836a0
@ -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.
|
||||
|
||||
@ -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)
|
||||
},
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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');
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user