Thread: paging

paging

From
"A. Van Hook"
Date:
I have  a simple script to automate sql statements:  q " select * from
tablename"  where q is an alias to echo "$@ ;  " | psql imdb

Turning on security breaks this script since is need s password.
   the new one works a before: q "select *..." passwd where q is now
an expect script:
#!/usr/bin/expect

set query [lindex $argv 0]
set query [lindex $argv 1]

spawn psql imdb -U hook -n         expect "Password: ";         send   "$passwd\n ";         expect "imdb=# ";
send  "$query;\r";         expect "imdb=# ";         send   "\q;\r";
 

The problem is that long query returns  invoke the paging option  so you
can scroll a page a time. Paging doesn't work  properly within the
script and even if it did , I would have to disable it in order to
redirect the output to a file or a pipe.
   I can't  find any info in the docs. Can some one point me  in the
right direction....


thanks



Re: paging

From
Peter Eisentraut
Date:
A. Van Hook writes:

> #!/usr/bin/expect
>
> set query [lindex $argv 0]
> set query [lindex $argv 1]
>
> spawn psql imdb -U hook -n
>           expect "Password: ";
>           send   "$passwd\n ";
>           expect "imdb=# ";
>           send   "$query;\r";
>           expect "imdb=# ";
>           send   "\q;\r";
>
> The problem is that long query returns  invoke the paging option  so you
> can scroll a page a time. Paging doesn't work  properly within the
> script and even if it did , I would have to disable it in order to
> redirect the output to a file or a pipe.

Try psql -P pager to turn the pager off.  Also you can probably use

export PGPASSWORD=xyz
psql ...

to skip the password probe.

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/