On Sat, Dec 3, 2016 at 2:16 AM, Fabien COELHO <coe...@cri.ensmp.fr> wrote: >> My guess is that something comparable to where pgbench is would be a >> reasonable target --- not least because I think we should strive to >> reduce unnecessary differences between psql and pgbench metalanguages. >> >> I'm not sure that I'm ready to propose that they should share the same >> expression engine, but perhaps it's not a totally wacky idea. > > > I'm trying to summarize a proposal for a conditional structure: > > - existing psql ":"-variables can be used, allowing anything from SQL > (eg querying about available objects, features, extensions, > current settings...) > > - target psql conditional syntax could be: > > \if <expression> > ... > \elif <...> > ... > \else > ... > \endif > > - possible incremental implemention steps on this path: > > (1) minimal condition and expression, compatible with > a possible future full-blown expression syntax > > \if :variable > \if not :variable -- maybe \if ! :variable > ... > \endif > > (2) add "\else" > > (3) add "\elif ..." (or maybe "\elsif ..."?) > > (4) add greater but limited expressions, compatible with a full blown > expression syntax (eg \if :var/const <comparison-operator> :var/const) > > (5) add full-blown <expression> support for \if, which suggest that > it would also be available for \set > > > Does this looks okay, or does it need to be amended? > > A few comments: > > Given the experience with pgbench and the psql context, I do not think that > it would really need to go beyond step 2 above, but I agree that I may be > wrong and it is best to be prepared for that from the start. Given the > complexity and effort involved with (5), it seems wise to wait for a clearer > motivation with actual use-cases before going that far.
Well, my vote would be to go all the way to #5 in one commit. Stopping short of that doesn't seem to me to save enough work to make much sense. I don't think we're talking about anything all that complex, and it will make future improvements a lot simpler. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (firstname.lastname@example.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers