getName() == 'pgsql' || $db->getName() == 'oracle') && array_key_exists( 'sequence', $def->idProperty->generator->params ) ) { $seq = $def->idProperty->generator->params['sequence']; $q->set( $def->idProperty->columnName, "nextval('{$seq}')" ); } } /** * Returns the integer value of the generated identifier for the new object. * * Called right after execution of the insert query. * * @param ezcPersistentObjectDefinition $def * @param ezcDbHandler $db * @return int */ public function postSave( ezcPersistentObjectDefinition $def, ezcDbHandler $db ) { $id = null; if( array_key_exists( 'sequence', $def->idProperty->generator->params ) && $def->idProperty->generator->params['sequence'] !== null ) { $id = (int)$db->lastInsertId( $def->idProperty->generator->params['sequence'] ); } else { $id = (int)$db->lastInsertId(); } // check that the value was in fact successfully received. if( $db->errorCode() != 0 ) { return null; } return $id; } } ?>