Re: CALL optional in PL/pgSQL

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
Cc: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: CALL optional in PL/pgSQL
Date: 2018-03-01 15:31:46
Message-ID: 19563.1519918306@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> writes:
> 2018-03-01 5:51 GMT+01:00 Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com
>> This seems to be a popular issue when porting from PL/SQL, so I'll throw
>> it out here for discussion. Apparently, in PL/SQL you can call another
>> procedure without the CALL keyword. Here is a patch that attempts to
>> implement that in PL/pgSQL as well. It's not very pretty.

> The CALL is not optional in PL/SQL - I was surprised - it is required in
> some environments, and it should not be used in other (like PL/SQL)

I think this is an actively bad idea. It introduces an inherent ambiguity
into the grammar; for instance

PERFORM (2);

now has two valid interpretations. The only way to resolve that is with
heuristics or treating a bunch more words as reserved keywords, neither of
which are appetizing. (I didn't look to see which way Peter did it, but
his description of his patch as "not very pretty" doesn't fill me with
happiness.) And it would likely cause headaches down the road whenever
we attempt to add new syntax to plpgsql.

I think we should reject the idea.

>> Also, I think PL/SQL allows you to call a procedure with no arguments
>> without parentheses. I have not implemented that. I think it could be
>> done, but it's not very appealing.

> I don't like this feature.

This idea is even worse in terms of the amount of syntax space it will
occupy, again for zero functional benefit.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2018-03-01 15:35:23 Re: 2018-03 Commitfest starts tomorrow
Previous Message Satyanarayana Narlapuram 2018-03-01 15:30:08 Re: zheap: a new storage format for PostgreSQL