コード例 #1
0
 private RewriteResult EnableAndResetForQuery(MySqlQueryWriter writer, ITerminalNode node)
 {
     _isEnabledForQuery            = true;
     _whereClauseOpened            = false;
     _whereClauseClosed            = false;
     _whereClauseHasHangingBracket = false;
     return(RewriteResult.NoChanges);
 }
コード例 #2
0
 private RewriteResult RewriteBacktickQuotedIdentifier(MySqlQueryWriter writer, ITerminalNode node)
 {
     if (string.Equals(node.GetText(), _backtickQuotedIdentifier, System.StringComparison.OrdinalIgnoreCase))
     {
         writer.WriteSymbol(_backtickQuotedReplacement);
         return(RewriteResult.ReplacedSymbol);
     }
     return(RewriteResult.NoChanges);
 }
コード例 #3
0
        private RewriteResult WhereClauseBegin(MySqlQueryWriter writer, ITerminalNode node)
        {
            if (!_isEnabledForQuery)
            {
                return(RewriteResult.NoChanges);
            }

            OpenWhereClause(writer, isWhereClauseToken: true);
            return(RewriteResult.ReplacedSymbol);
        }
コード例 #4
0
        private RewriteResult WhereClauseTerminator(MySqlQueryWriter writer, ITerminalNode node)
        {
            if (!_isEnabledForQuery)
            {
                return(RewriteResult.NoChanges);
            }

            OpenWhereClause(writer, isWhereClauseToken: false);
            CloseWhereClause(writer);
            return(RewriteResult.NoChanges);
        }
コード例 #5
0
        private void CloseWhereClause(MySqlQueryWriter writer)
        {
            if (!_whereClauseOpened || _whereClauseClosed)
            {
                return;
            }

            _whereClauseClosed = true;
            if (_whereClauseHasHangingBracket)
            {
                writer.WriteSymbol(")");
            }
        }
コード例 #6
0
        private void OpenWhereClause(MySqlQueryWriter writer, bool isWhereClauseToken)
        {
            if (_whereClauseOpened)
            {
                return;
            }

            _whereClauseOpened            = true;
            _whereClauseHasHangingBracket = isWhereClauseToken;
            if (isWhereClauseToken)
            {
                writer.WriteSymbol($"WHERE {Condition} AND (");
            }
            else
            {
                writer.WriteSymbol($"WHERE {Condition} ");
            }
        }
コード例 #7
0
 private RewriteResult Disable(MySqlQueryWriter writer, ITerminalNode node)
 {
     _isEnabledForQuery = false;
     return(RewriteResult.NoChanges);
 }
コード例 #8
0
 public MySqlQueryVisitor(MySqlQueryWriter writer)
 {
     _writer = writer ?? throw new ArgumentNullException(nameof(writer));
 }