On 31-05-2021 16:59, Adriano dos Santos Fernandes wrote:
But then an EXECUTE PROCEDURE ignoring output will not be possible.
Also, EXECUTE PROCEDURE is very verbose (specially for execute ignoring
outputs, which in most languages does not even require any keyword - but
is ambiguous with our functions).
If CALL is not accepted, then I propose same syntax with "EXEC".
What is the real problem you're trying to solve? The current syntax is
20+ years old, and I think this is one of the first times (if not the
first time) I hear complaints about its verbosity, or a need to
selectively obtain output columns.
If this is really something that needs to be addressed, I would prefer a
less ambiguous naming than `EXEC` (which at first glance I'd think just
to be an abbreviation of `EXECUTE PROCEDURE` instead of an entirely
different statement with different semantics).
Maybe a few design options would need to be evaluated. For example, if
the existing `EXECUTE PROCEDURE` syntax can be retrofitted to obtain the
behaviour you want.
For example, `RETURNING_VALUES <variable list>` and `INTO
<variable_list>` serve the same purpose, so they could be alternative
terms (we could then also consider allowing `INTO (<variable list>)`
everywhere `INTO` currently occurs for consistency).
The problem of selectively returning columns could be solved with
`RETURNING`, where we introduce `RETURNING ()` to signal that no columns
need to be returned (although I really question the need for such a
feature). Again, for syntax consistency, we should consider allowing
this everywhere `RETURNING` occurs, where it would signal the 'normal'
behaviour.
Mark
--
Mark Rotteveel
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel