/**
  * 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;
 }
예제 #2
0
 /**
  * 
  * @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;
 }
예제 #5
0
 /**
  * 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()));
 }