15 types derived from SqlExpression
System.Data.Linq (15)
SqlClient\Common\SqlNode.cs (15)
198internal abstract class SqlSimpleTypeExpression : SqlExpression { 231internal class SqlDiscriminatedType : SqlExpression { 572internal class SqlAliasRef : SqlExpression { 748internal class SqlLift : SqlExpression { 1148internal class SqlSearchedCase : SqlExpression { 1192internal class SqlSimpleCase : SqlExpression { 1236internal class SqlClientCase : SqlExpression { 1314internal class SqlTypeCase : SqlExpression { 1470internal class SqlColumn : SqlExpression { 1544internal class SqlColumnRef : SqlExpression { 1838internal class SqlExprSet : SqlExpression { 2099internal class SqlDoNotVisitExpression : SqlExpression { 2204internal class SqlSharedExpression : SqlExpression { 2229internal class SqlSharedExpressionRef : SqlExpression { 2246internal class SqlSimpleExpression : SqlExpression {
1638 references to SqlExpression
System.Data.Linq (1638)
SqlClient\Common\Expressions.cs (1)
25internal static KnownExpression Known(SqlExpression expr) {
SqlClient\Common\SqlFactory.cs (140)
33internal SqlExpression ConvertTo(Type clrType, ProviderType sqlType, SqlExpression expr) { 37internal SqlExpression ConvertTo(Type clrType, SqlExpression expr) { 60internal SqlExpression ConvertToBigint(SqlExpression expr) { 64internal SqlExpression ConvertToInt(SqlExpression expr) { 68internal SqlExpression ConvertToDouble(SqlExpression expr) { 75internal SqlExpression ConvertTimeToDouble(SqlExpression exp) { 79internal SqlExpression ConvertToBool(SqlExpression expr) { 83internal SqlExpression ConvertToDateTime(SqlExpression expr) { 87internal SqlExpression AndAccumulate(SqlExpression left, SqlExpression right) { 99internal SqlExpression OrAccumulate(SqlExpression left, SqlExpression right) { 111internal SqlExpression Concat(params SqlExpression[] expressions) { 112SqlExpression result = expressions[expressions.Length - 1]; 119internal SqlExpression Add(params SqlExpression[] expressions) { 120SqlExpression sum = expressions[expressions.Length - 1]; 127internal SqlExpression Subtract(SqlExpression first, SqlExpression second) { 131internal SqlExpression Multiply(params SqlExpression[] expressions) { 132SqlExpression result = expressions[expressions.Length - 1]; 139internal SqlExpression Divide(SqlExpression first, SqlExpression second) { 143internal SqlExpression Add(SqlExpression expr, int second) { 147internal SqlExpression Subtract(SqlExpression expr, int second) { 151internal SqlExpression Multiply(SqlExpression expr, long second) { 155internal SqlExpression Divide(SqlExpression expr, long second) { 159internal SqlExpression Mod(SqlExpression expr, long second) { 167internal SqlExpression LEN(SqlExpression expr) { 168return FunctionCall(typeof(int), "LEN", new SqlExpression[] { expr }, expr.SourceExpression); 175internal SqlExpression DATALENGTH(SqlExpression expr) { 176return FunctionCall(typeof(int), "DATALENGTH", new SqlExpression[] { expr }, expr.SourceExpression); 183internal SqlExpression CLRLENGTH(SqlExpression expr) { 187internal SqlExpression DATEPART(string partName, SqlExpression expr) { 191new SqlExpression[] { 199internal SqlExpression DATEADD(string partName, SqlExpression value, SqlExpression expr) { 203internal SqlExpression DATEADD(string partName, SqlExpression value, SqlExpression expr, Expression sourceExpression, bool asNullable) { 209new SqlExpression[] { 217internal SqlExpression DATETIMEOFFSETADD(string partName, SqlExpression value, SqlExpression expr) { 221internal SqlExpression DATETIMEOFFSETADD(string partName, SqlExpression value, SqlExpression expr, Expression sourceExpression, bool asNullable) { 227new SqlExpression[] { 237internal SqlExpression AddTimeSpan(SqlExpression dateTime, SqlExpression timeSpan) { 241internal SqlExpression AddTimeSpan(SqlExpression dateTime, SqlExpression timeSpan, bool asNullable) { 244SqlExpression ns = DATEPART("NANOSECOND", timeSpan); 245SqlExpression ms = DATEPART("MILLISECOND", timeSpan); 246SqlExpression ss = DATEPART("SECOND", timeSpan); 247SqlExpression mi = DATEPART("MINUTE", timeSpan); 248SqlExpression hh = DATEPART("HOUR", timeSpan); 250SqlExpression result = dateTime; 266internal static bool IsSqlDateTimeType(SqlExpression exp) { 271internal static bool IsSqlDateType(SqlExpression exp) { 275internal static bool IsSqlTimeType(SqlExpression exp) { 279internal static bool IsSqlDateTimeOffsetType(SqlExpression exp) { 283internal static bool IsSqlHighPrecisionDateTimeType(SqlExpression exp) { 288internal SqlExpression Value(Type clrType, ProviderType sqlType, object value, bool isClientSpecified, Expression sourceExpression) { 299internal SqlExpression StaticType(MetaType typeOf, Expression sourceExpression) { 312internal SqlExpression DiscriminatedType(SqlExpression discriminator, MetaType targetType) { 320internal SqlUnary Unary(SqlNodeType nodeType, SqlExpression expression) { 328internal SqlUnary Unary(SqlNodeType nodeType, SqlExpression expression, Expression sourceExpression) { 332internal SqlUnary Unary(SqlNodeType nodeType, SqlExpression expression, MethodInfo method, Expression sourceExpression) { 363internal SqlUnary UnaryConvert(Type targetClrType, ProviderType targetSqlType, SqlExpression expression, Expression sourceExpression) { 369internal SqlUnary UnaryValueOf(SqlExpression expression, Expression sourceExpression) { 374internal SqlBinary Binary(SqlNodeType nodeType, SqlExpression left, SqlExpression right) { 378internal SqlBinary Binary(SqlNodeType nodeType, SqlExpression left, SqlExpression right, MethodInfo method) { 382internal SqlBinary Binary(SqlNodeType nodeType, SqlExpression left, SqlExpression right, Type clrType) { 386internal SqlBinary Binary(SqlNodeType nodeType, SqlExpression left, SqlExpression right, MethodInfo method, Type clrType) { 418internal SqlBetween Between(SqlExpression expr, SqlExpression start, SqlExpression end, Expression source) { 422internal SqlIn In(SqlExpression expr, IEnumerable<SqlExpression> values, Expression source) { 426internal SqlLike Like(SqlExpression expr, SqlExpression pattern, SqlExpression escape, Expression source) { 432internal SqlSearchedCase SearchedCase(SqlWhen[] whens, SqlExpression @else, Expression sourceExpression) { 441internal SqlExpression Case(Type clrType, SqlExpression discriminator, List<SqlExpression> matches, List<SqlExpression> values, Expression sourceExpression) { 446foreach (SqlExpression value in values) { 465internal SqlExpression Parameter(object value, Expression source) { 471internal SqlExpression ValueFromObject(object value, Expression sourceExpression) { 475internal SqlExpression ValueFromObject(object value, bool isClientSpecified, Expression sourceExpression) { 485internal SqlExpression ValueFromObject(object value, Type clrType, bool isClientSpecified, Expression sourceExpression) { 493public SqlExpression TypedLiteralNull(Type type, Expression sourceExpression) { 497internal SqlMember Member(SqlExpression expr, MetaDataMember member) { 501internal SqlMember Member(SqlExpression expr, MemberInfo member) { 512internal SqlExpression TypeCase(Type clrType, MetaType rowType, SqlExpression discriminator, IEnumerable<SqlTypeCaseWhen> whens, Expression sourceExpression) { 516internal SqlNew New(MetaType type, ConstructorInfo cons, IEnumerable<SqlExpression> args, IEnumerable<MemberInfo> argMembers, IEnumerable<SqlMemberAssign> bindings, Expression sourceExpression) { 521internal SqlMethodCall MethodCall(MethodInfo method, SqlExpression obj, SqlExpression[] args, Expression sourceExpression) { 525internal SqlMethodCall MethodCall(Type returnType, MethodInfo method, SqlExpression obj, SqlExpression[] args, Expression sourceExpression) { 530internal SqlExprSet ExprSet(SqlExpression[] exprs, Expression sourceExpression) { 560internal SqlDoNotVisitExpression DoNotVisitExpression(SqlExpression expr) { 564internal SqlFunctionCall FunctionCall(Type clrType, string name, IEnumerable<SqlExpression> args, Expression source) { 569internal SqlFunctionCall FunctionCall(Type clrType, ProviderType sqlType, string name, IEnumerable<SqlExpression> args, Expression source) { 573internal SqlTableValuedFunctionCall TableValuedFunctionCall(MetaType rowType, Type clrType, string name, IEnumerable<SqlExpression> args, Expression source) { 593internal SqlJoin MakeJoin(SqlJoinType joinType, SqlSource location, SqlAlias alias, SqlExpression condition, Expression source) {
SqlClient\Common\SqlNode.cs (207)
216SqlExpression obj; 217internal SqlDiscriminatorOf(SqlExpression obj, Type clrType, ProviderType sqlType, Expression sourceExpression) 221internal SqlExpression Object { 233private SqlExpression discriminator; 235internal SqlDiscriminatedType(ProviderType sqlType, SqlExpression discriminator, MetaType targetType, Expression sourceExpression) 248internal SqlExpression Discriminator { 271private SqlExpression top; 274private SqlExpression selection; 277private SqlExpression where; 278private List<SqlExpression> groupBy; 279private SqlExpression having; 284internal SqlSelect(SqlExpression selection, SqlSource from, Expression sourceExpression) 289this.groupBy = new List<SqlExpression>(); 294internal SqlExpression Top { 309internal SqlExpression Selection { 332internal SqlExpression Where { 342internal List<SqlExpression> GroupBy { 346internal SqlExpression Having { 424private SqlExpression projection; 425private List<SqlExpression> args; 428internal SqlUserQuery(SqlNodeType nt, SqlExpression projection, IEnumerable<SqlExpression> args, Expression source) 431this.args = (args != null) ? new List<SqlExpression>(args) : new List<SqlExpression>(); 435internal SqlUserQuery(string queryText, SqlExpression projection, IEnumerable<SqlExpression> args, Expression source) 439this.args = (args != null) ? new List<SqlExpression>(args) : new List<SqlExpression>(); 447internal SqlExpression Projection { 456internal List<SqlExpression> Arguments { 476internal SqlStoredProcedureCall(MetaFunction function, SqlExpression projection, IEnumerable<SqlExpression> args, Expression source) 565if (!(value is SqlExpression || value is SqlSelect || value is SqlTable || value is SqlUnion)) 594SqlExpression exp = node as SqlExpression; 613SqlExpression exp = node as SqlExpression; 633private SqlExpression condition; 635internal SqlJoin(SqlJoinType type, SqlSource left, SqlSource right, SqlExpression cond, Expression sourceExpression) 666internal SqlExpression Condition { 717if (!(node is SqlExpression || node is SqlSelect || node is SqlUnion)) 722SqlExpression exp = this.Left as SqlExpression; 732SqlExpression exp = this.Left as SqlExpression; 749internal SqlExpression liftedExpression; 751internal SqlLift(Type type, SqlExpression liftedExpression, Expression sourceExpression) 758internal SqlExpression Expression { 779private SqlExpression expression; 781internal SqlOrderExpression(SqlOrderType type, SqlExpression expr) { 791internal SqlExpression Expression { 843private static SqlColumn UnwrapColumn(SqlExpression expr) { 886private SqlExpression operand; 890internal SqlUnary(SqlNodeType nt, Type clrType, ProviderType sqlType, SqlExpression expr, Expression sourceExpression) 894internal SqlUnary(SqlNodeType nt, Type clrType, ProviderType sqlType, SqlExpression expr, MethodInfo method, Expression sourceExpression) 923internal SqlExpression Operand { 938private SqlExpression left; 939private SqlExpression right; 943internal SqlBinary(SqlNodeType nt, Type clrType, ProviderType sqlType, SqlExpression left, SqlExpression right) 947internal SqlBinary(SqlNodeType nt, Type clrType, ProviderType sqlType, SqlExpression left, SqlExpression right, MethodInfo method) 979internal SqlExpression Left { 988internal SqlExpression Right { 1003SqlExpression expression; 1004SqlExpression start; 1005SqlExpression end; 1007internal SqlBetween(Type clrType, ProviderType sqlType, SqlExpression expr, SqlExpression start, SqlExpression end, Expression source) 1014internal SqlExpression Expression { 1019internal SqlExpression Start { 1024internal SqlExpression End { 1031private SqlExpression expression; 1032private List<SqlExpression> values; 1034internal SqlIn(Type clrType, ProviderType sqlType, SqlExpression expression, IEnumerable<SqlExpression> values, Expression sourceExpression) 1037this.values = values != null ? new List<SqlExpression>(values) : new List<SqlExpression>(0); 1040internal SqlExpression Expression { 1049internal List<SqlExpression> Values { 1055private SqlExpression expression; 1056private SqlExpression pattern; 1057private SqlExpression escape; 1059internal SqlLike(Type clrType, ProviderType sqlType, SqlExpression expr, SqlExpression pattern, SqlExpression escape, Expression source) 1070internal SqlExpression Expression { 1081internal SqlExpression Pattern { 1092internal SqlExpression Escape { 1103private SqlExpression matchExpression; 1104private SqlExpression valueExpression; 1106internal SqlWhen(SqlExpression match, SqlExpression value) { 1114internal SqlExpression Match { 1126internal SqlExpression Value { 1150private SqlExpression @else; 1152internal SqlSearchedCase(Type clrType, IEnumerable<SqlWhen> whens, SqlExpression @else, Expression sourceExpression) 1166internal SqlExpression Else { 1193private SqlExpression expression; 1196internal SqlSimpleCase(Type clrType, SqlExpression expr, IEnumerable<SqlWhen> whens, Expression sourceExpression) 1206internal SqlExpression Expression { 1237private SqlExpression expression; 1240internal SqlClientCase(Type clrType, SqlExpression expr, IEnumerable<SqlClientWhen> whens, Expression sourceExpression) 1250internal SqlExpression Expression { 1274private SqlExpression matchExpression; 1275private SqlExpression matchValue; 1277internal SqlClientWhen(SqlExpression match, SqlExpression value) { 1285internal SqlExpression Match { 1294internal SqlExpression Value { 1316private SqlExpression discriminator; 1320internal SqlTypeCase(Type clrType, ProviderType sqlType, MetaType rowType, SqlExpression discriminator, IEnumerable<SqlTypeCaseWhen> whens, Expression sourceExpression) 1332internal SqlExpression Discriminator { 1362private SqlExpression match; 1363private SqlExpression @new; 1365internal SqlTypeCaseWhen(SqlExpression match, SqlExpression typeBinding) { 1369internal SqlExpression Match { 1377internal SqlExpression TypeBinding { 1442private SqlExpression expression; 1445internal SqlMember(Type clrType, ProviderType sqlType, SqlExpression expr, MemberInfo member) 1455internal SqlExpression Expression { 1475private SqlExpression expression; 1478internal SqlColumn(Type clrType, ProviderType sqlType, string name, MetaDataMember member, SqlExpression expr, Expression sourceExpression) 1492internal SqlColumn(string name, SqlExpression expr) 1519internal SqlExpression Expression { 1600private SqlExpression expression; 1602internal SqlMemberAssign(MemberInfo member, SqlExpression expr) 1614internal SqlExpression Expression { 1625private SqlExpression key; 1626private SqlExpression group; 1628internal SqlGrouping(Type clrType, ProviderType sqlType, SqlExpression key, SqlExpression group, Expression sourceExpression) 1636internal SqlExpression Key { 1648internal SqlExpression Group { 1663private List<SqlExpression> args; 1667internal SqlNew(MetaType metaType, ProviderType sqlType, ConstructorInfo cons, IEnumerable<SqlExpression> args, IEnumerable<MemberInfo> argMembers, IEnumerable<SqlMemberAssign> members, Expression sourceExpression) 1675this.args = new List<SqlExpression>(); 1697internal List<SqlExpression> Args { 1709internal SqlExpression Find(MemberInfo mi) { 1729private SqlExpression obj; 1730private List<SqlExpression> arguments; 1732internal SqlMethodCall(Type clrType, ProviderType sqlType, MethodInfo method, SqlExpression obj, IEnumerable<SqlExpression> args, Expression sourceExpression) 1738this.arguments = new List<SqlExpression>(); 1747internal SqlExpression Object { 1758internal List<SqlExpression> Arguments { 1776private List<SqlExpression> expressions; 1778internal SqlClientArray(Type clrType, ProviderType sqlType, SqlExpression[ ] exprs, Expression sourceExpression) 1780this.expressions = new List<SqlExpression>(); 1785internal List<SqlExpression> Expressions { 1792private SqlExpression expression; 1794private List<SqlExpression> keyExpressions; 1795private SqlExpression expansion; 1798internal SqlLink(object id, MetaType rowType, Type clrType, ProviderType sqlType, SqlExpression expression, MetaDataMember member, IEnumerable<SqlExpression> keyExpressions, SqlExpression expansion, Expression sourceExpression) 1805this.keyExpressions = new List<SqlExpression>(); 1814internal SqlExpression Expansion { 1820internal SqlExpression Expression { 1829internal List<SqlExpression> KeyExpressions { 1839private List<SqlExpression> expressions; 1841internal SqlExprSet(Type clrType, IEnumerable <SqlExpression> exprs, Expression sourceExpression) 1843this.expressions = new List<SqlExpression>(exprs); 1846internal List<SqlExpression> Expressions { 1854internal SqlExpression GetFirstExpression() { 1855SqlExpression expr = expressions[0]; 1896private List<SqlExpression> arguments; 1903this.arguments = new List<SqlExpression>(); 1916internal List<SqlExpression> Arguments { 1931private SqlExpression expression; 1932private SqlExpression count; 1934internal SqlJoinedCollection(Type clrType, ProviderType sqlType, SqlExpression expression, SqlExpression count, Expression sourceExpression) 1940internal SqlExpression Expression { 1949internal SqlExpression Count { 1988private SqlExpression expression; 1992internal SqlInsert(SqlTable table, SqlExpression expr, Expression sourceExpression) 2013internal SqlExpression Expression { 2067private SqlExpression leftValue; 2068private SqlExpression rightValue; 2070internal SqlAssign(SqlExpression lValue, SqlExpression rValue, Expression sourceExpression) 2076internal SqlExpression LValue { 2087internal SqlExpression RValue { 2100private SqlExpression expression; 2102internal SqlDoNotVisitExpression(SqlExpression expr) 2109internal SqlExpression Expression { 2119private SqlExpression hasValue; 2120private SqlExpression expressionValue; 2122internal SqlOptionalValue( SqlExpression hasValue, SqlExpression value) 2128internal SqlExpression HasValue { 2137internal SqlExpression Value { 2151private List<SqlExpression> arguments; 2153internal SqlFunctionCall(Type clrType, ProviderType sqlType, string name, IEnumerable <SqlExpression > args , Expression source) 2157internal SqlFunctionCall(SqlNodeType nodeType, Type clrType, ProviderType sqlType, string name , IEnumerable <SqlExpression> args , Expression source) 2160this.arguments = new List<SqlExpression>(args); 2167internal List<SqlExpression> Arguments { 2180internal SqlTableValuedFunctionCall(MetaType rowType, Type clrType, ProviderType sqlType, string name, IEnumerable <SqlExpression > args , Expression source) 2205private SqlExpression expr; 2207internal SqlSharedExpression(SqlExpression expr) 2212internal SqlExpression Expression { 2247private SqlExpression expr; 2249internal SqlSimpleExpression(SqlExpression expr) 2254internal SqlExpression Expression {
SqlClient\Common\SqlNodeTypeOperators.cs (1)
176internal static bool IsClientAidedExpression(this SqlExpression expr) {
SqlClient\Common\SqlVisitor.cs (48)
261internal object Eval(SqlExpression expr) { 268internal virtual SqlExpression VisitDoNotVisit(SqlDoNotVisitExpression expr) { 278internal virtual SqlExpression VisitExpression(SqlExpression exp) { 279return (SqlExpression)this.Visit(exp); 284internal virtual SqlExpression VisitNop(SqlNop nop) { 287internal virtual SqlExpression VisitLift(SqlLift lift) { 291internal virtual SqlExpression VisitUnaryOperator(SqlUnary uo) { 295internal virtual SqlExpression VisitBinaryOperator(SqlBinary bo) { 304internal virtual SqlExpression VisitAliasRef(SqlAliasRef aref) { 311internal virtual SqlExpression VisitCast(SqlUnary c) { 315internal virtual SqlExpression VisitTreat(SqlUnary t) { 342internal virtual SqlExpression VisitUserColumn(SqlUserColumn suc) { 345internal virtual SqlExpression VisitUserRow(SqlUserRow row) { 354internal virtual SqlExpression VisitNew(SqlNew sox) { 370internal virtual SqlExpression VisitClientQuery(SqlClientQuery cq) { 376internal virtual SqlExpression VisitJoinedCollection(SqlJoinedCollection jc) { 381internal virtual SqlExpression VisitClientArray(SqlClientArray scar) { 387internal virtual SqlExpression VisitClientParameter(SqlClientParameter cp) { 390internal virtual SqlExpression VisitColumn(SqlColumn col) { 394internal virtual SqlExpression VisitColumnRef(SqlColumnRef cref) { 397internal virtual SqlExpression VisitParameter(SqlParameter p) { 400internal virtual SqlExpression VisitValue(SqlValue value) { 403internal virtual SqlExpression VisitSubSelect(SqlSubSelect ss) { 412internal virtual SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 416internal virtual SqlExpression VisitMultiset(SqlSubSelect sms) { 420internal virtual SqlExpression VisitElement(SqlSubSelect elem) { 424internal virtual SqlExpression VisitExists(SqlSubSelect sqlExpr) { 488internal virtual SqlExpression VisitSearchedCase(SqlSearchedCase c) { 497internal virtual SqlExpression VisitClientCase(SqlClientCase c) { 506internal virtual SqlExpression VisitSimpleCase(SqlSimpleCase c) { 515internal virtual SqlExpression VisitTypeCase(SqlTypeCase tc) { 529internal virtual SqlExpression VisitExprSet(SqlExprSet xs) { 535internal virtual SqlExpression VisitVariable(SqlVariable v) { 538internal virtual SqlExpression VisitOptionalValue(SqlOptionalValue sov) { 543internal virtual SqlExpression VisitBetween(SqlBetween between) { 549internal virtual SqlExpression VisitIn(SqlIn sin) { 556internal virtual SqlExpression VisitLike(SqlLike like) { 562internal virtual SqlExpression VisitFunctionCall(SqlFunctionCall fc) { 568internal virtual SqlExpression VisitTableValuedFunctionCall(SqlTableValuedFunctionCall fc) { 574internal virtual SqlExpression VisitMethodCall(SqlMethodCall mc) { 581internal virtual SqlExpression VisitSharedExpression(SqlSharedExpression shared) { 585internal virtual SqlExpression VisitSharedExpressionRef(SqlSharedExpressionRef sref) { 588internal virtual SqlExpression VisitSimpleExpression(SqlSimpleExpression simple) { 592internal virtual SqlExpression VisitGrouping(SqlGrouping g) { 597internal virtual SqlExpression VisitDiscriminatedType(SqlDiscriminatedType dt) { 601internal virtual SqlExpression VisitDiscriminatorOf(SqlDiscriminatorOf dof) { 613internal bool RefersToColumn(SqlExpression exp, SqlColumn col) {
SqlClient\Query\ContainsRowNumberChecker.cs (2)
48internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 52internal override SqlExpression VisitSubSelect(SqlSubSelect ss) {
SqlClient\Query\LongTypeConverter.cs (5)
37private SqlExpression ConvertToMax(SqlExpression expr, ProviderType newType) { 44private SqlExpression ConvertToMax(SqlExpression expr, out bool changed) { 105internal override SqlExpression VisitFunctionCall(SqlFunctionCall fc) {
SqlClient\Query\MethodCallConverter.cs (14)
147internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 175private SqlBinary MakeCompareTo(SqlExpression left, SqlExpression right, SqlNodeType op, int iValue) { 190private SqlExpression CreateComparison(SqlExpression a, SqlExpression b, Expression source) { 191SqlExpression lower = sql.Binary(SqlNodeType.LT, a, b); 192SqlExpression equal = sql.Binary(SqlNodeType.EQ2V, a, b); 213internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 224List<SqlExpression> exprs = null; 235SqlExpression sum; 312private SqlExpression TranslateVbIIF(SqlMethodCall mc) { 317SqlExpression @else = mc.Arguments[2]; 330internal override SqlExpression VisitTreat(SqlUnary t) {
SqlClient\Query\QueryConverter.cs (146)
45Dictionary<ParameterExpression, SqlExpression> map; 55internal SqlExpression ElementOnGroupSource; 84this.map = new Dictionary<ParameterExpression, SqlExpression>(); 115SqlExpression sqlExpression = retNode as SqlExpression; 311SqlExpression sqlExpr = (SqlExpression)node; 336SqlExpression expr = this.VisitExpression(invoke.Expression); 355SqlExpression [] args = new SqlExpression[invoke.Arguments.Count]; 357args[i] = (SqlExpression)this.Visit(invoke.Arguments[i]); 360return sql.MethodCall(invoke.Type, typeof(Delegate).GetMethod("DynamicInvoke"), expr, new SqlExpression[] {sca}, this.dominatingExpression); 399private SqlExpression VisitExpression(Expression exp) { 402SqlExpression x = result as SqlExpression; 449SqlExpression expr = project as SqlExpression; 471SqlExpression projection = selRef; 492SqlExpression outerKey = this.VisitExpression(outerKeySelector.Body); 495SqlExpression innerKey = this.VisitExpression(innerKeySelector.Body); 499SqlExpression result = this.VisitExpression(resultSelector.Body); 501SqlExpression condition = sql.Binary(SqlNodeType.EQ, outerKey, innerKey); 524SqlExpression outerKey = this.VisitExpression(outerKeySelector.Body); 527SqlExpression innerKey = this.VisitExpression(innerKeySelector.Body); 530SqlExpression pred = sql.Binary(SqlNodeType.EQ, outerKey, innerKey); 538SqlExpression result = this.VisitExpression(resultSelector.Body); 548SqlExpression opt = new SqlOptionalValue( 562SqlExpression litNull = sql.TypedLiteralNull(typeof(string), this.dominatingExpression); 615SqlExpression expr = this.VisitExpression(b.Expression); 616SqlExpression result = null; 638SqlExpression expr = node as SqlExpression; 651SqlExpression exp = this.VisitExpression(c.Operand); 662SqlExpression array = this.VisitExpression(b.Left); 663SqlExpression index = this.VisitExpression(b.Right); 687SqlExpression exp = this.VisitExpression(c.Operand); 688return sql.MethodCall(c.Type, c.Method, null, new SqlExpression[] { exp }, dominatingExpression); 694SqlExpression expr = this.VisitExpression(expression); 698private SqlNode ConvertDateToDateTime2(SqlExpression expr) { 699SqlExpression datetime2 = new SqlVariable(expr.ClrType, expr.SqlType, "DATETIME2", expr.SourceExpression); 700return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[2] { datetime2, expr }, expr.SourceExpression); 703private SqlNode ChangeType(SqlExpression expr, Type type) { 725expr = (SqlExpression) ConvertDateToDateTime2(expr); 808private SqlExpression VisitConditional(ConditionalExpression cond) { 811SqlExpression @else = this.VisitExpression(cond.IfFalse); 821private SqlExpression VisitNew(NewExpression qn) { 824return this.VisitCast(Expression.Convert(qn.Arguments[0], qn.Type)) as SqlExpression; 827return this.VisitCast(Expression.Convert(qn.Arguments[0], typeof(decimal))) as SqlExpression; 836SqlExpression[] args = null; 839args = new SqlExpression[qn.Arguments.Count]; 849private SqlExpression VisitMemberInit(MemberInitExpression init) { 854SqlExpression[] args = null; 859return this.VisitCast(Expression.Convert(qn.Arguments[0], typeof(decimal))) as SqlExpression; 863args = new SqlExpression[qn.Arguments.Count]; 875SqlExpression expr = this.VisitExpression(mb.Expression); 930SqlExpression takeExp = this.VisitExpression(count); 940SqlExpression skipExp = this.VisitExpression(mce.Arguments[1]); 964private bool CanSkipOnSelection(SqlExpression selection) { 1002SqlExpression expr = (SqlExpression)node; 1042SqlExpression skipExp = this.VisitExpression(skipCount); 1056private SqlSelect GenerateSkipTake(SqlSelect sequence, SqlExpression skipExp, SqlExpression takeExp) { 1084sql.Binary(SqlNodeType.Add, (SqlExpression)SqlDuplicator.Copy(skipExp), takeExp), 1143SqlExpression sqlExpr; 1162List<SqlExpression> sqlParams = GetFunctionParameters(mce, function); 1169SqlExpression projection = this.translator.BuildProjection(aref, function.ResultRowTypes[0].InheritanceRoot, this.allowDeferred, null, mce); 1184List<SqlExpression> sqlParams = GetFunctionParameters(mce, function); 1216private List<SqlExpression> GetFunctionParameters(MethodCallExpression mce, MetaFunction function) { 1217List<SqlExpression> sqlParams = new List<SqlExpression>(mce.Arguments.Count); 1221SqlExpression newParamExpression = this.VisitExpression(mce.Arguments[i]); 1241SqlExpression[] args = new SqlExpression[arguments.Length]; 1267SqlExpression exp = this.VisitExpression(u.Operand); 1270return sql.MethodCall(u.Type, u.Method, null, new SqlExpression[] { exp }, dominatingExpression); 1273SqlExpression result = null; 1297SqlExpression left = this.VisitExpression(b.Left); 1298SqlExpression right = this.VisitExpression(b.Right); 1301return sql.MethodCall(b.Type, b.Method, null, new SqlExpression[] { left, right }, dominatingExpression); 1304SqlExpression result = null; 1377private SqlExpression MakeCoalesce(SqlExpression left, SqlExpression right, Type resultType) { 1386return sql.SearchedCase(whens.ToArray(), (SqlExpression)dup.Duplicate(left), this.dominatingExpression); 1394private void CompensateForLowerPrecedenceOfDateType(ref SqlExpression left, ref SqlExpression right) { 1396right = (SqlExpression)ConvertDateToDateTime2(right); 1399left = (SqlExpression)ConvertDateToDateTime2(left); 1440SqlExpression any = this.GenerateQuantifier(alias2, sql.Binary(SqlNodeType.EQ2V, aref1, aref2), true); 1464SqlExpression any = this.GenerateQuantifier(alias2, sql.Binary(SqlNodeType.EQ2V, aref1, aref2), true); 1501SqlExpression expr = this.VisitExpression(expression.Body); 1519SqlExpression expr = this.VisitExpression(expression.Body); 1540SqlExpression keyExpr = this.VisitExpression(keyLambda.Body); 1550SqlExpression keyDup = this.VisitExpression(keyLambda.Body); 1552SqlExpression elemExpr = null; 1553SqlExpression elemOnGroupSource = null; 1593SqlExpression keyGroup = new SqlGrouping(elementType, this.typeProvider.From(elementType), keyExpr, ss, this.dominatingExpression); 1604SqlExpression resultExpr = this.VisitExpression(resultSelector.Body); 1615SqlExpression resultExpr = new SqlGrouping(elementType, this.typeProvider.From(elementType), keyExpr, ss, this.dominatingExpression); 1673SqlExpression exp = (lambda != null) ? this.VisitExpression(lambda.Body) : null; 1674SqlExpression where = null; 1703SqlExpression exp = null; 1706this.map[lambda.Parameters[0]] = (SqlExpression)SqlDuplicator.Copy(info.ElementOnGroupSource); 1716SqlExpression agg = this.GetAggregate(aggType, returnType, exp); 1726SqlExpression exp = (lambda != null) ? this.VisitExpression(lambda.Body) : null; 1756SqlExpression expr = source as SqlExpression; 1771private SqlExpression GetAggregate(SqlNodeType aggType, Type clrType, SqlExpression exp) { 1787SqlExpression expr = this.VisitExpression(value); 1788List<SqlExpression> list = values.OfType<object>().Select(v => sql.ValueFromObject(v, elemType, true, this.dominatingExpression)).ToList(); 1798private SqlExpression GenerateInExpression(SqlExpression expr, List<SqlExpression> list) { 1806SqlExpression pred = sql.Binary(SqlNodeType.EQ, expr, list[0]); 1808pred = sql.Binary(SqlNodeType.Or, pred, sql.Binary(SqlNodeType.EQ, (SqlExpression)SqlDuplicator.Copy(expr), list[i])); 1824SqlExpression cond = lambda != null ? this.VisitExpression(lambda.Body) : null; 1828private SqlExpression GenerateQuantifier(SqlAlias alias, SqlExpression cond, bool isAny) { 1845private void CheckContext(SqlExpression expr) { 1939SqlExpression obj = VisitExpression(mc.Object); 1940SqlExpression[] args = new SqlExpression[mc.Arguments.Count]; 1948SqlExpression exp = this.VisitExpression(expression); 2007List<SqlExpression> sqlParams = this.GetFunctionParameters(mc, function); 2412SqlExpression sqlExprItem = sql.ValueFromObject(conItem.Value, true, source); 2447SqlExpression projection = this.VisitExpression(resultSelector.Body); 2450SqlExpression pred = null; 2459SqlExpression itemExpression = this.VisitExpression(item); 2470SqlExpression exp = this.GetIdentityExpression(id, false); 2482SqlExpression proj = this.VisitExpression(rs.Body); 2517private SqlExpression GetIdentityExpression(MetaDataMember id, bool isOutputFromInsert) { 2547private SqlExpression GetRowCountExpression() { 2669internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 2671var r = mc.Arguments[1]; 2682private SqlExpression VisitNewArrayInit(NewArrayExpression arr) { 2683SqlExpression[] exprs = new SqlExpression[arr.Expressions.Count]; 2690private SqlExpression VisitListInit(ListInitExpression list) { 2696SqlExpression[] exprs = new SqlExpression[list.Initializers.Count]; 2813internal override SqlExpression VisitNew(SqlNew sox) { 2821foreach (SqlExpression expr in sox.Args) { 2831SqlExpression expr = ma.Expression; 2866private static bool IsColumnMatch(MemberInfo column, SqlExpression expr) {
SqlClient\Query\SimpleExpression.cs (1)
19internal static bool IsSimple(SqlExpression expr) {
SqlClient\Query\SqlAggregateChecker.cs (2)
27internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 33internal override SqlExpression VisitUnaryOperator(SqlUnary uo) {
SqlClient\Query\SqlAliaser.cs (1)
44internal override SqlExpression VisitTableValuedFunctionCall(SqlTableValuedFunctionCall fc) {
SqlClient\Query\SqlAliasesReferenced.cs (2)
45internal override SqlExpression VisitColumn(SqlColumn col) { 51internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
SqlClient\Query\SqlBinder.cs (115)
50Dictionary<object, SqlExpression> map; 56internal void Add(object linkId, SqlExpression expr) { 58this.map = new Dictionary<object,SqlExpression>(); 62internal bool TryGetValue(object linkId, out SqlExpression expr) { 120internal override SqlExpression VisitExpression(SqlExpression expr) { 139internal SqlExpression FetchExpression(SqlExpression expr) { 143internal override SqlExpression VisitFunctionCall(SqlFunctionCall fc) { 150internal override SqlExpression VisitLike(SqlLike like) { 156internal override SqlExpression VisitGrouping(SqlGrouping g) { 162internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 172internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 292SqlExpression translated = this.translator.TranslateLinkEquals(bo); 308SqlExpression translated = this.translator.TranslateEquals(bo); 316SqlExpression left = TypeSource.GetTypeSource(bo.Left); 317SqlExpression right = TypeSource.GetTypeSource(bo.Right); 370private MetaType[] GetPossibleTypes(SqlExpression typeExpression) { 402internal override SqlExpression VisitDiscriminatorOf(SqlDiscriminatorOf dof) { 403SqlExpression obj = this.FetchExpression(dof.Object); // FetchExpression removes Link. 423List<SqlExpression> matches = new List<SqlExpression>(); 424List<SqlExpression> values = new List<SqlExpression>(); 430SqlExpression @default = sql.Value(discriminator.GetType(), tc.Whens[0].Match.SqlType, defaultType.InheritanceCode, true, tc.SourceExpression); 448internal override SqlExpression VisitSearchedCase(SqlSearchedCase c) { 465private bool IsConstNull(SqlExpression sqlExpr) { 478private SqlExpression ApplyTreat(SqlExpression target, Type type) { 499when.TypeBinding = (SqlExpression)ApplyTreat(when.TypeBinding, type); 513SqlExpression expr = target as SqlExpression; 526internal override SqlExpression VisitTreat(SqlUnary a) { 532internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 540SqlExpression translated = this.translator.TranslateLinkIsNull(uo); 598SqlExpression exp = uo.Operand; 624List<SqlExpression> matches = new List<SqlExpression>(); 625List<SqlExpression> values = new List<SqlExpression>(); 635List<SqlExpression> newMatches = new List<SqlExpression>(); 636List<SqlExpression> newValues = new List<SqlExpression>(); 639SqlExpression expr = VisitUnaryOperator(un); 661internal override SqlExpression VisitNew(SqlNew sox) { 703private SqlNode AccessMember(SqlMember m, SqlExpression expo) { 704SqlExpression exp = expo; 711List<SqlExpression> matches = new List<SqlExpression>(); 712List<SqlExpression> values = new List<SqlExpression>(); 714SqlExpression newValue = (SqlExpression)AccessMember(m, when.Value); 725SqlExpression result = sql.Case(newClrType, sc.Expression, matches, values, sc.SourceExpression); 732List<SqlExpression> newMatches = new List<SqlExpression>(); 733List<SqlExpression> newValues = new List<SqlExpression>(); 735SqlExpression newValue = (SqlExpression)AccessMember(m, when.Value); 745SqlExpression result = sql.Case(newClrType, sc.Expression, newMatches, newValues, sc.SourceExpression); 753SqlExpression value = (SqlExpression)AccessMember(m, when.Value); 756SqlExpression @else = (SqlExpression)AccessMember(m, sc.Else); 818SqlExpression e = n as SqlExpression; 844SqlExpression e = sn.Find(m.Member); 867SqlExpression rexp = result as SqlExpression; 956private SqlExpression FoldSubquery(SqlSubSelect ss) { 1010internal SqlExpression ExpandExpression(SqlExpression expression) { 1011SqlExpression expanded = this.expander.Expand(expression); 1018internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 1063internal override SqlExpression VisitSharedExpressionRef(SqlSharedExpressionRef sref) { 1065return (SqlExpression) SqlDuplicator.Copy(sref.SharedExpression.Expression); 1068internal override SqlExpression VisitSharedExpression(SqlSharedExpression shared) { 1081internal override SqlExpression VisitSimpleExpression(SqlSimpleExpression simple) { 1086SqlExpression result = this.PushDownExpression(simple.Expression); 1093private SqlExpression PushDownExpression(SqlExpression expr) { 1194internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 1212private SqlExpression ConvertLinks(SqlExpression node) { 1225SqlExpression o = ((SqlUnary)node).Operand; 1226SqlExpression e = this.ConvertLinks(o); 1240SqlExpression converted = ConvertLinks(when.Value); 1253internal SqlExpression ConvertToExpression(SqlNode node) { 1257SqlExpression x = node as SqlExpression; 1272internal SqlExpression ConvertToFetchedExpression(SqlNode node) { 1278SqlExpression o = ((SqlUnary)node).Operand; 1279SqlExpression e = this.ConvertLinks(o); 1281return (SqlExpression)node; 1292allExprs = allExprs && (fetchedValue is SqlExpression); 1298List<SqlExpression> matches = new List<SqlExpression>(); 1299List<SqlExpression> values = new List<SqlExpression>(); 1301SqlExpression fetchedValue = (SqlExpression)fetchedValues[i]; 1324SqlExpression fetchedValue = (SqlExpression)fetchedValues[i]; 1345SqlExpression cached; 1375SqlExpression where = ss.Select.Where; 1384SqlExpression result = new SqlAliasRef(sa); 1391return (SqlExpression)node; 1395private bool IsOuterDependent(SqlSource location, SqlAlias alias, SqlExpression where) 1457SqlExpression expr = node as SqlExpression; 1547private SqlExpression VisitLinkExpansion(SqlLink link) { 1582SqlExpression elseFilter = null; 1585SqlExpression discriminatorPredicate = sql.Binary(SqlNodeType.EQ, clientCase.Expression, clientCase.Whens[i].Match);
SqlClient\Query\SqlBooleanizer.cs (7)
33internal override SqlExpression ConvertValueToPredicate(SqlExpression valueExpression) { 47internal override SqlExpression ConvertPredicateToValue(SqlExpression predicateExpression) { 58SqlExpression valueTrue = sql.ValueFromObject(true, false, predicateExpression.SourceExpression); 59SqlExpression valueFalse = sql.ValueFromObject(false, false, predicateExpression.SourceExpression); 61SqlExpression valueNull = sql.Value(valueTrue.ClrType, valueTrue.SqlType, null, false, predicateExpression.SourceExpression);
SqlClient\Query\SqlBooleanMismatchVisitor.cs (15)
21internal abstract SqlExpression ConvertValueToPredicate(SqlExpression valueExpression); 22internal abstract SqlExpression ConvertPredicateToValue(SqlExpression predicateExpression); 50internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 59internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 78internal override SqlExpression VisitSearchedCase(SqlSearchedCase c) { 88internal override SqlExpression VisitLift(SqlLift lift) { 97internal SqlExpression VisitPredicate(SqlExpression exp) { 98exp = (SqlExpression)base.Visit(exp); 111internal override SqlExpression VisitExpression(SqlExpression exp) { 112exp = (SqlExpression)base.Visit(exp); 122private static bool IsPredicateExpression(SqlExpression exp) {
SqlClient\Query\SqlCaseSimplifier.cs (17)
36internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 72private SqlExpression DistributeOperatorIntoCase(SqlNodeType nt, SqlSimpleCase sc, SqlExpression expr) { 76List<SqlExpression> values = new List<SqlExpression>(); 77List<SqlExpression> matches = new List<SqlExpression>(); 87internal override SqlExpression VisitSimpleCase(SqlSimpleCase c) { 119SqlExpression rewrite = TryToConsolidateAllValueExpressions(newWhens.Count, c.Whens[compareWhen].Value); 146private SqlExpression TryToConsolidateAllValueExpressions(int valueCount, SqlExpression value) { 175private SqlExpression TryToWriteAsSimpleBooleanExpression(Type caseType, SqlExpression discriminator, List<SqlWhen> newWhens, bool allValuesLiteral) { 176SqlExpression rewrite = null; 225private SqlExpression TryToWriteAsReducedCase(Type caseType, SqlExpression discriminator, List<SqlWhen> newWhens, SqlExpression elseCandidate, int originalWhenCount) {
SqlClient\Query\SqlColumnizer.cs (22)
26internal SqlExpression ColumnizeSelection(SqlExpression selection) { 30internal static bool CanBeColumn(SqlExpression expression) { 35HashSet<SqlExpression> candidates; 40internal SqlExpression Declare(SqlExpression expression, HashSet<SqlExpression> candidates) { 42return (SqlExpression)this.Visit(expression); 46SqlExpression expr = node as SqlExpression; 64HashSet<SqlExpression> candidates; 66internal HashSet<SqlExpression> Nominate(SqlExpression expression) { 67this.candidates = new HashSet<SqlExpression>(); 74SqlExpression expression = node as SqlExpression; 94internal override SqlExpression VisitSimpleCase(SqlSimpleCase c) { 103internal override SqlExpression VisitTypeCase(SqlTypeCase tc) { 112internal override SqlExpression VisitClientCase(SqlClientCase c) { 121private static bool CanRecurseColumnize(SqlExpression expr) { 143private static bool IsClientOnly(SqlExpression expr) { 167internal static bool CanBeColumn(SqlExpression expression) {
SqlClient\Query\SqlComparer.cs (2)
289private static SqlExpression UnwrapTrivialCaseExpression(SqlSimpleCase sc) { 296SqlExpression result = sc.Whens[0].Value;
SqlClient\Query\SqlDeflator.cs (14)
47internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 58internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 59SqlExpression literal = this.GetLiteralValue(cref); 66private SqlValue GetLiteralValue(SqlExpression expr) { 88internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 93internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 107internal override SqlExpression VisitExists(SqlSubSelect ss) { 206internal bool AreEquivalent(SqlExpression e1, SqlExpression e2) { 240private void CheckJoinCondition(SqlExpression expr) { 264internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 277internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 286internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 493internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
SqlClient\Query\SqlDuplicator.cs (90)
60internal override SqlExpression VisitDoNotVisit(SqlDoNotVisitExpression expr) { 71internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 81orderBy.Add(new SqlOrderExpression(expr.OrderType, (SqlExpression)this.Visit(expr.Expression))); 86internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 87SqlExpression left = (SqlExpression)this.Visit(bo.Left); 88SqlExpression right = (SqlExpression)this.Visit(bo.Right); 91internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 102internal override SqlExpression VisitJoinedCollection(SqlJoinedCollection jc) { 105internal override SqlExpression VisitClientArray(SqlClientArray scar) { 106SqlExpression[] exprs = new SqlExpression[scar.Expressions.Count]; 112internal override SqlExpression VisitTypeCase(SqlTypeCase tc) { 113SqlExpression disc = VisitExpression(tc.Discriminator); 120internal override SqlExpression VisitNew(SqlNew sox) { 121SqlExpression[] args = new SqlExpression[sox.Args.Count]; 132SqlExpression[] exprs = new SqlExpression[link.KeyExpressions.Count]; 143internal override SqlExpression VisitColumn(SqlColumn col) { 150internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 159internal override SqlExpression VisitElement(SqlSubSelect elem) { 162internal override SqlExpression VisitExists(SqlSubSelect sqlExpr) { 175SqlExpression cond = (SqlExpression)this.Visit(join.Condition); 178internal override SqlExpression VisitValue(SqlValue value) { 182return new SqlMember(m.ClrType, m.SqlType, (SqlExpression)this.Visit(m.Expression), m.Member); 185return new SqlMemberAssign(ma.Member, (SqlExpression)this.Visit(ma.Expression)); 187internal override SqlExpression VisitMultiset(SqlSubSelect sms) { 190internal override SqlExpression VisitParameter(SqlParameter p) { 202internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 207List<SqlExpression> gex = null; 209gex = new List<SqlExpression>(select.GroupBy.Count); 210foreach (SqlExpression sqlExpr in select.GroupBy) { 211gex.Add((SqlExpression)this.Visit(sqlExpr)); 214SqlExpression having = (SqlExpression)this.Visit(select.Having); 219SqlOrderExpression nsox = new SqlOrderExpression(sox.OrderType, (SqlExpression)this.Visit(sox.Expression)); 223SqlExpression top = (SqlExpression)this.Visit(select.Top); 224SqlExpression where = (SqlExpression)this.Visit(select.Where); 226SqlExpression selection = this.VisitExpression(select.Selection); 252List<SqlExpression> args = new List<SqlExpression>(suq.Arguments.Count); 253foreach (SqlExpression expr in suq.Arguments) { 256SqlExpression projection = this.VisitExpression(suq.Projection); 269List<SqlExpression> args = new List<SqlExpression>(spc.Arguments.Count); 270foreach (SqlExpression expr in spc.Arguments) { 273SqlExpression projection = this.VisitExpression(spc.Projection); 281internal override SqlExpression VisitUserColumn(SqlUserColumn suc) { 287internal override SqlExpression VisitUserRow(SqlUserRow row) { 290internal override SqlExpression VisitTreat(SqlUnary t) { 291return new SqlUnary(SqlNodeType.Treat, t.ClrType, t.SqlType, (SqlExpression)this.Visit(t.Operand), t.SourceExpression); 293internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 294return new SqlUnary(uo.NodeType, uo.ClrType, uo.SqlType, (SqlExpression)this.Visit(uo.Operand), uo.Method, uo.SourceExpression); 307internal override SqlExpression VisitSearchedCase(SqlSearchedCase c) { 308SqlExpression @else = this.VisitExpression(c.Else); 316internal override SqlExpression VisitClientCase(SqlClientCase c) { 317SqlExpression expr = this.VisitExpression(c.Expression); 325internal override SqlExpression VisitSimpleCase(SqlSimpleCase c) { 326SqlExpression expr = this.VisitExpression(c.Expression); 337internal override SqlExpression VisitExprSet(SqlExprSet xs) { 338SqlExpression[] exprs = new SqlExpression[xs.Expressions.Count]; 351internal override SqlExpression VisitVariable(SqlVariable v) { 354internal override SqlExpression VisitOptionalValue(SqlOptionalValue sov) { 355SqlExpression hasValue = this.VisitExpression(sov.HasValue); 356SqlExpression value = this.VisitExpression(sov.Value); 359internal override SqlExpression VisitBetween(SqlBetween between) { 370internal override SqlExpression VisitIn(SqlIn sin) { 377internal override SqlExpression VisitLike(SqlLike like) { 386internal override SqlExpression VisitFunctionCall(SqlFunctionCall fc) { 387SqlExpression[] args = new SqlExpression[fc.Arguments.Count]; 393internal override SqlExpression VisitTableValuedFunctionCall(SqlTableValuedFunctionCall fc) { 394SqlExpression[] args = new SqlExpression[fc.Arguments.Count]; 405internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 406SqlExpression[] args = new SqlExpression[mc.Arguments.Count]; 412internal override SqlExpression VisitSharedExpression(SqlSharedExpression sub) { 418internal override SqlExpression VisitSharedExpressionRef(SqlSharedExpressionRef sref) { 424internal override SqlExpression VisitSimpleExpression(SqlSimpleExpression simple) { 428internal override SqlExpression VisitGrouping(SqlGrouping g) { 434internal override SqlExpression VisitDiscriminatedType(SqlDiscriminatedType dt) { 437internal override SqlExpression VisitLift(SqlLift lift) { 440internal override SqlExpression VisitDiscriminatorOf(SqlDiscriminatorOf dof) {
SqlClient\Query\SqlExpander.cs (60)
24internal SqlExpression Expand(SqlExpression exp) { 38internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 42internal override SqlExpression VisitColumn(SqlColumn col) { 46internal override SqlExpression VisitSharedExpression(SqlSharedExpression shared) { 50internal override SqlExpression VisitSharedExpressionRef(SqlSharedExpressionRef sref) { 54internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 67SqlExpression exp = node as SqlExpression; 73internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 74return (SqlExpression)new SqlDuplicator().Duplicate(ss); 78SqlExpression expansion = this.VisitExpression(link.Expansion); 79SqlExpression[] exprs = new SqlExpression[link.KeyExpressions.Count]; 86private SqlExpression ExpandUnion(SqlUnion union) { 87List<SqlExpression> exprs = new List<SqlExpression>(2); 90SqlExpression result = this.ExpandTogether(exprs); 94private void GatherUnionExpressions(SqlNode node, List<SqlExpression> exprs) { 117private SqlExpression ExpandTogether(List<SqlExpression> exprs) { 125List<SqlExpression> expandedArgs = new List<SqlExpression>(); 128List<SqlExpression> args = new List<SqlExpression>(); 132SqlExpression expanded = this.ExpandTogether(args); 146List<SqlExpression> expressions = new List<SqlExpression>(); 150SqlExpression expression = this.ExpandTogether(expressions); 155List<SqlExpression> scos = new List<SqlExpression>(); 174List<SqlExpression> discriminators = new List<SqlExpression>(); 178SqlExpression discriminator = this.ExpandTogether(discriminators); 186List<SqlExpression> scos = new List<SqlExpression>(); 191SqlExpression expanded = this.ExpandTogether(scos); 215List<SqlExpression> mexprs = new List<SqlExpression>(); 224SqlExpression[] arguments = new SqlExpression[cobs[0].Args.Count]; 226List<SqlExpression> mexprs = new List<SqlExpression>(); 246SqlExpression[] kexprs = new SqlExpression[links[0].KeyExpressions.Count]; 247List<SqlExpression> lexprs = new List<SqlExpression>(); 258SqlExpression expansion = null; 287List<SqlExpression> hvals = new List<SqlExpression>(exprs.Count); 288List<SqlExpression> vals = new List<SqlExpression>(exprs.Count); 303List<SqlExpression> values = new List<SqlExpression>(exprs.Count); 315List<SqlExpression> foos = new List<SqlExpression>(exprs.Count); 340private SqlExpression ExpandIntoExprSet(List<SqlExpression> exprs) { 341SqlExpression[] rexprs = new SqlExpression[exprs.Count];
SqlClient\Query\SqlExpressionNullability.cs (3)
23internal static bool? CanBeNull(SqlExpression expr) { 99private static bool? CanBeNull(IEnumerable<SqlExpression> exprs) { 101foreach(SqlExpression e in exprs) {
SqlClient\Query\SqlFlattener.cs (18)
36internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 81private SqlExpression FlattenSelection(SqlRow row, bool isInput, SqlExpression selection) { 98internal override SqlExpression VisitNew(SqlNew sox) { 103internal override SqlExpression VisitColumn(SqlColumn col) { 122internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 133internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 137internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 141private SqlColumnRef MakeFlattenedColumn(SqlExpression expr, string name) { 160private SqlColumn FindColumnWithExpression(IEnumerable<SqlColumn> columns, SqlExpression expr) { 173private void FlattenGroupBy(List<SqlExpression> exprs) { 174List<SqlExpression> list = new List<SqlExpression>(exprs.Count); 175foreach (SqlExpression gex in exprs) { 185private void FlattenGroupByExpression(List<SqlExpression> exprs, SqlExpression expr) { 191foreach (SqlExpression arg in sn.Args) { 208foreach (SqlExpression key in link.KeyExpressions) {
SqlClient\Query\SqlFormatter.cs (46)
113internal override SqlExpression VisitNop(SqlNop nop) { 122internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 202internal override SqlExpression VisitLift(SqlLift lift) { 207internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 227internal override SqlExpression VisitBetween(SqlBetween between) { 236internal override SqlExpression VisitIn(SqlIn sin) { 249internal override SqlExpression VisitLike(SqlLike like) { 260internal override SqlExpression VisitFunctionCall(SqlFunctionCall fc) { 279internal override SqlExpression VisitTableValuedFunctionCall(SqlTableValuedFunctionCall fc) { 284internal override SqlExpression VisitCast(SqlUnary c) { 297internal override SqlExpression VisitTreat(SqlUnary t) { 306internal override SqlExpression VisitColumn(SqlColumn c) { 334internal override SqlExpression VisitDiscriminatedType(SqlDiscriminatedType dt) { 345internal override SqlExpression VisitDiscriminatorOf(SqlDiscriminatorOf dof) { 356internal override SqlExpression VisitSimpleExpression(SqlSimpleExpression simple) { 366internal override SqlExpression VisitSharedExpression(SqlSharedExpression shared) { 376internal override SqlExpression VisitSharedExpressionRef(SqlSharedExpressionRef sref) { 386internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 432internal override SqlExpression VisitParameter(SqlParameter p) { 437internal override SqlExpression VisitValue(SqlValue value) { 447internal override SqlExpression VisitClientParameter(SqlClientParameter cp) { 466internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 481internal override SqlExpression VisitElement(SqlSubSelect elem) { 496internal override SqlExpression VisitMultiset(SqlSubSelect sms) { 511internal override SqlExpression VisitExists(SqlSubSelect sqlExpr) { 549internal override SqlExpression VisitUserColumn(SqlUserColumn suc) { 618internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 658internal override SqlExpression VisitExprSet(SqlExprSet xs) { 698internal override SqlExpression VisitNew(SqlNew sox) { 708SqlExpression argExpr = sox.Args[i]; 729internal override SqlExpression VisitClientArray(SqlClientArray scar) { 818SqlExpression exp = ss.GroupBy[i]; 947internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 962internal override SqlExpression VisitJoinedCollection(SqlJoinedCollection jc) { 1088internal override SqlExpression VisitSearchedCase(SqlSearchedCase c) { 1113internal override SqlExpression VisitSimpleCase(SqlSimpleCase c) { 1143internal override SqlExpression VisitClientCase(SqlClientCase c) { 1176internal override SqlExpression VisitTypeCase(SqlTypeCase c) { 1209internal override SqlExpression VisitVariable(SqlVariable v) { 1214private string InferName(SqlExpression exp, string def) { 1380internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 1400internal override SqlExpression VisitOptionalValue(SqlOptionalValue sov) { 1413internal override SqlExpression VisitUserRow(SqlUserRow row) { 1420internal override SqlExpression VisitGrouping(SqlGrouping g) { 1449internal override SqlExpression VisitColumn(SqlColumn col) { 1469internal override SqlExpression VisitTableValuedFunctionCall(SqlTableValuedFunctionCall fc) {
SqlClient\Query\SqlGatherConsumedAliases.cs (2)
22internal override SqlExpression VisitColumn(SqlColumn col) { 27internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
SqlClient\Query\SqlLiftIndependentRowExpressions.cs (1)
77internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
SqlClient\Query\SqlLiftWhereClauses.cs (6)
20internal SqlExpression Where; 21internal Scope(SqlExpression where, Scope parent) { 98internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 102SqlExpression result = base.VisitSubSelect(ss); 106internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 110SqlExpression result = base.VisitClientQuery(cq);
SqlClient\Query\SqlMethodCallConverter.cs (419)
617internal override SqlExpression VisitColumn(SqlColumn col) { 621internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 625internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 650internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 653SqlExpression expr = uo.Operand; 663internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 674internal override SqlExpression VisitTypeCase(SqlTypeCase tc) { 676List<SqlExpression> matches = new List<SqlExpression>(); 677List<SqlExpression> values = new List<SqlExpression>(); 680SqlExpression newMatch = this.VisitExpression(when.Match); 681SqlExpression newNew = this.VisitExpression(when.TypeBinding); 700internal override SqlExpression VisitNew(SqlNew sox) { 717private SqlExpression TranslateNewString(SqlNew sox) { 722return sql.FunctionCall(typeof(string), "REPLICATE", new SqlExpression[] { sox.Args[0], sox.Args[1] }, sox.SourceExpression); 727private SqlExpression TranslateNewDateTime(SqlNew sox) { 734SqlExpression char2 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(2, false, source) }, source); 735SqlExpression char4 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(4, false, source) }, source); 736SqlExpression year = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char4, sox.Args[0] }, source); 737SqlExpression month = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[1] }, source); 738SqlExpression day = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[2] }, source); 739SqlExpression datetime = new SqlVariable(typeof(void), null, "DATETIME", source); 741SqlExpression date = sql.Concat(month, sql.ValueFromObject("/", false, source), day, sql.ValueFromObject("/", false, source), year); 742return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[3] { datetime, date, sql.ValueFromObject(101, false, source) }, source); 749SqlExpression hour = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[3] }, source); 750SqlExpression minute = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[4] }, source); 751SqlExpression second = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[5] }, source); 752SqlExpression date = sql.Concat(year, sql.ValueFromObject("-", false, source), month, sql.ValueFromObject("-", false, source), day); 753SqlExpression time = sql.Concat(hour, sql.ValueFromObject(":", false, source), minute, sql.ValueFromObject(":", false, source), second); 754SqlExpression dateAndTime = sql.Concat(date, sql.ValueFromObject(' ', false, source), time); 756return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[3] { datetime, dateAndTime, sql.ValueFromObject(120, false, source) }, source); 761SqlExpression msRaw = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] {char4, 763SqlExpression ms; 766SqlExpression len = sql.FunctionCall(typeof(int), "LEN", new SqlExpression[1] { msRaw }, source); 767SqlExpression startIndex = sql.Binary(SqlNodeType.Sub, len, sql.ValueFromObject(2, false, source)); 768ms = sql.FunctionCall(typeof(string), "SUBSTRING", new SqlExpression[3] { msRaw, startIndex, sql.ValueFromObject(3, false, source) }, source); 771ms = sql.FunctionCall(typeof(string), "RIGHT", new SqlExpression[2] { msRaw, sql.ValueFromObject(3, false, source) }, source); 774return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[3] { datetime, dateAndTime, sql.ValueFromObject(121, false, source) }, source); 781private SqlExpression TranslateNewDateTimeOffset(SqlNew sox) { 788new SqlExpression[2] { sox.Args[0], sql.ValueFromObject(0, false, source) }, 795new SqlExpression[2] 808SqlExpression char2 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(2, false, source) }, source); 809SqlExpression char4 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(4, false, source) }, source); 810SqlExpression char5 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(5, false, source) }, source); 813SqlExpression yyRaw = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] {char5, 815SqlExpression year = sql.FunctionCall(typeof(string), "RIGHT", new SqlExpression[2] { yyRaw, sql.ValueFromObject(4, false, source) }, source); 817SqlExpression month = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[1] }, source); 818SqlExpression day = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[2] }, source); 820SqlExpression hour = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[3] }, source); 821SqlExpression minute = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[4] }, source); 822SqlExpression second = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[5] }, source); 823SqlExpression date = sql.Concat(year, sql.ValueFromObject("-", false, source), month, sql.ValueFromObject("-", false, source), day); 824SqlExpression time = sql.Concat(hour, sql.ValueFromObject(":", false, source), minute, sql.ValueFromObject(":", false, source), second); 826SqlExpression datetimeoffset = new SqlVariable(typeof(void), null, "DATETIMEOFFSET", source); 827SqlExpression result, dateAndTime; 833result = sql.FunctionCall(typeof(DateTimeOffset), "CONVERT", new SqlExpression[3] { datetimeoffset, dateAndTime, sql.ValueFromObject(120, false, source) }, source); 838SqlExpression msRaw = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] {char4, 840SqlExpression ms = sql.FunctionCall(typeof(string), "RIGHT", new SqlExpression[2] { msRaw, sql.ValueFromObject(3, false, source) }, source); 842result = sql.FunctionCall(typeof(DateTimeOffset), "CONVERT", new SqlExpression[3] { datetimeoffset, dateAndTime, sql.ValueFromObject(121, false, source) }, source); 849new SqlExpression[2] 860private SqlExpression TranslateNewTimeSpan(SqlNew sox) { 866SqlExpression hours = sql.ConvertToBigint(sox.Args[0]); 867SqlExpression minutes = sql.ConvertToBigint(sox.Args[1]); 868SqlExpression seconds = sql.ConvertToBigint(sox.Args[2]); 869SqlExpression TicksFromHours = sql.Multiply(hours, TimeSpan.TicksPerHour); 870SqlExpression TicksFromMinutes = sql.Multiply(minutes, TimeSpan.TicksPerMinute); 871SqlExpression TicksFromSeconds = sql.Multiply(seconds, TimeSpan.TicksPerSecond); 875SqlExpression days = sql.ConvertToBigint(sox.Args[0]); 876SqlExpression hours = sql.ConvertToBigint(sox.Args[1]); 877SqlExpression minutes = sql.ConvertToBigint(sox.Args[2]); 878SqlExpression seconds = sql.ConvertToBigint(sox.Args[3]); 879SqlExpression TicksFromDays = sql.Multiply(days, TimeSpan.TicksPerDay); 880SqlExpression TicksFromHours = sql.Multiply(hours, TimeSpan.TicksPerHour); 881SqlExpression TicksFromMinutes = sql.Multiply(minutes, TimeSpan.TicksPerMinute); 882SqlExpression TicksFromSeconds = sql.Multiply(seconds, TimeSpan.TicksPerSecond); 883SqlExpression totalTicks = sql.Add(TicksFromDays, TicksFromHours, TicksFromMinutes, TicksFromSeconds); 890SqlExpression milliseconds = sql.ConvertToBigint(sox.Args[4]); 891SqlExpression ticksFromMs = sql.Multiply(milliseconds, TimeSpan.TicksPerMillisecond); 898internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 901SqlExpression returnValue = null; 957SqlExpression expr = mc.Object; 997private SqlExpression TranslateGetValueOrDefaultMethod(SqlMethodCall mc) { 1010private SqlExpression TranslateSqlMethodsMethod(SqlMethodCall mc) { 1012SqlExpression returnValue = null; 1017SqlExpression start = mc.Arguments[0]; 1018SqlExpression end = mc.Arguments[1]; 1019SqlExpression unit = new SqlVariable(typeof(void), null, datePart, source); 1021new SqlExpression[] { unit, start, end }, source); 1034SqlExpression length = sql.DATALENGTH(mc.Arguments[0]); 1041private SqlExpression CreateComparison(SqlExpression a, SqlExpression b, Expression source) { 1042SqlExpression lower = sql.Binary(SqlNodeType.LT, a, b); 1043SqlExpression equal = sql.Binary(SqlNodeType.EQ2V, a, b); 1053private SqlExpression TranslateDateTimeInstanceMethod(SqlMethodCall mc) { 1054SqlExpression returnValue = null; 1062SqlExpression sqlTicks = mc.Arguments[0]; 1065SqlExpression ns = this.sql.DATEPART("NANOSECOND", mc.Arguments[0]); 1066SqlExpression ss = this.sql.DATEPART("SECOND", mc.Arguments[0]); 1067SqlExpression mm = this.sql.DATEPART("MINUTE", mc.Arguments[0]); 1068SqlExpression hh = this.sql.DATEPART("HOUR", mc.Arguments[0]); 1097SqlExpression ms = sql.Multiply(mc.Arguments[0], 1000); 1101SqlExpression ms = sql.Multiply(mc.Arguments[0], 60000); 1105SqlExpression ms = sql.Multiply(mc.Arguments[0], 3600000); 1109SqlExpression ms = sql.Multiply(mc.Arguments[0], 86400000); 1115private SqlExpression TranslateDateTimeOffsetInstanceMethod(SqlMethodCall mc) { 1116SqlExpression returnValue = null; 1123SqlExpression ns = sql.DATEPART("NANOSECOND", mc.Arguments[0]); 1124SqlExpression ss = sql.DATEPART("SECOND", mc.Arguments[0]); 1125SqlExpression mi = sql.DATEPART("MINUTE", mc.Arguments[0]); 1126SqlExpression hh = sql.DATEPART("HOUR", mc.Arguments[0]); 1128SqlExpression ticks = sql.Add( 1156SqlExpression ms = sql.Multiply(mc.Arguments[0], 1000); 1160SqlExpression ms = sql.Multiply(mc.Arguments[0], 60000); 1164SqlExpression ms = sql.Multiply(mc.Arguments[0], 3600000); 1168SqlExpression ms = sql.Multiply(mc.Arguments[0], 86400000); 1174private SqlExpression TranslateTimeSpanInstanceMethod(SqlMethodCall mc) { 1175SqlExpression returnValue = null; 1190returnValue = sql.FunctionCall(typeof(TimeSpan), "ABS", new SqlExpression[] { mc.Object }, source); 1198private SqlExpression TranslateConvertStaticMethod(SqlMethodCall mc) { 1199SqlExpression returnValue = null; 1201SqlExpression expr = mc.Arguments[0]; 1284private SqlExpression TranslateDateTimeBinary(SqlBinary bo) { 1292SqlExpression end = bo.Left; 1293SqlExpression start = bo.Right; 1294SqlExpression day = new SqlVariable(typeof(void), null, "DAY", bo.SourceExpression); 1295SqlExpression ms = new SqlVariable(typeof(void), null, "MILLISECOND", bo.SourceExpression); 1299SqlExpression intDays = sql.FunctionCall(typeof(int), "DATEDIFF", 1300new SqlExpression[] { day, start, end }, bo.SourceExpression); 1301SqlExpression startPlusDays = sql.FunctionCall( 1302typeof(DateTime), "DATEADD", new SqlExpression[] { day, intDays, start }, bo.SourceExpression); 1303SqlExpression intMSec = sql.FunctionCall(typeof(int), "DATEDIFF", 1304new SqlExpression[] { ms, startPlusDays, end }, bo.SourceExpression); 1305SqlExpression result = sql.Multiply(sql.Add(sql.Multiply(sql.ConvertToBigint(intDays), 86400000), intMSec), 10000); // 1 millisecond = 10000 ticks 1312SqlExpression end = bo.Left; 1313SqlExpression start = bo.Right; 1314SqlExpression day = new SqlVariable(typeof(void), null, "DAY", bo.SourceExpression); 1315SqlExpression ms = new SqlVariable(typeof(void), null, "MILLISECOND", bo.SourceExpression); 1316SqlExpression us = new SqlVariable(typeof(void), null, "MICROSECOND", bo.SourceExpression); 1317SqlExpression ns = new SqlVariable(typeof(void), null, "NANOSECOND", bo.SourceExpression); 1320SqlExpression intDays = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { day, start, end }, bo.SourceExpression); 1321SqlExpression startPlusDays = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { day, intDays, start }, bo.SourceExpression); 1322SqlExpression intMSec = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { ms, startPlusDays, end }, bo.SourceExpression); 1323SqlExpression startPlusDaysPlusMsec = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { ms, intMSec, startPlusDays }, bo.SourceExpression); 1324SqlExpression intUSec = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { us, startPlusDaysPlusMsec, end }, bo.SourceExpression); 1325SqlExpression startPlusDaysPlusMsecPlusUSec = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { us, intUSec, startPlusDaysPlusMsec }, bo.SourceExpression); 1326SqlExpression intNSec = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { ns, startPlusDaysPlusMsecPlusUSec, end }, bo.SourceExpression); 1327SqlExpression startPlusDaysPlusMsecPlusUSecPlusNSec = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { ns, intNSec, startPlusDaysPlusMsecPlusUSec }, bo.SourceExpression); 1329SqlExpression result = sql.Add( 1343SqlExpression right = bo.Right; 1345SqlExpression ns = sql.DATEPART("NANOSECOND", right); 1346SqlExpression ss = sql.DATEPART("SECOND", right); 1347SqlExpression mi = sql.DATEPART("MINUTE", right); 1348SqlExpression hh = sql.DATEPART("HOUR", right); 1391internal SqlExpression TranslateDecimalMethod(SqlMethodCall mc) { 1419new SqlExpression[] { 1428new SqlExpression[] { 1444private SqlExpression TranslateStringStaticMethod(SqlMethodCall mc) { 1445SqlExpression returnValue = null; 1450List<SqlExpression> exprs = null; 1461SqlExpression sum; 1491private SqlExpression CreateFunctionCallStatic1(Type type, string functionName, List<SqlExpression> arguments, Expression source) { 1492return sql.FunctionCall(type, functionName, new SqlExpression[] { arguments[0] }, source); 1495private SqlExpression CreateFunctionCallStatic2(Type type, string functionName, List<SqlExpression> arguments, Expression source) { 1496return sql.FunctionCall(type, functionName, new SqlExpression[] { arguments[0], arguments[1] }, source); 1499private SqlExpression TranslateStringMethod(SqlMethodCall mc) { 1505SqlExpression pattern = mc.Arguments[0]; 1506SqlExpression escape = null; 1539SqlExpression pattern = mc.Arguments[0]; 1540SqlExpression escape = null; 1573SqlExpression pattern = mc.Arguments[0]; 1574SqlExpression escape = null; 1611SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1613SqlExpression @else = sql.Subtract(sql.FunctionCall(typeof(int), "CHARINDEX", 1614new SqlExpression[] { 1630SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1633SqlExpression @else = sql.Subtract(sql.FunctionCall(typeof(int), "CHARINDEX", 1634new SqlExpression[] { 1653SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1656SqlExpression substring = sql.FunctionCall( 1658new SqlExpression[] { 1664SqlExpression @else = sql.Subtract(sql.FunctionCall(typeof(int), "CHARINDEX", 1665new SqlExpression[] { 1680SqlExpression exprPart = mc.Arguments[0]; 1684SqlExpression exprS = mc.Object; 1685SqlExpression reverseS = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { exprS }, source); 1686SqlExpression reversePart = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { exprPart }, source); 1687SqlExpression charIndex = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { exprPart, exprS }, source); 1688SqlExpression charIndexOfReverse = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { reversePart, reverseS }, source); 1689SqlExpression notContained = sql.Binary(SqlNodeType.EQ, charIndex, sql.ValueFromObject(0, false, source)); 1690SqlExpression len1 = sql.CLRLENGTH(exprS); 1691SqlExpression len2 = sql.CLRLENGTH(exprPart); 1692SqlExpression elseCase = sql.Add(sql.ValueFromObject(1, false, source), sql.Subtract(len1, sql.Add(len2, charIndexOfReverse))); 1697SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1712SqlExpression s = mc.Object; 1713SqlExpression part = mc.Arguments[0]; 1717SqlExpression i = mc.Arguments[1]; 1718SqlExpression first = sql.FunctionCall(typeof(string), "LEFT", new SqlExpression[] { s, sql.Add(i, 1) }, source); 1719SqlExpression reverseFirst = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { first }, source); 1720SqlExpression reversePart = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { part }, source); 1721SqlExpression charIndex = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { part, first }, source); 1722SqlExpression charIndexOfReverse = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { reversePart, reverseFirst }, source); 1723SqlExpression notContained = sql.Binary(SqlNodeType.EQ, charIndex, sql.ValueFromObject(0, false, source)); 1724SqlExpression len1 = sql.CLRLENGTH(first); 1725SqlExpression len2 = sql.CLRLENGTH(part); 1726SqlExpression elseCase = sql.Add(sql.ValueFromObject(1, false, source), sql.Subtract(len1, sql.Add(len2, charIndexOfReverse))); 1732SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1748SqlExpression s = mc.Object; 1749SqlExpression part = mc.Arguments[0]; 1753SqlExpression i = mc.Arguments[1]; 1754SqlExpression count = mc.Arguments[2]; 1755SqlExpression first = sql.FunctionCall(typeof(string), "LEFT", new SqlExpression[] { s, sql.Add(i, 1) }, source); 1756SqlExpression reverseFirst = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { first }, source); 1757SqlExpression reversePart = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { part }, source); 1758SqlExpression charIndex = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { part, first }, source); 1759SqlExpression charIndexOfReverse = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { reversePart, reverseFirst }, source); 1760SqlExpression len1 = sql.CLRLENGTH(first); 1761SqlExpression len2 = sql.CLRLENGTH(part); 1762SqlExpression elseCase = sql.Add(sql.ValueFromObject(1, false, source), sql.Subtract(len1, sql.Add(len2, charIndexOfReverse))); 1763SqlExpression notContained = sql.Binary(SqlNodeType.EQ, charIndex, sql.ValueFromObject(0, false, source)); 1770SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1786new SqlExpression[] { 1798SqlExpression insertingAtEnd = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Object), mc.Arguments[0]); 1799SqlExpression stringConcat = sql.Concat(mc.Object, mc.Arguments[1]); 1810SqlExpression exprS = mc.Object; 1811SqlExpression exprI = mc.Arguments[0]; 1812SqlExpression len2 = sql.CLRLENGTH(exprS); 1813SqlExpression dontChange = sql.Binary(SqlNodeType.GE, len2, exprI); 1814SqlExpression numSpaces = sql.Subtract(exprI, len2); 1815SqlExpression padding = sql.FunctionCall(typeof(string), "SPACE", new SqlExpression[] { numSpaces }, source); 1816SqlExpression elseCase = sql.Concat(padding, exprS); 1825SqlExpression exprS = mc.Object; 1826SqlExpression exprI = mc.Arguments[0]; 1827SqlExpression exprC = mc.Arguments[1]; 1828SqlExpression dontChange = sql.Binary(SqlNodeType.GE, sql.CLRLENGTH(exprS), exprI); 1829SqlExpression len2 = sql.CLRLENGTH(exprS); 1830SqlExpression numSpaces = sql.Subtract(exprI, len2); 1831SqlExpression padding = sql.FunctionCall(typeof(string), "REPLICATE", new SqlExpression[] { exprC, numSpaces }, source); 1832SqlExpression elseCase = sql.Concat(padding, exprS); 1843SqlExpression exprS = mc.Object; 1844SqlExpression exprI = mc.Arguments[0]; 1845SqlExpression dontChange = sql.Binary(SqlNodeType.GE, sql.CLRLENGTH(exprS), exprI); 1846SqlExpression len2 = sql.CLRLENGTH(exprS); 1847SqlExpression numSpaces = sql.Subtract(exprI, len2); 1848SqlExpression padding = sql.FunctionCall(typeof(string), "SPACE", new SqlExpression[] { numSpaces }, source); 1849SqlExpression elseCase = sql.Concat(exprS, padding); 1858SqlExpression exprS = mc.Object; 1859SqlExpression exprI = mc.Arguments[0]; 1860SqlExpression exprC = mc.Arguments[1]; 1861SqlExpression dontChange = sql.Binary(SqlNodeType.GE, sql.CLRLENGTH(exprS), exprI); 1862SqlExpression len2 = sql.CLRLENGTH(exprS); 1863SqlExpression numSpaces = sql.Subtract(exprI, len2); 1864SqlExpression padding = sql.FunctionCall(typeof(string), "REPLICATE", new SqlExpression[] { exprC, numSpaces }, source); 1865SqlExpression elseCase = sql.Concat(exprS, padding); 1875new SqlExpression[] { 1886new SqlExpression[] { 1904new SqlExpression[] { 1914new SqlExpression[] { 1924new SqlExpression[] { 1936new SqlExpression[] { 1937sql.FunctionCall(typeof(string), "RTRIM", new SqlExpression[] { mc.Object }, source) 1944return sql.FunctionCall(typeof(string), "LOWER", new SqlExpression[] { mc.Object }, source); 1949return sql.FunctionCall(typeof(string), "UPPER", new SqlExpression[] { mc.Object }, source); 1955return sql.FunctionCall(typeof(char), "SUBSTRING", new SqlExpression[] 1974private SqlExpression TranslateMathMethod(SqlMethodCall mc) { 1979return sql.FunctionCall(mc.Arguments[0].ClrType, "ABS", new SqlExpression[] { mc.Arguments[0] }, source); 2019SqlExpression x = mc.Arguments[0]; 2020SqlExpression expX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { x }, source); 2021SqlExpression minusX = sql.Unary(SqlNodeType.Negate, x, source); 2022SqlExpression expMinusX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { minusX }, source); 2044SqlExpression log1 = sql.FunctionCall(typeof(double), "LOG", new SqlExpression[] { mc.Arguments[0] }, source); 2045SqlExpression log2 = sql.FunctionCall(typeof(double), "LOG", new SqlExpression[] { mc.Arguments[1] }, source); 2057SqlExpression a = mc.Arguments[0]; 2058SqlExpression b = mc.Arguments[1]; 2059SqlExpression aLower = sql.Binary(SqlNodeType.LT, a, b); 2066SqlExpression a = mc.Arguments[0]; 2067SqlExpression b = mc.Arguments[1]; 2068SqlExpression aLower = sql.Binary(SqlNodeType.LT, a, b); 2083SqlExpression x = mc.Arguments[0]; 2084SqlExpression i = null; 2091SqlExpression roundingMethod = mc.Arguments[nParams - 1]; 2097return sql.FunctionCall(x.ClrType, "round", new SqlExpression[] { x, i }, source); 2105SqlExpression roundX = sql.FunctionCall(type, "round", new SqlExpression[] { x, i }, source); 2106SqlExpression twiceX = sql.Multiply(x, 2); 2107SqlExpression round2X = sql.FunctionCall(type, "round", new SqlExpression[] { twiceX, i }, source); 2108SqlExpression condition = sql.AndAccumulate(sql.Binary(SqlNodeType.EQ, twiceX, round2X), sql.Binary(SqlNodeType.NE, x, roundX)); 2109SqlExpression specialCase = sql.Multiply(sql.FunctionCall(type, "round", new SqlExpression[] { sql.Divide(x, 2), i }, source), 2); 2115return sql.FunctionCall(typeof(int), "SIGN", new SqlExpression[] { mc.Arguments[0] }, source); 2125SqlExpression x = mc.Arguments[0]; 2126SqlExpression exp = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { x }, source); 2127SqlExpression minusX = sql.Unary(SqlNodeType.Negate, x, source); 2128SqlExpression expMinus = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { minusX }, source); 2144SqlExpression x = mc.Arguments[0]; 2145SqlExpression expX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { x }, source); 2146SqlExpression minusX = sql.Unary(SqlNodeType.Negate, x, source); 2147SqlExpression expMinusX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { minusX }, source); 2154SqlExpression x = mc.Arguments[0]; 2155return sql.FunctionCall(mc.Method.ReturnType, "ROUND", new SqlExpression[] { x, sql.ValueFromObject(0, false, source), sql.ValueFromObject(1, false, source) }, source); 2164SqlExpression exp = this.VisitExpression(m.Expression); 2185SqlExpression date = new SqlVariable(typeof(void), null, "DATE", source); 2186return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[2] { date, exp }, source); 2194SqlExpression ms = sql.DATEPART("MILLISECOND", exp); 2195SqlExpression ss = sql.DATEPART("SECOND", exp); 2196SqlExpression mi = sql.DATEPART("MINUTE", exp); 2197SqlExpression hh = sql.DATEPART("HOUR", exp); 2199SqlExpression result = exp; 2210SqlExpression datetime = new SqlVariable(typeof(void), null, "DATETIME", source); 2211return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[2] { datetime, exp }, source); 2214SqlExpression hours = sql.DATEPART("HOUR", exp); 2215SqlExpression minutes = sql.DATEPART("MINUTE", exp); 2216SqlExpression seconds = sql.DATEPART("SECOND", exp); 2217SqlExpression milliseconds = sql.DATEPART("MILLISECOND", exp); 2219SqlExpression ticksFromHour = sql.Multiply(sql.ConvertToBigint(hours), TimeSpan.TicksPerHour); 2220SqlExpression ticksFromMinutes = sql.Multiply(sql.ConvertToBigint(minutes), TimeSpan.TicksPerMinute); 2221SqlExpression ticksFromSeconds = sql.Multiply(sql.ConvertToBigint(seconds), TimeSpan.TicksPerSecond); 2222SqlExpression ticksFromMs = sql.Multiply(sql.ConvertToBigint(milliseconds), TimeSpan.TicksPerMillisecond); 2227SqlExpression sqlDay = sql.DATEPART("dw", exp); 2340private SqlExpression CreateDateTimeFromDateAndTicks(SqlExpression sqlDate, SqlExpression sqlTicks, Expression source) { 2344private SqlExpression CreateDateTimeFromDateAndTicks(SqlExpression sqlDate, SqlExpression sqlTicks, Expression source, bool asNullable) { 2345SqlExpression daysAdded = sql.DATEADD("day", sql.Divide(sqlTicks, TimeSpan.TicksPerDay), sqlDate, source, asNullable); 2350private SqlExpression CreateDateTimeFromDateAndMs(SqlExpression sqlDate, SqlExpression ms, Expression source) { 2354private SqlExpression CreateDateTimeFromDateAndMs(SqlExpression sqlDate, SqlExpression ms, Expression source, bool asNullable) { 2355SqlExpression msBigint = sql.ConvertToBigint(ms); 2356SqlExpression daysAdded = sql.DATEADD("day", sql.Divide(msBigint, 86400000), sqlDate, source, asNullable); 2361private SqlExpression CreateDateTimeOffsetFromDateAndTicks(SqlExpression sqlDate, SqlExpression sqlTicks, Expression source) { 2365private SqlExpression CreateDateTimeOffsetFromDateAndTicks(SqlExpression sqlDate, SqlExpression sqlTicks, Expression source, bool asNullable) { 2366SqlExpression daysAdded = sql.DATETIMEOFFSETADD("day", sql.Divide(sqlTicks, TimeSpan.TicksPerDay), sqlDate, source, asNullable); 2371private SqlExpression CreateDateTimeOffsetFromDateAndMs(SqlExpression sqlDate, SqlExpression ms, Expression source) { 2375private SqlExpression CreateDateTimeOffsetFromDateAndMs(SqlExpression sqlDate, SqlExpression ms, Expression source, bool asNullable) { 2376SqlExpression msBigint = sql.ConvertToBigint(ms); 2377SqlExpression daysAdded = sql.DATETIMEOFFSETADD("day", sql.Divide(msBigint, 86400000), sqlDate, source, asNullable); 2381private SqlExpression TranslateVbConversionMethod(SqlMethodCall mc) { 2384SqlExpression expr = mc.Arguments[0]; 2438List<SqlExpression> matchesList = new List<SqlExpression>(); 2439List<SqlExpression> valuesList = new List<SqlExpression>(); 2460private SqlExpression TranslateVbCompareString(SqlMethodCall mc) { 2467private SqlExpression TranslateVbLikeString(SqlMethodCall mc) { 2475SqlExpression pattern = mc.Arguments[1]; 2496SqlExpression escape = needsEscape ? sql.ValueFromObject("~", false, mc.SourceExpression) : null;
SqlClient\Query\SqlMethodTransformer.cs (6)
19internal override SqlExpression VisitFunctionCall(SqlFunctionCall fc) { 21SqlExpression result = base.VisitFunctionCall(fc); 26SqlExpression expr = resultFunctionCall.Arguments[0]; 52internal override SqlExpression VisitUnaryOperator(SqlUnary fc) { 54SqlExpression result = base.VisitUnaryOperator(fc); 60SqlExpression expr = unary.Operand;
SqlClient\Query\SqlMultiplexer.cs (39)
43internal override SqlExpression VisitMultiset(SqlSubSelect sms) { 58SqlExpression expr = (SqlExpression)SqlDuplicator.Copy(sms.Select.Selection); 65SqlExpression count = sql.SubSelect(SqlNodeType.ScalarSubSelect, countSelect); 77internal override SqlExpression VisitElement(SqlSubSelect elem) { 81internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 95internal override SqlExpression VisitExists(SqlSubSelect ss) { 139internal override SqlExpression VisitClientCase(SqlClientCase c) { 150internal override SqlExpression VisitSimpleCase(SqlSimpleCase c) { 161internal override SqlExpression VisitSearchedCase(SqlSearchedCase c) { 172internal override SqlExpression VisitTypeCase(SqlTypeCase tc) { 183internal override SqlExpression VisitOptionalValue(SqlOptionalValue sov) { 214List<SqlExpression> externals; 217internal Visitor(List<SqlExpression> externals, List<SqlParameter> parameters) 223internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 224SqlExpression result = base.VisitColumnRef(cref); 231internal override SqlExpression VisitUserColumn(SqlUserColumn suc) { 232SqlExpression result = base.VisitUserColumn(suc); 239private SqlExpression ExtractParameter(SqlExpression expr) { 254SqlExpression[] exprs = new SqlExpression[link.KeyExpressions.Count]; 264internal static bool HasHierarchy(SqlExpression expr) { 273internal override SqlExpression VisitMultiset(SqlSubSelect sms) { 278internal override SqlExpression VisitElement(SqlSubSelect elem) { 283internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 288internal override SqlExpression VisitExists(SqlSubSelect ss) { 292internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 299internal static bool HasMultiset(SqlExpression expr) { 308internal override SqlExpression VisitMultiset(SqlSubSelect sms) { 313internal override SqlExpression VisitElement(SqlSubSelect elem) { 317internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 321internal override SqlExpression VisitExists(SqlSubSelect ss) { 325internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 341internal override SqlExpression VisitMultiset(SqlSubSelect sms) { 345internal override SqlExpression VisitElement(SqlSubSelect elem) { 349internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 353internal override SqlExpression VisitExists(SqlSubSelect ss) { 357internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) {
SqlClient\Query\SqlNamer.cs (15)
45internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 145internal override SqlExpression VisitExpression(SqlExpression expr) { 149return (SqlExpression)this.Visit(expr); 156private SqlExpression VisitNamedExpression(SqlExpression expr, string name) { 160return (SqlExpression)this.Visit(expr); 167internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 174internal override SqlExpression VisitNew(SqlNew sox) { 196internal override SqlExpression VisitGrouping(SqlGrouping g) { 202internal override SqlExpression VisitOptionalValue(SqlOptionalValue sov) { 208internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 230internal static string DiscoverName(SqlExpression e) { 255internal override SqlExpression VisitColumn(SqlColumn col) { 263internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
SqlClient\Query\SqlOuterApplyReducer.cs (29)
35HashSet<SqlExpression> liftedExpressions = new HashSet<SqlExpression>(); 41SqlExpression liftedPredicate = SqlPredicateLifter.Lift(join.Right, leftProducedAliases); 82HashSet<SqlExpression> liftedExpressions = new HashSet<SqlExpression>(); 89SqlExpression liftedPredicate = SqlPredicateLifter.Lift(leftOuter.Right, leftProducedAliases); 129SqlExpression jCondition = join.Condition; 220internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 242internal bool ReferencesAny(SqlExpression expression) { 254internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 264internal override SqlExpression VisitColumn(SqlColumn col) { 274internal static bool IsDependent(SqlNode node, HashSet<SqlAlias> aliasesToCheck, HashSet<SqlExpression> ignoreExpressions) { 281HashSet<SqlExpression> ignoreExpressions; 284internal Visitor(HashSet<SqlAlias> aliasesToCheck, HashSet<SqlExpression> ignoreExpressions) { 289SqlExpression e = node as SqlExpression; 297internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 306internal override SqlExpression VisitColumn(SqlColumn col) { 316internal static bool CanLift(SqlSource source, HashSet<SqlAlias> aliasesForLifting, HashSet<SqlExpression> liftedExpressions) { 324internal static SqlExpression Lift(SqlSource source, HashSet<SqlAlias> aliasesForLifting) { 334HashSet<SqlExpression> liftedExpressions; 337internal SqlExpression lifted; 341internal Visitor(bool doLifting, HashSet<SqlAlias> aliasesForLifting, HashSet<SqlExpression> liftedExpressions) { 384internal static bool CanLift(SqlSource source, HashSet<SqlAlias> aliasesForLifting, HashSet<SqlExpression> liftedExpressions) { 390internal static List<List<SqlColumn>> Lift(SqlSource source, HashSet<SqlAlias> aliasesForLifting, HashSet<SqlExpression> liftedExpressions) { 399HashSet<SqlExpression> liftedExpressions; 406internal Visitor(bool doLifting, HashSet<SqlAlias> aliasesForLifting, HashSet<SqlExpression> liftedExpressions) { 429foreach(SqlExpression e in select.GroupBy) { 496private void ReferenceColumns(SqlExpression expression) {
SqlClient\Query\SqlParameterizer.cs (6)
129internal override SqlExpression VisitBinaryOperator(SqlBinary bo) 183internal SqlExpression VisitParameter(SqlExpression expr) { 184SqlExpression result = this.VisitExpression(expr); 280internal override SqlExpression VisitValue(SqlValue value) { 289internal override SqlExpression VisitClientParameter(SqlClientParameter cp) {
SqlClient\Query\SqlRemoveConstantOrderBy.cs (1)
26SqlExpression expr = orders[i].Expression;
SqlClient\Query\SqlReorderer.cs (3)
44internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 198select.OrderBy.Add(new SqlOrderExpression(sox.OrderType, (SqlExpression)dup.Duplicate(sox.Expression))); 256rowNumber.OrderBy.Add(new SqlOrderExpression(sox.OrderType, (SqlExpression)dup.Duplicate(sox.Expression)));
SqlClient\Query\SqlResolver.cs (4)
34internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 79internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 231internal override SqlExpression VisitTableValuedFunctionCall(SqlTableValuedFunctionCall fc) { 263foreach (SqlExpression exp in select.GroupBy) {
SqlClient\Query\SqlRetyper.cs (28)
26internal override SqlExpression VisitColumn(SqlColumn col) { 30internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 59internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 80SqlExpression left = bo.Left; 81SqlExpression right = bo.Right; 91Func<SqlExpression, SqlExpression, bool> needsRetype = 108internal override SqlExpression VisitIn(SqlIn sin) { 112SqlExpression test = sin.Expression; 114var newValues = new System.Collections.Generic.List<SqlExpression>(sin.Values.Count); 117SqlExpression value = sin.Values[i]; 138internal override SqlExpression VisitLike(SqlLike like) { 150internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) { 156internal override SqlExpression VisitSearchedCase(SqlSearchedCase c) { 182internal override SqlExpression VisitSimpleCase(SqlSimpleCase c) { 202SqlExpression right = sa.RValue; 208internal override SqlExpression VisitFunctionCall(SqlFunctionCall fc) { 225private void CoerceToFirst(SqlExpression arg1, ref SqlExpression arg2) { 243private void CoerceBinaryArgs(ref SqlExpression arg1, ref SqlExpression arg2) 259private void CoerceTypeFamily(SqlExpression arg1, SqlExpression arg2) 279private static void SetSqlTypeIfSimpleExpression(SqlExpression expression, ProviderType sqlType) 287private void CoerceTypes(ref SqlExpression arg1, ref SqlExpression arg2) 312private SqlExpression CoerceValueForExpression(SqlValue value, SqlExpression expression)
SqlClient\Query\SqlRewriteScalarSubqueries.cs (1)
31internal override SqlExpression VisitScalarSubSelect(SqlSubSelect ss) {
SqlClient\Query\SqlSupersetValidator.cs (13)
39SqlExpression expr = this.VisitExpression(col.Expression); 55internal override SqlExpression VisitValue(SqlValue value) { 66internal override SqlExpression VisitBinaryOperator(SqlBinary bo) { 80internal override SqlExpression ConvertValueToPredicate(SqlExpression bitExpression) { 84internal override SqlExpression ConvertPredicateToValue(SqlExpression predicateExpression) { 94internal override SqlExpression VisitMethodCall(SqlMethodCall mc) { 118internal override SqlExpression VisitColumn(SqlColumn col) { 124internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 130internal override SqlExpression VisitSharedExpression(SqlSharedExpression shared) { 133internal override SqlExpression VisitSharedExpressionRef(SqlSharedExpressionRef sref) { 144internal override SqlExpression VisitBinaryOperator(SqlBinary bo) {
SqlClient\Query\SqlTypeConverter.cs (10)
71internal override SqlExpression VisitUnaryOperator(SqlUnary uo) { 88return sql.FunctionCall(uo.ClrType, "NCHAR", new SqlExpression[] { uo.Operand }, uo.SourceExpression); 101return sql.FunctionCall(newClrType, sql.TypeProvider.From(typeof(int)), "UNICODE", new SqlExpression[] { uo.Operand }, uo.SourceExpression); 121private SqlExpression ConvertDoubleToString(SqlExpression expr, Type resultClrType) { 124SqlExpression nvarchar = sql.FunctionCall( 126new SqlExpression[] { sql.ValueFromObject(30, false, expr.SourceExpression) }, 131new SqlExpression[] { nvarchar, expr, sql.ValueFromObject(2, false, expr.SourceExpression) }, 136private SqlExpression ConvertBitToString(SqlExpression expr, Type resultClrType) {
SqlClient\Query\Translator.cs (41)
37SqlExpression projection = this.BuildProjection(tableAliasRef, table.RowType, allowDeferred, link, source); 41internal SqlExpression BuildProjection(SqlExpression item, MetaType rowType, bool allowDeferred, SqlLink link, Expression source) { 65SqlExpression match = sql.Value(dt, sql.Default(discriminator), code, true, source); 88private SqlNew BuildProjectionInternal(SqlExpression item, MetaType rowType, IEnumerable<MetaDataMember> members, bool allowDeferred, SqlLink link, Expression source) { 118private SqlLink BuildLink(SqlExpression item, MetaDataMember member, Expression source) { 120SqlExpression[] exprs = new SqlExpression[member.Association.ThisKey.Count]; 132List<SqlExpression> exprs = new List<SqlExpression>(); 136SqlExpression expansion = sql.Member(item, member.Member); 241internal SqlNode TranslateLink(SqlLink link, List<SqlExpression> keyExpressions, bool asExpression) { 285internal SqlExpression TranslateEquals(SqlBinary expr) { 289SqlExpression eLeft = expr.Left; 290SqlExpression eRight = expr.Right; 338List<SqlExpression> exprs1; 339List<SqlExpression> exprs2; 361SqlExpression exp = null; 364SqlExpression eq = this.TranslateEqualsOp(eqKind, exprs1[i], exprs2[i], !mtLeft.IsEntity); 378private SqlExpression TranslateEqualsOp(SqlNodeType op, SqlExpression left, SqlExpression right, bool allowExpand) { 390sql.Unary(SqlNodeType.IsNull, (SqlExpression)SqlDuplicator.Copy(left)), 391sql.Unary(SqlNodeType.IsNull, (SqlExpression)SqlDuplicator.Copy(right)) 395sql.Unary(SqlNodeType.IsNotNull, (SqlExpression)SqlDuplicator.Copy(left)), 396sql.Unary(SqlNodeType.IsNotNull, (SqlExpression)SqlDuplicator.Copy(right)) 414sql.Unary(SqlNodeType.IsNull, (SqlExpression)SqlDuplicator.Copy(left)), 415sql.Unary(SqlNodeType.IsNull, (SqlExpression)SqlDuplicator.Copy(right)) 419sql.Unary(SqlNodeType.IsNotNull, (SqlExpression)SqlDuplicator.Copy(left)), 420sql.Unary(SqlNodeType.IsNotNull, (SqlExpression)SqlDuplicator.Copy(right)) 436internal SqlExpression TranslateLinkEquals(SqlBinary bo) { 446internal SqlExpression TranslateLinkIsNull(SqlUnary expr) { 454List<SqlExpression> exprs = link.KeyExpressions; 457SqlExpression exp = null; 460SqlExpression compare = sql.Unary(expr.NodeType, sql.DoNotVisitExpression(exprs[i]), expr.SourceExpression); 477private static SqlExpression BestIdentityNode(SqlTypeCase tc) { 511private List<SqlExpression> GetIdentityExpressions(MetaType type, SqlExpression expr) { 514List<SqlExpression> exprs = new List<SqlExpression>(members.Count); 516exprs.Add(sql.Member((SqlExpression)SqlDuplicator.Copy(expr), mm));
SqlClient\Query\TypeSource.cs (6)
31internal SqlExpression sourceExpression; 38sourceExpression = node as SqlExpression; 117internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 127internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 149internal static SqlExpression GetTypeSource(SqlExpression expr) {
SqlClient\Reader\ObjectReader.cs (1)
38IObjectReaderFactory Compile(SqlExpression expression, Type elementType);
SqlClient\Reader\ObjectReaderCompiler.cs (25)
183public IObjectReaderFactory Compile(SqlExpression expression, Type elementType) { 233internal override SqlExpression VisitColumnRef(SqlColumnRef cref) { 234SqlExpression result = base.VisitColumnRef(cref); 245internal override SqlExpression VisitAliasRef(SqlAliasRef aref) { 246SqlExpression result = base.VisitAliasRef(aref); 279private DynamicMethod CompileDynamicMethod(Generator gen, SqlExpression expression, Type elementType) { 300internal SqlExpression projection; 302public CacheInfo(Type elementType, Type dataReaderType, object mapping, DataLoadOptions options, SqlExpression projection, IObjectReaderFactory factory) { 317internal IObjectReaderFactory GetFactory(Type elementType, Type dataReaderType, object mapping, DataLoadOptions options, SqlExpression projection) { 334internal void AddFactory(Type elementType, Type dataReaderType, object mapping, DataLoadOptions options, SqlExpression projection, IObjectReaderFactory factory) { 344internal static bool CanBeCompared(SqlExpression node) { 465internal static bool AreSimilar(SqlExpression node1, SqlExpression node2) { 657internal override SqlExpression VisitJoinedCollection(SqlJoinedCollection jc) { 662internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 685internal void GenerateBody(ILGenerator generator, SqlExpression expression) { 1053private void GenerateMemberAssignment(MetaDataMember mm, LocalBuilder locInstance, SqlExpression expr, LocalBuilder locStoreInMember) { 1106private void GenerateAssignValue(MetaDataMember mm, LocalBuilder locInstance, SqlExpression expr, LocalBuilder locStoreInMember) { 1155private void GenerateAssignDeferredEntitySet(MetaDataMember mm, LocalBuilder locInstance, SqlExpression expr, LocalBuilder locStoreInMember) { 1217private void GenerateAssignEntitySet(MetaDataMember mm, LocalBuilder locInstance, SqlExpression expr, LocalBuilder locStoreInMember) { 1275private void GenerateAssignDeferredReference(MetaDataMember mm, LocalBuilder locInstance, SqlExpression expr, LocalBuilder locStoreInMember) { 1329private bool IsDeferrableExpression(SqlExpression expr) { 1408private Type GenerateDeferredSource(SqlExpression expr, LocalBuilder locInstance) { 1550private Type GenerateExpressionForType(SqlExpression expr, Type type) { 1554private Type GenerateExpressionForType(SqlExpression expr, Type type, LocalBuilder locInstance) {
SqlClient\SqlProvider.cs (3)
965internal override SqlExpression VisitSubSelect(SqlSubSelect ss) { 969internal override SqlExpression VisitClientQuery(SqlClientQuery cq) { 1638SqlExpression projection = null;