| // +----------------------------------------------------------------------+ // // $Id$ require_once 'MDB2/Driver/Function/Common.php'; /** * MDB2 MySQL driver for the function modules * * @package MDB2 * @category Database * @author Lukas Smith */ class MDB2_Driver_Function_pgsql extends MDB2_Driver_Function_Common { // {{{ executeStoredProc() /** * Execute a stored procedure and return any results * * @param string $name string that identifies the function to execute * @param mixed $params array that contains the paramaters to pass the stored proc * @param mixed $types array that contains the types of the columns in * the result set * @param mixed $result_class string which specifies which result class to use * @param mixed $result_wrap_class string which specifies which class to wrap results in * @return mixed a result handle or MDB2_OK on success, a MDB2 error on failure * @access public */ function executeStoredProc($name, $params = null, $types = null, $result_class = true, $result_wrap_class = false) { $db = $this->getDBInstance(); if (MDB2::isError($db)) { return $db; } $query = 'SELECT * FROM '.$name; $query .= $params ? '('.implode(', ', $params).')' : '()'; return $db->query($query, $types, $result_class, $result_wrap_class); } // }}} // {{{ unixtimestamp() /** * return string to call a function to get the unix timestamp from a iso timestamp * * @param string $expression * * @return string to call a variable with the timestamp * @access public */ function unixtimestamp($expression) { return 'EXTRACT(EPOCH FROM DATE_TRUNC(\'seconds\', CAST ((' . $expression . ') AS TIMESTAMP)))'; } // }}} // {{{ substring() /** * return string to call a function to get a substring inside an SQL statement * * @return string to call a function to get a substring * @access public */ function substring($value, $position = 1, $length = null) { if (null !== $length) { return "SUBSTRING(CAST($value AS VARCHAR) FROM $position FOR $length)"; } return "SUBSTRING(CAST($value AS VARCHAR) FROM $position)"; } // }}} // {{{ random() /** * return string to call a function to get random value inside an SQL statement * * @return return string to generate float between 0 and 1 * @access public */ function random() { return 'RANDOM()'; } // }}} } ?>