/** * Get the current (ie, value most recently obtained) from a list of named Sequences * * @param array $sequences array of sequence names * @param Pg $db Database connection to use * @return array Array of sequence values */ protected static function getSequenceCurval(array $sequences, Pg $db) { // anything to do if (!$sequences) { return array(); } // sequence components foreach ($sequences as $key => &$sequence) { $sequence = sprintf("currval('%s'::regclass) as %s", $sequence, Query::quoteIdentifier($key)); } $sequences = implode(', ', $sequences); return $db->query(new Query("SELECT {$sequences};"))->fetchSingle(Result::FLATTEN_PREVENT); }