49 lines
935 B
JavaScript
49 lines
935 B
JavaScript
"use strict";
|
|
|
|
import helpers from '../helpers';
|
|
import Driver from '../DriverClass';
|
|
|
|
/**
|
|
* Driver for Firebird databases
|
|
*
|
|
* @module drivers/firebird
|
|
*/
|
|
class Firebird extends Driver {
|
|
constructor() {
|
|
super({
|
|
hasTruncate: false
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Generate a limit clause for firebird, which uses the syntax closest to the SQL standard
|
|
*
|
|
* @param {String} sql
|
|
* @param {Number} limit
|
|
* @param {Number} offset
|
|
* @return {String}
|
|
*/
|
|
limit(origSql, limit, offset) {
|
|
let sql = `FIRST ${limit}`;
|
|
|
|
if (helpers.isNumber(offset))
|
|
{
|
|
sql += ` SKIP ${offset}`;
|
|
}
|
|
|
|
return origSql.replace(/SELECT/i, "SELECT " + sql);
|
|
}
|
|
|
|
/**
|
|
* SQL to insert a group of rows
|
|
*
|
|
* @param {String} table - The table to insert to
|
|
* @param {Array} [data] - The array of object containing data to insert
|
|
* @return {String}
|
|
*/
|
|
insertBatch() {
|
|
throw new Error("Not Implemented");
|
|
}
|
|
}
|
|
|
|
module.exports = new Firebird(); |