Tom Lane wrote:

Neil Conway <[EMAIL PROTECTED]> writes:


(3) The parser must distinguish between two cases when it sees an
unknown word (T_WORD) beginning a statement. The word could be the
beginning of a SQL statement (stmt_execsql in the grammar), such as:





UPDATE ...;





or the name of a function in a function call:





invoke_func(...);





The patch currently distinguishes between these cases by looking at the
next token -- if it is a left parenthesis, the patch assumes it is a
function call, otherwise it assumes it is a SQL statement. Is this the
best approach?



That seems fairly unworkable. For example

        SELECT (2,3,4);

is valid SQL.  Also I'm not sure if you can extend this to cope with
schema-qualified function names.





ISTM that this is being done at the wrong level anyway. I'd like to see a facility available in our SQL, e.g.


 CALL foo();

with the restriction that foo() should be declared to return void. Of course, that doesn't remove the keyword requirement as Neil wanted, but doing that would probably require a lot more work - we'd have to make procedures a whole lot closer to first-class objects.

cheers

andrew

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
     subscribe-nomail command to [EMAIL PROTECTED] so that your
     message can get through to the mailing list cleanly

Reply via email to