private void CompileClauses(DataContainerDescriptor containerDescriptor, RequestExecutionContextCacheInfo cacheInfo) { if (cacheInfo.ParsedRequest.SpecialCommand.IsSpecialCommand) { return; } if (cacheInfo.ParsedRequest.BaseDataset.WhereClauseRoot != null) { cacheInfo.ParsedRequest.BaseDataset.WhereClauseProcessor = (Func <ClauseEvaluationContext, bool>)QueryParser.CompileWhereClause( containerDescriptor, cacheInfo.ParsedRequest.BaseDataset.WhereClauseRoot, cacheInfo); } switch (cacheInfo.ParsedRequest.StatementType) { case StatementType.Select: CompileSelectClauses(containerDescriptor, cacheInfo); break; case StatementType.Update: CompileInsertUpdateClauses(m_storageDriver, containerDescriptor, cacheInfo, DriverChangeType.Update); break; case StatementType.Insert: CompileInsertUpdateClauses(m_storageDriver, containerDescriptor, cacheInfo, DriverChangeType.Insert); break; case StatementType.Delete: break; default: throw new Exception("Invalid statement type: " + cacheInfo.ParsedRequest.StatementType); } }