private RewriteResult EnableAndResetForQuery(MySqlQueryWriter writer, ITerminalNode node) { _isEnabledForQuery = true; _whereClauseOpened = false; _whereClauseClosed = false; _whereClauseHasHangingBracket = false; return(RewriteResult.NoChanges); }
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); }
private RewriteResult WhereClauseBegin(MySqlQueryWriter writer, ITerminalNode node) { if (!_isEnabledForQuery) { return(RewriteResult.NoChanges); } OpenWhereClause(writer, isWhereClauseToken: true); return(RewriteResult.ReplacedSymbol); }
private RewriteResult WhereClauseTerminator(MySqlQueryWriter writer, ITerminalNode node) { if (!_isEnabledForQuery) { return(RewriteResult.NoChanges); } OpenWhereClause(writer, isWhereClauseToken: false); CloseWhereClause(writer); return(RewriteResult.NoChanges); }
private void CloseWhereClause(MySqlQueryWriter writer) { if (!_whereClauseOpened || _whereClauseClosed) { return; } _whereClauseClosed = true; if (_whereClauseHasHangingBracket) { writer.WriteSymbol(")"); } }
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} "); } }
private RewriteResult Disable(MySqlQueryWriter writer, ITerminalNode node) { _isEnabledForQuery = false; return(RewriteResult.NoChanges); }
public MySqlQueryVisitor(MySqlQueryWriter writer) { _writer = writer ?? throw new ArgumentNullException(nameof(writer)); }