Postgresql, Bytea, Oid - Yii?

Коллеги, бьюсь с такой проблемой:

  • нужно хранить документы в БД (PostgreSQL);

  • есть две возможности - в поле типа Bytea и с помощью OID;

  • в Bytea всё получилось хранить и вынимать (правда не с использованием стандартных pg_escape_bytea и pg_unescape_bytea, т.к. они несимметричны, как выяснилось, а с помощью base64_encode() и base64_decode, соответственно);

  • не устраивает скорость работы с bytea, тем более под нагрузкой сервер просто умрет, кончится оперативка;

  • нашел информацию по OID - как сравнение производительности указывает на этот вариант - раз в 5 быстрее загрузка и чтение из БД, и памяти чуть ли не в 10 раз меньше потребляется, НО… вот здесь-то и проблема…

Как правильно организовать работу с OID. У меня сейчас примерно такой код, который основан на найденном мной в Инете и по-быстрому заточенном под Yii:



$document->filename = $uploadedFile->getName();


$document->filetype = $uploadedFile->getType();


$document->filesize = $uploadedFile->getSize();





if($document->save())


{


	$connection = Yii::app()->db;


	try


	{


		$fileContent = file_get_contents($uploadedFile->getTempName());


		


		$transaction=$connection->beginTransaction();


		


		$oid = pg_lo_create($connection->pdo);


		$connection->createCommand("UPDATE documents SET content_oid = '$oid' WHERE id = $document->id")->execute();


		


		$oidHandle = pg_lo_open($connection->pdo, $oid, 'w');


		pg_lo_write($oidHandle, $fileContent);


		pg_lo_close($oidHandle);


		


		$transaction->commit();


	}


	catch(Exception $e)


	{


		$transaction->rollBack();


	}


	


	$this->redirect(CController::createUrl('client/show', array('id'=>$_GET['client_id'])));


}


Эксепшнов не происходит, но в базе поле content_oid - NULL, читать оттуда соответственно тоже не получается. Может у меня проблемы в коде? В исходном примере использовались pg_connect, pg_query и т.д. Я постарался использовать только pg_lo_open и т.п.

А можно бы было узнать как все работало с Bytea ?

У меня пока что неполучается…