var knex     = require('knex'),
    config   = require('../../config'),
    dbConfig = config.database,
    knexInstance;

function configure(dbConfig) {
    var client = dbConfig.client,
        pg;

    if (client === 'pg' || client === 'postgres' || client === 'postgresql') {
        try {
            pg = require('pg');
        } catch (e) {
            pg = require('pg.js');
        }

        // By default PostgreSQL returns data as strings along with an OID that identifies
        // its type.  We're setting the parser to convert OID 20 (int8) into a javascript
        // integer.
        pg.types.setTypeParser(20, function (val) {
            return val === null ? null : parseInt(val, 10);
        });
    }

    if (client === 'sqlite3') {
        dbConfig.useNullAsDefault = false;
    }

    return dbConfig;
}

if (!knexInstance && dbConfig && dbConfig.client) {
    knexInstance = knex(configure(dbConfig));
}

module.exports = knexInstance;

var knex     = require('knex'),
    config   = require('../../config'),
    dbConfig = config.database,
    knexInstance;

function configure(dbConfig) {
    var client = dbConfig.client,
        pg;

    if (client === 'pg' || client === 'postgres' || client === 'postgresql') {
        try {
            pg = require('pg');
        } catch (e) {
            pg = require('pg.js');
        }

        // By default PostgreSQL returns data as strings along with an OID that identifies
        // its type.  We're setting the parser to convert OID 20 (int8) into a javascript
        // integer.
        pg.types.setTypeParser(20, function (val) {
            return val === null ? null : parseInt(val, 10);
        });
    }

    if (client === 'sqlite3') {
        dbConfig.useNullAsDefault = dbConfig.useNullAsDefault || false;
    }

    return dbConfig;
}

if (!knexInstance && dbConfig && dbConfig.client) {
    knexInstance = knex(configure(dbConfig));
}

module.exports = knexInstance;

Make it possible to override `useNullAsDefault`
Make it possible to override `useNullAsDefault`

refs #6623, #6637

- this was supposed to be in the original
