Thread: PREPARE in bash scripts

PREPARE in bash scripts

From
"A.j. Langereis"
Date:
Dear all,
 
I've written a bash script that looks like the one below:
 
#!/bin/bash
 
DBuser='root'
DBname='test'
 
psql -q --username=$DBuser --dbname=$DBname -c "prepare test_statement (integer) as insert into tbl_test (col_test) values (\\$1)";
 
tail -f /root/testfile | while read a;
    do
        psql -q --username=$DBuser --dbname=$DBname -c "execute test_statement ($a)";
    done;
 
psql -q --username=$DBuser --dbname=$DBname -c "deallocate test_statement";
 
Note that this is very stripped version of the real script, but it gives the same errors:
 
ERROR:  prepared statement "test_statement" does not exist
 
I persume that this is caused because of the individual statements, each using their own session. But is there a way to avoid this?
In reality the statement that is prepared is much more complex, and the files that are processed are rather big. I hoped to gain more performance by preparing the statement.
 
Your sincerely,
 
Aarjan Langereis
 
Ps. The bash script is ran on an Fedora Core 3 machine using PostgreSQL 8.1.0