Hi David,
Yes you're correct. The problem is caused by the back-ticks (`) Here is what I found in the docs about back-ticks
"Within an argument, text that is enclosed in backquotes (`) is taken as a command line that is passed to the shell.
Theoutput of the command (with any trailing newline removed) replaces the backquoted text."
Arthur Lewis
----- Original Message -----
From: "David G. Johnston" <david.g.johnston@gmail.com>
To: "Arthur Lewis" <arthur.lewis@hypermediasystems.com>
Cc: "Adrian Klaver" <adrian.klaver@aklaver.com>, pgsql-sql@postgresql.org
Sent: Thursday, January 28, 2016 1:57:38 PM
Subject: Re: [SQL] insert a text file into a variable in order to insert into a bytea column
On Thu, Jan 28, 2016 at 2:08 PM, Arthur Lewis < arthur.lewis@hypermediasystems.com > wrote:
postgres=> \set stext `cat file.txt`
postgres=> select octet_length(:'stext');
octet_length
--------------
53603
in my shell I did the following:
$ ls -l file.txt
-rw-rw-r-- 1 alewis alewis 53604 Jan 27 08:30 file.txt
I'm still one byte short. So the problem has to be either the \set command chomping it or cat. I just tested cat and
thatseems to be working.
Or the "back-ticks" implementation...
David J.