Пример #1
0
        public void Visit(ComparisionIsExpression node)
        {
            var operand = node.Operand;

            VisitChild(2, false, false, operand);
            if (!_verdictColumn || !(operand is Identifier))
            {
                return;
            }

            var col   = (Identifier)operand;
            var table = _tableAlias.GetValue(col.GetLevelUnescapeUpName(2) ?? Null_Alias_Key);

            if (!IsRuledColumn(table, col.IdTextUpUnescape))
            {
                return;
            }

            switch (node.Mode)
            {
            case ComparisionIsExpression.IsFalse:
            {
                AddColumnValue(table, col.IdTextUpUnescape, LiteralBoolean.False, node, null);
                break;
            }

            case ComparisionIsExpression.IsTrue:
            {
                AddColumnValue(table, col.IdTextUpUnescape, LiteralBoolean.True, node, null);
                break;
            }

            case ComparisionIsExpression.IsNull:
            {
                AddColumnValue(table, col.IdTextUpUnescape, null, node, null);
                break;
            }
            }
        }
Пример #2
0
 public virtual void Visit(ComparisionIsExpression node)
 {
     VisitInternal(node.Operand);
 }