2017-04-11 9:07 GMT+02:00 Fabien COELHO <coe...@cri.ensmp.fr>: > > I think so implementation of simple expression evaluation should not be >> hard >> > > Indeed it is not hard, it is rather a matter of deciding what it should > do, and the syntax to do it. > > - really just - we can expect so any variable will be replaced by >> const in expression >> >> Num (<|>|=|<=|>=) Num >> > > <> and != would seem handy as well.
sorry - I forgot > > > Text (<|>|=|<=|>=) Text >> > > What would be the use case for handling TEXT? > > not Bool, Bool (or|and) Bool >> > > Aka logical expressions. > > and special operator "defined" >> > > I'm still not buying this suggestion at all because it does not look like > SQL and I think that client-side expressions should be a simple subset of > SQL expressions, which a "defined" operators is definitely not. The "defined" tests is not coming from SQL universe. It is coming from scripting systems - In plain SQL I can use IS NULL. When I check any not existing variable in plpgsql I expect syntax error. So SQL doesn't know any similar to "defined" and it is ok. Currently In psql it is similar. When I use undefined psql variable I got syntax error. When I expect so some content of command line will come from command line or (possible) from some interactive action I would to handle this situation to by my script more user friendly - and I can write more user friendly error messages or I can react on it - enforce user input. I cannot do test on client side test on NULL - currently psql variables doesn't support it - and I am think so it is not what I want - I am interesting about some meta information from outside. else I need to check if I can use some psql variable. I have to do on client side. In some languages is usual term defined - some other using some special syntax or special environments. The my proposal "defined variablename" should be simple on implementation, but should not be one. It is just proposal. The tests: variable is defined, variable is null, ... is acceptable for me too - although I have small problem with NULL, because NULL can got from server - more psql variables doesn't support NULL, and support can enforce incompatible change. > > Hmmm. I'm not sure I get it. The penalty I see is that it adds a dummy >>> variable which must be given a sensible name, and for very short >>> expressions this is not a win. But this is a minor point. >>> >> > I know so it is not ideal - but the language with commands "\if", "\else" >> ... is not ideal language. >> > > Sure. > > -- > Fabien. >