internal ParseNotIn(TSFQLSentence sentence) { foreach (TSFQLAttribute attribute in sentence.Attributes) { if (attribute.Name.Equals("NotIn", StringComparison.CurrentCultureIgnoreCase)) { if (attribute.Parameters.Count > 0) { ParseSQLToDict(attribute.Parameters[0]); } } } }
public TSFQLSentence Optimize(TSFQLSentence sentence) { switch (sentence.SentenceType) { case SentenceType.SELECT: SyntaxAnalysis.Select.Select select = sentence.SyntaxEntity as SyntaxAnalysis.Select.Select; if (select.Where != null) { select.Where = Optimize(select.Where); } break; case SentenceType.DELETE: SyntaxAnalysis.Delete.Delete delete = sentence.SyntaxEntity as SyntaxAnalysis.Delete.Delete; if (delete.Where != null) { delete.Where = Optimize(delete.Where); } break; case SentenceType.UPDATE: SyntaxAnalysis.Update.Update update = sentence.SyntaxEntity as SyntaxAnalysis.Update.Update; if (update.Where != null) { update.Where = Optimize(update.Where); } break; case SentenceType.INSERT: case SentenceType.EXEC: case SentenceType.CREATETABLE: break; default: throw new SyntaxException(string.Format("Unknow sentence {0}", sentence.SentenceType)); } sentence.ParseOptimize = this; return(sentence); }