protected internal virtual void AppendOrderBy(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { int max = o.CountOrderByItems(); if (max > 0) { sb.Append(" "); sb.Append("Order By "); for (int i = 0; i < max; i++) { if (i > 0) { sb.Append(", "); } sb.Append(sqlManager.GetSQL(o.GetOrderBy(i), context, declarations)); if (o.IsOrderAscending(i)) { sb.Append(" Asc "); } else { sb.Append(" Desc "); } } } }
public CompiledInSelection(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] left, Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect query) { this.left = left; this.query = query; PrepareChildren(left); PrepareChildren(query); }
protected internal virtual void AppendDistinct(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { if (o.IsDistinct()) { sb.Append(" DISTINCT"); } }
protected internal virtual void AppendHaving(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression hav = o.GetHaving(); if (hav != null && hav.IsValid()) { sb.Append(" Having ").Append(sqlManager.GetSQL(hav, context, declarations)); } }
public override Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression Copy() { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect(); o.SetDescription(GetDescription()); o.GetClientParameters().SetAll(GetClientParameters()); o.AddQuery(this); return(o); }
public override void SetSubExpression(int index, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression expression) { if (index < left.Length) { left[index] = expression; } else { query = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect)expression; } }
public override string GetSQL(object oo, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect)oo; System.Text.StringBuilder sb = new System.Text.StringBuilder("Select "); AppendDistinct(o, sb, context, sqlManager, declarations); AppendFields(o, sb, context, sqlManager, declarations); AppendFrom(o, sb, context, sqlManager, declarations); AppendJoins(o, sb, context, sqlManager, declarations); AppendWhere(o, sb, context, sqlManager, declarations); AppendGroupBy(o, sb, context, sqlManager, declarations); AppendHaving(o, sb, context, sqlManager, declarations); AppendOrderBy(o, sb, context, sqlManager, declarations); return(sb.ToString()); }
public static Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect FindEnclosingSelect(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar v) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression)v; Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar rv = FindRootVar(v); while (e != null) { if (e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect s = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect)e; string entityAlias = s.GetEntityAlias(); if (entityAlias != null && (entityAlias).Length > 0) { if (rv.GetName().Equals(entityAlias)) { return(s); } } else { if (rv.GetName().Equals(s.GetEntityName())) { return(s); } } foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria c in s.GetJoins()) { string joinAlias = c.GetEntityAlias(); if (joinAlias != null && (joinAlias).Length > 0) { if (rv.GetName().Equals(joinAlias)) { return(s); } } else { if (rv.GetName().Equals(c.GetEntityName())) { return(s); } } } } e = e.GetParentExpression(); } return(null); }
public override string GetSQL(object oo, Net.Vpc.Upa.Persistence.EntityExecutionContext qlContext, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) /* throws Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledInSelection o = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledInSelection)oo; Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] left = o.GetLeft(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect query = o.GetSelection(); if (left.Length == 1) { string q = sqlManager.GetSQL(left[0], qlContext, declarations) + " in (" + sqlManager.GetSQL(query, qlContext, declarations) + ")"; return('(' + q + ')'); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledUplet uplet = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledUplet(left); System.Text.StringBuilder stringBuffer = new System.Text.StringBuilder(sqlManager.GetSQL(uplet, qlContext, declarations)); stringBuffer.Append(" In ("); stringBuffer.Append(sqlManager.GetSQL(query, qlContext, declarations)); stringBuffer.Append(")"); return('(' + stringBuffer.ToString() + ')'); }
protected internal virtual void AppendFields(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { sb.Append(" "); string aliasString = null; string valueString = null; bool started = false; if (o.CountFields() == 0) { sb.Append("..."); } else { // PersistenceStore persistenceStore = context.getPersistenceStore(); for (int i = 0; i < o.CountFields(); i++) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField fi = o.GetField(i); Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e = fi.GetExpression(); bool fieldIsSelect = e is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect; valueString = sqlManager.GetSQL(e, context, declarations); if (fieldIsSelect) { valueString = "(" + valueString + ")"; } aliasString = fi.GetAlias(); if (started) { sb.Append(","); } else { started = true; } if (aliasString == null) { sb.Append(valueString); } else { sb.Append(valueString); sb.Append(" "); sb.Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(aliasString), context, declarations)); } } } }
protected internal virtual void AppendJoins(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { for (int i = 0; i < o.CountJoins(); i++) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria e = o.GetJoin(i); // String _valueString = sqlManager.getSQL(e.getEntity(), context, declarations); string _aliasString = e.GetEntityAlias(); string _joinKey = "Inner Join"; switch (e.GetJoinType()) { case Net.Vpc.Upa.Expressions.JoinType.INNER_JOIN: _joinKey = "Inner Join"; break; case Net.Vpc.Upa.Expressions.JoinType.FULL_JOIN: _joinKey = "Full Join"; break; case Net.Vpc.Upa.Expressions.JoinType.LEFT_JOIN: _joinKey = "Left Join"; break; case Net.Vpc.Upa.Expressions.JoinType.RIGHT_JOIN: _joinKey = "Right Join"; break; case Net.Vpc.Upa.Expressions.JoinType.CROSS_JOIN: _joinKey = "Cross Join"; break; } sb.Append(" ").Append(_joinKey).Append(" ").Append(sqlManager.GetSQL(e.GetEntity(), context, declarations)); if (_aliasString != null) { Net.Vpc.Upa.Persistence.PersistenceStore store = context.GetPersistenceStore(); // String goodAlias = store.getPersistenceName(, PersistenceNameType.ALIAS); sb.Append(" ").Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(_aliasString), context, declarations)); } if (e.GetCondition() != null && e.GetCondition().IsValid()) { sb.Append(" On ").Append(sqlManager.GetSQL(e.GetCondition(), context, declarations)); } } }
protected internal virtual void AppendFrom(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect entity = o.GetEntity(); if (entity == null) { string fns = GetFromNullString(); if (fns != null) { sb.Append(" "); sb.Append(fns); } } else { sb.Append(" From "); if (entity is Net.Vpc.Upa.Expressions.Select) { sb.Append(sqlManager.GetSQL(entity, context, declarations)); } else { Net.Vpc.Upa.Persistence.PersistenceStore persistenceStore = context.GetPersistenceStore(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName entityName = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName)entity; Net.Vpc.Upa.Entity e = context.GetPersistenceUnit().GetEntity(entityName.GetName()); if (entityName.IsUseView() && e.NeedsView() && persistenceStore.IsViewSupported()) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName v = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName(e.GetName(), true); sb.Append(sqlManager.GetSQL(v, context, declarations)); } else { sb.Append(sqlManager.GetSQL(entityName, context, declarations)); } } } if (o.GetEntityAlias() != null) { Net.Vpc.Upa.Persistence.PersistenceStore store = context.GetPersistenceStore(); sb.Append(" ").Append(sqlManager.GetSQL(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledVar(o.GetEntityAlias()), context, declarations)); } }
protected internal virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect CompileSelect(Net.Vpc.Upa.Expressions.Select v, Net.Vpc.Upa.Impl.Uql.ExpressionTranslationManager manager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { if (v == null) { return(null); } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect s = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect(); s.SetDistinct(v.IsDistinct()); s.SetTop(v.GetTop()); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect nameOrSelect = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect)manager.TranslateAny(v.GetEntity(), declarations); string entityAlias = v.GetEntityAlias(); System.Collections.Generic.HashSet <string> aliases = new System.Collections.Generic.HashSet <string>(); if (entityAlias == null) { if (nameOrSelect is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName) { entityAlias = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName)nameOrSelect).GetName(); } else { entityAlias = "ALIAS"; } int i = 0; while (true) { string a2 = i == 0 ? entityAlias : (entityAlias + i); if (!aliases.Contains(a2)) { aliases.Add(a2); entityAlias = a2; break; } i++; } } s.From(nameOrSelect, entityAlias); for (int i = 0; i < v.CountJoins(); i++) { Net.Vpc.Upa.Expressions.JoinCriteria c = v.GetJoin(i); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect jnameOrSelect = (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect)manager.TranslateAny(c.GetEntity(), declarations); entityAlias = c.GetEntityAlias(); if (entityAlias == null) { if (nameOrSelect is Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName) { entityAlias = ((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledEntityName)nameOrSelect).GetName(); } else { entityAlias = "ALIAS"; } i = 0; while (true) { string a2 = i == 0 ? entityAlias : (entityAlias + i); if (!aliases.Contains(a2)) { aliases.Add(a2); entityAlias = a2; break; } i++; } } Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria cc = new Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria(c.GetJoinType(), jnameOrSelect, entityAlias, manager.TranslateAny(c.GetCondition(), declarations)); s.Join(cc); } for (int i = 0; i < v.CountFields(); i++) { Net.Vpc.Upa.Expressions.QueryField field = v.GetField(i); s.Field(manager.TranslateAny(field.GetExpression(), declarations), field.GetAlias()); } s.Where(manager.TranslateAny(v.GetWhere(), declarations)); s.Having(manager.TranslateAny(v.GetHaving(), declarations)); for (int i = 0; i < v.CountGroupByItems(); i++) { Net.Vpc.Upa.Expressions.Expression c = v.GetGroupBy(i); s.GroupBy(manager.TranslateAny(c, declarations)); } for (int i = 0; i < v.CountOrderByItems(); i++) { Net.Vpc.Upa.Expressions.Expression c = v.GetOrderBy(i); s.OrderBy(manager.TranslateAny(c, declarations), v.IsOrderAscending(i)); } return(s); }
public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect FullJoin(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect entityName, string alias, Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression condition) { return(Join(Net.Vpc.Upa.Expressions.JoinType.FULL_JOIN, entityName, alias, condition)); }
public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect CrossJoin(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect entityName, string alias) { return(Join(Net.Vpc.Upa.Expressions.JoinType.CROSS_JOIN, entityName, alias, null)); }
public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect AddQuery(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect other) { if (other == null) { return(this); } if (other.queryEntity != null) { From((Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect)(other.queryEntity.Copy()), other.queryEntityAlias); } for (int i = 0; i < (other.joinsTables).Count; i++) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledJoinCriteria j = other.GetJoin(i); Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect ee = j.GetEntity(); Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression cc = j.GetCondition(); Join(j.GetJoinType(), ee == null ? null : (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledNameOrSelect)ee.Copy(), j.GetEntityAlias(), cc == null ? null : cc.Copy()); } foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledQueryField field in other.fields) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ee = field.GetExpression(); AddField(ee == null ? null : ee.Copy(), field.GetAlias()); } foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledOrderItem compiledOrderItem in other.order.GetItems()) { Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression ee = compiledOrderItem.GetExpression(); OrderBy(ee == null ? null : ee.Copy(), compiledOrderItem.IsAsc()); } foreach (Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression e in other.groupByExpressions) { GroupBy(e == null ? null : e.Copy()); } AddWhere(other.where == null ? null : other.where.Copy()); AddHaving(other.having == null ? null : other.having.Copy()); Invalidate(); return(this); }
public CompiledSelect(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect other) : this() { AddQuery(other); }
protected internal virtual void AppendWhere(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect o, System.Text.StringBuilder sb, Net.Vpc.Upa.Persistence.EntityExecutionContext context, Net.Vpc.Upa.Impl.Persistence.SQLManager sqlManager, Net.Vpc.Upa.Impl.Uql.ExpressionDeclarationList declarations) { AppendWhere(o.GetWhere(), sb, context, sqlManager, declarations); }
public virtual Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect From(Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect view) { return(From(view, null)); }
public CompiledInSelection(Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression left, Net.Vpc.Upa.Impl.Uql.Compiledexpression.CompiledSelect query) : this(new Net.Vpc.Upa.Impl.Uql.Compiledexpression.DefaultCompiledExpression[] { left }, query) { }