/** * Remove the result and all the related variables * @param $deliveryResultIdentifier * @return bool */ public function deleteResult($deliveryResultIdentifier) { // get all the variables related to the result $sql = 'SELECT ' . self::VARIABLES_TABLE_ID . ' FROM ' . self::VARIABLES_TABLENAME . ' WHERE ' . self::VARIABLES_FK_COLUMN . ' = ?'; $variables = $this->persistence->query($sql, array($deliveryResultIdentifier)); // delete key/value for each variable foreach ($variables as $variable) { $sql = 'DELETE FROM ' . self::RESULT_KEY_VALUE_TABLE_NAME . ' WHERE ' . self::RESULTSKV_FK_COLUMN . ' = ?'; if ($this->persistence->exec($sql, array($variable[self::VARIABLES_TABLE_ID])) === false) { return false; } } // remove variables $sql = 'DELETE FROM ' . self::VARIABLES_TABLENAME . ' WHERE ' . self::VARIABLES_FK_COLUMN . ' = ?'; if ($this->persistence->exec($sql, array($deliveryResultIdentifier)) === false) { return false; } // remove results $sql = 'DELETE FROM ' . self::RESULTS_TABLENAME . ' WHERE ' . self::RESULTS_TABLE_ID . ' = ?'; if ($this->persistence->exec($sql, array($deliveryResultIdentifier)) === false) { return false; } return true; }
/** * * @param Revision $revision * @param array $data * @return boolean */ protected function saveData(RdsRevision $revision, $data) { $columns = array(self::DATA_REVISION, self::DATA_SUBJECT, self::DATA_PREDICATE, self::DATA_OBJECT, self::DATA_LANGUAGE); $multipleInsertQueryHelper = $this->persistence->getPlatForm()->getMultipleInsertsSqlQueryHelper(); $query = $multipleInsertQueryHelper->getFirstStaticPart(self::DATA_TABLE_NAME, $columns); foreach ($data as $triple) { $query .= $multipleInsertQueryHelper->getValuePart(self::DATA_TABLE_NAME, $columns, array(self::DATA_REVISION => $this->persistence->quote($revision->getId()), self::DATA_SUBJECT => $this->persistence->quote($triple->subject), self::DATA_PREDICATE => $this->persistence->quote($triple->predicate), self::DATA_OBJECT => $this->persistence->quote($triple->object), self::DATA_LANGUAGE => $this->persistence->quote($triple->lg))); } $query = substr($query, 0, strlen($query) - 1); $query .= $multipleInsertQueryHelper->getEndStaticPart(); $success = $this->persistence->exec($query); return $success; }
/** * Remove the result and all the related variables * @param $deliveryResultIdentifier * @return bool */ public function deleteResult($deliveryResultIdentifier) { // remove variables $sql = 'DELETE FROM ' . self::VARIABLES_TABLENAME . ' WHERE ' . self::VARIABLES_FK_COLUMN . ' = ?'; if ($this->persistence->exec($sql, array($deliveryResultIdentifier)) === false) { return false; } // remove results $sql = 'DELETE FROM ' . self::RESULTS_TABLENAME . ' WHERE ' . self::RESULTS_TABLE_ID . ' = ?'; if ($this->persistence->exec($sql, array($deliveryResultIdentifier)) === false) { return false; } return true; }
/** * Executes a query on the storage engine. Should be only used for INSERT, * DELETE statements. * * @access public * @author Jerome Bogaerts, <*****@*****.**> * @param string statement * @param array params * @return int */ public function exec($statement, $params = array()) { $this->debug($statement); common_Profiler::queryStart(); $returnValue = $this->persistence->exec($statement, $params); common_Profiler::queryStop($statement, $params); $this->incrementNrOfQueries(); return (int) $returnValue; }
/** * Should be moved to another interface (session handler) than the persistence, * this class implementing only the persistence side and another class implementing * the handler interface and relying on the persitence. */ protected function gc() { $statement = 'DELETE FROM kv_store WHERE kv_time > 0 AND kv_time < ? '; return (bool) $this->sqlPeristence->exec($statement, array(time())); }