Thread: using placeholders in psql
Peter, just an idea to use placeholders (?) in psql. It would be useful for interactive work and debuging. We already have powerful features in psql but sometimes we need more. If user enter select string with placeholder, he may get prompt to input something for arg1, then for arg2... Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83
Oleg Bartunov writes: > just an idea to use placeholders (?) in psql. > It would be useful for interactive work and debuging. > We already have powerful features in psql but sometimes > we need more. If user enter select string with placeholder, > he may get prompt to input something for arg1, then for arg2... You can simulate this: $ cat test.sql \echo -n 'Enter something: ' \set val1 `read && echo $REPLY` \echo -n 'And something else: ' \set val2 `read && echo $REPLY` select :val1, :val2; $ psql -f test.sql Enter something: 55<enter> And something else: 77<enter>?column? | ?column? ----------+---------- 55 | 77 (1 row) Does this work for your application? The question marks pose too much of an incompatibility problem. The :var notation was already much disputed, even though it's kind of standard. -- Peter Eisentraut peter_e@gmx.net http://funkturm.homeip.net/~peter
On Sat, 5 May 2001, Peter Eisentraut wrote: > Oleg Bartunov writes: > > > just an idea to use placeholders (?) in psql. > > It would be useful for interactive work and debuging. > > We already have powerful features in psql but sometimes > > we need more. If user enter select string with placeholder, > > he may get prompt to input something for arg1, then for arg2... > > You can simulate this: > > $ cat test.sql > \echo -n 'Enter something: ' > \set val1 `read && echo $REPLY` > > \echo -n 'And something else: ' > \set val2 `read && echo $REPLY` > > select :val1, :val2; > > $ psql -f test.sql > Enter something: 55<enter> > And something else: 77<enter> > ?column? | ?column? > ----------+---------- > 55 | 77 > (1 row) > > Does this work for your application? Thanks for the tip. Sure, it works. But my thought was about intrinsic feature of psql. Most time I use psql is for interactive debugging. With history feature it would be very convenient. > > The question marks pose too much of an incompatibility problem. The :var > notation was already much disputed, even though it's kind of standard. > question mark is just borrowed from DBI syntax, no problem with :var > Regards, Oleg _____________________________________________________________ Oleg Bartunov, sci.researcher, hostmaster of AstroNet, Sternberg Astronomical Institute, Moscow University (Russia) Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/ phone: +007(095)939-16-83, +007(095)939-23-83