UNPKG

ts-sql-query

Version:

Type-safe SQL query builder like QueryDSL or JOOQ in Java or Linq in .Net for TypeScript with MariaDB, MySql, Oracle, PostgreSql, Sqlite and SqlServer support.

59 lines (58 loc) 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AbstractPostgreSqlConnection = void 0; const AbstractAdvancedConnection_1 = require("./AbstractAdvancedConnection"); class AbstractPostgreSqlConnection extends AbstractAdvancedConnection_1.AbstractAdvancedConnection { constructor(queryRunner, sqlBuilder) { super(queryRunner, sqlBuilder); queryRunner.useDatabase('postgreSql'); } transformPlaceholder(placeholder, type, forceTypeCast, valueSentToDB) { if (!forceTypeCast) { return super.transformPlaceholder(placeholder, type, forceTypeCast, valueSentToDB); } switch (type) { case 'boolean': return placeholder + '::bool'; case 'int': return placeholder + '::int4'; case 'bigint': return placeholder + '::int8'; case 'stringInt': return placeholder + '::int8'; case 'double': return placeholder + '::float8'; case 'stringDouble': return placeholder + '::float8'; case 'string': return placeholder + '::text'; case 'uuid': return placeholder + '::uuid'; case 'localDate': return placeholder + '::date'; case 'localTime': return placeholder + '::timestamp::time'; case 'localDateTime': return placeholder + '::timestamp'; } if (typeof valueSentToDB === 'bigint') { return placeholder + '::int8'; } if (typeof valueSentToDB === 'number') { if (Number.isInteger(valueSentToDB)) { if (valueSentToDB >= -2147483648 && valueSentToDB <= 2147483647) { // Int32 number return placeholder + '::int4'; } else { return placeholder + '::int8'; } } else { return placeholder + '::float8'; } } return placeholder; } } exports.AbstractPostgreSqlConnection = AbstractPostgreSqlConnection;