On Mon, Jun 10, 2019 at 8:32 PM Rob Sargent <robjsargent@xxxxxxxxx> wrote:
> On Jun 10, 2019, at 6:40 AM, Igor Korot <ikorot01@xxxxxxxxx> wrote:
>
> Hi, Adrian,
>
>> On Mon, Jun 10, 2019 at 7:03 PM Adrian Klaver <adrian.klaver@xxxxxxxxxxx> wrote:
>>
>>> On 6/10/19 9:30 AM, Igor Korot wrote:
>>>
>>> According to https://stackoverflow.com/questions/16048649/postgresql-9-x-pg-read-binary-file-inserting-files-into-bytea,
>>> the file needs to be on the server inside PGDATA directory.
>>> It is not a problem in general, but just curious - is there a more
>>> generic solution (to get the file from the client)?
>>
>> This would depend on what is is you are trying to accomplish:
>>
>> 1) Are you really wanting to insert a file at a time at the psql command
>> line?
>
> Yes.
Gnarly. I suppose you could open the pdf in emacs and tell emacs to NOT render it. Cut the entire buffer and paste it, properly quoted, into your psql command line. But \lo stuff seems much more likely to work.
This is what I've used for text:
SELECT:'file_content';
For smallish files I'd probably just stick with the same theme but encode the binary data as Base64 and then decode it into the bytea field.
For not-so-small files probably better off storing the content elsewhere and inserting location data into the database.
I have not yet had the desire to incorporate the large object API into my designs.
David J.