Thread: pg_get_viewdef 7.4 parentheses

pg_get_viewdef 7.4 parentheses

From
Andreas Pflug
Date:
While implementing a function for making view definitions look prettier  
in pgadmin3, I had a look at ruleutils.c to examine why there are tons 
of parentheses coming out of pg_get_viewdef. I believe that some are 
really not needed.

These are:
- get_rule_expr, for CASES T_RelabelType and T_CoerceToDomain. The cast 
is always bound to the near left variable, so it can be left out.
- get_from_clauses for ON. Operators will deliver what is needed.

for get_rule_expr and get_from_clauses(JOIN part), parentheses could be 
omitted if the top-level expression is evaluated.

Do you agree?

Regards,
Andreas



Re: pg_get_viewdef 7.4 parentheses

From
Tom Lane
Date:
Andreas Pflug <Andreas.Pflug@web.de> writes:
> While implementing a function for making view definitions look prettier  
> in pgadmin3, I had a look at ruleutils.c to examine why there are tons 
> of parentheses coming out of pg_get_viewdef. I believe that some are 
> really not needed.

The difficulty is to know which ones *are* needed in complex
expressions.  If you think that any of them are always unnecessary,
you haven't thought hard enough.  For example:

> - get_rule_expr, for CASES T_RelabelType and T_CoerceToDomain. The cast 
> is always bound to the near left variable, so it can be left out.

What if the argument isn't just a variable?
        regards, tom lane