23 namespace Deveel.Data.Sql.Expressions {
32 this.variableResolver = variableResolver;
53 return base.VisitBinary(binaryEpression);
59 return base.VisitConstant(constant);
64 var
function = invoke.ResolveRoutine(query) as
IFunction;
66 sqlType =
function.ReturnType(invoke, query, variableResolver);
68 return base.VisitFunctionCall(expression);
73 sqlType = variableResolver.ReturnType(name);
75 return base.VisitReference(reference);
80 return VisitQueryReference((QueryReferenceExpression) expression);
82 return base.Visit(expression);
Provides some helper functions for resolving and creating SqlType instances that are primitive to the...
override SqlExpressionType ExpressionType
static SqlBinaryExpression Divide(SqlExpression left, SqlExpression right)
ObjectName ReferenceName
Gets the name of the object referenced by the expression.
SqlType Type
Gets the SqlType that defines the object properties
Defines a routine that is a function, that means it returns a value after its execution.
An expression that references an object within a context.
static SqlBinaryExpression Multiply(SqlExpression left, SqlExpression right)
static BooleanType Boolean()
SqlExpression VisitQueryReference(QueryReferenceExpression expression)
override SqlExpression VisitConstant(SqlConstantExpression constant)
override SqlExpression VisitReference(SqlReferenceExpression reference)
SqlExpressionType
All the possible type of SqlExpression supported
DataObject Value
Gets the constant value of the expression.
readonly IVariableResolver variableResolver
static NumericType Numeric()
ReturnTypeVisitor(IRequest query, IVariableResolver variableResolver)
static SqlBinaryExpression Modulo(SqlExpression left, SqlExpression right)
static SqlBinaryExpression Add(SqlExpression left, SqlExpression right)
override SqlExpression VisitBinary(SqlBinaryExpression binaryEpression)
SqlExpression[] Arguments
static SqlBinaryExpression Subtract(SqlExpression left, SqlExpression right)
The information about the invocation of a routine, including the full name and arguments (as SqlExpre...
Defines the properties of a specific SQL Type and handles the values compatible.
An interface to resolve a variable name to a constant object.
override SqlExpression VisitFunctionCall(SqlFunctionCallExpression expression)
Visits the expression that calls the function defined.
An expression that holds a constant value.
override SqlExpression Visit(SqlExpression expression)
Visits a given SQL expression.
QueryReference QueryReference
Defines the base class for instances that represent SQL expression tree nodes.
SqlType GetType(SqlExpression expression)
A visitor for SqlExpression objects.