Ejemplo n.º 1
0
 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]);
             }
         }
     }
 }
Ejemplo n.º 2
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);
        }