internal void ProcessSingleOdp()
        {
            ExecutedQuery query = null;

            try
            {
                m_odpContext.StateManager.ExecutedQueryCache?.Extract(m_dataSet, out query);
                if (InitializeDataSource(query))
                {
                    m_runtimeDataSet.InitProcessingParams(m_connection, m_transaction);
                    m_runtimeDataSet.ProcessInline(query);
                    m_executionMetrics.Add(m_runtimeDataSet.DataSetExecutionMetrics);
                    if (m_totalDurationFromExistingQuery != null)
                    {
                        m_executionMetrics.TotalDuration.Subtract(m_totalDurationFromExistingQuery);
                    }
                    TeardownDataSource();
                }
            }
            catch (Exception e)
            {
                HandleException(e);
                throw;
            }
            finally
            {
                FinalCleanup();
                query?.Close();
            }
        }
        internal void Initialize()
        {
            ExecutedQuery query = null;

            try
            {
                m_odpContext.StateManager.ExecutedQueryCache?.Extract(m_dataSet, out query);
                InitializeDataSource(query);
                InitializeDataSet(query);
            }
            catch (Exception e)
            {
                HandleException(e);
                FinalCleanup();
                query?.Close();
                throw;
            }
        }