/// <summary>
        ///     Executes a request that queries values on a single table, with constraints.
        ///     This is the synchronous implementation.
        /// </summary>
        /// <parameters>
        /// <param name="context">Description of the request.</param>
        /// </parameters>
        /// <returns>
        ///     The request result.
        /// </returns>
        protected virtual ISingleQueryResult Execute(ISingleQueryContext context)
        {
            if (!IsOperationThreadStarted)
            {
                return(new SingleQueryResult(false, ResultError.ErrorFatalNoOperationThread));
            }

            IActiveOperation <ISingleQueryResultInternal> ActiveOperation = Connector.SingleQuery(context);
            ISingleQueryResultInternal Result = ActiveOperation.Result;

            FinalizeOrQueue(ActiveOperation);

            return(Result);
        }
        public virtual string FinalizeOperation(MySqlCommand command, ISingleQueryResultInternal result)
        {
            try
            {
                using (MySqlDataReader Reader = command.EndExecuteReader(result.AsyncResult))
                {
                    ITableDescriptor  Table  = Context.Table;
                    ISchemaDescriptor Schema = Table.Schema;
                    IReadOnlyCollection <IColumnDescriptor> TableStructure = Schema.Tables[Table];
                    FillResult(Reader, TableStructure, out List <IResultRow> Rows);

                    result.SetCompletedWithRows(Rows);
                    return($"succeeded, {Rows.Count} row(s) returned");
                }
            }
            catch
            {
                result.SetCompleted(false, ResultError.ErrorExceptionCompletingQuery);
                throw;
            }
        }