On 08/24/2015 08:06 AM, Pavel Stehule wrote: Hi I found so a set "psql" and "xargs" is pretty strong. But I miss a psql option for simple returning current database and continuing in pipeline. What I am doing: psql postgres -At -c "select datname from pg_database" | xargs -P 3 -I % psql % -At -c "select current_databe() from pg_stat_all_tables where relname = 'pg_attribute' and n_dead_tup > 100000" | xargs -P 3 -I % sh -c "psql % -q -c 'analyze pg_attribute'; echo %" | xargs -P 3 -I % psql % -At -c "select curren_database() from ..." it works perfectly - but the line xargs -P 3 -I % sh -c "psql % -q -c 'analyze pg_attribute'; echo %" is little bit ugly - with some psql option it can be cleaned to xargs -P3 -I % psql % -q --echo-db -c "analyze pg_attribute" | ... --echo-db requires -q option What are you thinking about this idea? Seems like a one-tricky-pony to me. You're just as likely to need to print a relation name or something else, as the current database.
Hi I found so a set "psql" and "xargs" is pretty strong. But I miss a psql option for simple returning current database and continuing in pipeline. What I am doing: psql postgres -At -c "select datname from pg_database" | xargs -P 3 -I % psql % -At -c "select current_databe() from pg_stat_all_tables where relname = 'pg_attribute' and n_dead_tup > 100000" | xargs -P 3 -I % sh -c "psql % -q -c 'analyze pg_attribute'; echo %" | xargs -P 3 -I % psql % -At -c "select curren_database() from ..." it works perfectly - but the line xargs -P 3 -I % sh -c "psql % -q -c 'analyze pg_attribute'; echo %" is little bit ugly - with some psql option it can be cleaned to xargs -P3 -I % psql % -q --echo-db -c "analyze pg_attribute" | ... --echo-db requires -q option What are you thinking about this idea?
I don't actually understandu what you'd put in the "..." above. One you've analyze'd the table, what more do you want to do?
Overall, once your pipeline gets that complicated, I'd rather write a little bash or perl script with for-loops and variables.
- Heikki
pgsql-hackers by date:
Соглашаюсь с условиями обработки персональных данных