orange-orm
Version:
Object Relational Mapper
18 lines (15 loc) • 767 B
JavaScript
var newSubFilter = require('./singleCommand/subFilter');
var newDiscriminatorSql = require('../../query/singleQuery/newDiscriminatorSql');
var extractFilter = require('../../query/extractFilter');
var newSingleCommandCore = require('./singleCommand/newSingleCommandCore');
var createAlias = require('./createAlias');
function _new(context, table, filter, relations, concurrencyState) {
var alias = createAlias(table, relations.length);
filter = extractFilter(filter);
filter = newSubFilter(context, relations, filter);
var discriminator = newDiscriminatorSql(context, table, alias);
if (discriminator !== '')
filter = filter.and(context, discriminator);
return newSingleCommandCore(context, table, filter, alias, concurrencyState);
}
module.exports = _new;