示例#1
0
        public override QueryNode VisitBinaryQuery(BinaryQuery query)
        {
            base.VisitBinaryQuery(query);

            EnsureQueryHasNoOrderByUnlessTopSpecified(query.Left);
            EnsureQueryHasNoOrderByUnlessTopSpecified(query.Right);

            // Except for UNION ALL any binary operator requires that all
            // column data types are comparable.

            if (query.Op != BinaryQueryOperator.UnionAll)
            {
                foreach (SelectColumn columnSource in query.GetColumns())
                {
                    if (!CheckIfTypeIsComparable(columnSource.Expression.ExpressionType))
                    {
                        _errorReporter.InvalidDataTypeInUnion(columnSource.Expression.ExpressionType, query.Op);
                    }
                }
            }

            return(query);
        }
示例#2
0
        public override QueryNode VisitBinaryQuery(BinaryQuery query)
        {
            base.VisitBinaryQuery (query);

            EnsureQueryHasNoOrderByUnlessTopSpecified(query.Left);
            EnsureQueryHasNoOrderByUnlessTopSpecified(query.Right);

            // Except for UNION ALL any binary operator requires that all
            // column data types are comparable.

            if (query.Op != BinaryQueryOperator.UnionAll)
            {
                foreach (SelectColumn columnSource in query.GetColumns())
                {
                    if (!CheckIfTypeIsComparable(columnSource.Expression.ExpressionType))
                        _errorReporter.InvalidDataTypeInUnion(columnSource.Expression.ExpressionType, query.Op);
                }
            }

            return query;
        }