for statement, adding a STEP clause?

Started by Jaime Casanovaover 19 years ago3 messages
#1Jaime Casanova
systemguards@gmail.com

Hi,

there is a chance to add a STEP clause to the FOR statement in plpgsql?

something like

FOR i IN 1..100 STEP 2 LOOP
END LOOP

the STEP value must be a positive value because of the effect of the
REVERSE clause...

i think it's just a matter of fixing gram.y, plpgsql.h (to add
another PLpgSQL_expr to the stmt_fori) and pl_exec.c (the way the
internal variable is incremented here makes me think that i wasn't the
first one with this idea)

i'm missing something? is "STEP" a good name for this? i will make a
try tomorrow

any ideas and suggestions are welcome...

--
regards,
Jaime Casanova

"What they (MySQL) lose in usability, they gain back in benchmarks, and that's
all that matters: getting the wrong answer really fast."
Randal L. Schwartz

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Jaime Casanova (#1)
Re: for statement, adding a STEP clause?

"Jaime Casanova" <systemguards@gmail.com> writes:

there is a chance to add a STEP clause to the FOR statement in plpgsql?

This is not free: it'd require making STEP a reserved word (at least
within plpgsql) which is contrary to spec. I think you need to make
a pretty good case why the value of the feature outweighs breaking
applications that have perfectly-legally used "step" as an identifier.

regards, tom lane

#3Andrew Dunstan
andrew@dunslane.net
In reply to: Tom Lane (#2)
Re: for statement, adding a STEP clause?

Tom Lane wrote:

"Jaime Casanova" <systemguards@gmail.com> writes:

there is a chance to add a STEP clause to the FOR statement in plpgsql?

This is not free: it'd require making STEP a reserved word (at least
within plpgsql) which is contrary to spec. I think you need to make
a pretty good case why the value of the feature outweighs breaking
applications that have perfectly-legally used "step" as an identifier.

This isn't available in PL/SQL, is it? That doesn't mean we shouldn't do it, of course, but it might lessen any perceived imperative.

Maybe using BY instad of STEP as the keyword would make it easier, since its occurrence in SQL makes it less likely to be used as a variable.

cheers

andrew