UNPKG

orange-orm

Version:

Object Relational Mapper

37 lines (26 loc) 839 B
var newShallowColumnSql = require('./newShallowColumnSql'); function joinLegToColumnSql(context, leg, alias, ignoreNull) { var span = leg.span; var shallowColumnSql = newShallowColumnSql(context, span.table, alias, span, ignoreNull); var joinedColumnSql = newJoinedColumnSql(context, span, alias, ignoreNull); return ',' + shallowColumnSql + joinedColumnSql; } function newJoinedColumnSql(context, span, alias, ignoreNull) { var c = {}; var sql = ''; c.visitJoin = function(leg) { var joinSql = joinLegToColumnSql(context, leg, alias + leg.name, ignoreNull); sql = sql + joinSql; }; c.visitOne = function(leg) { c.visitJoin(leg); }; c.visitMany = function() { }; span.legs.forEach(onEach); function onEach(leg) { leg.accept(c); } return sql; } module.exports = { joinLegToColumnSql, newJoinedColumnSql };