No ROW Flag - Caveat

In addition, since the typical use of loop statements is to process one return value/row at a time and not accumulate values, all looping statements in (syntax) version 8 are non-accumulating (as if ROW were given in version 7), and the non-looping (self-closed) versions accumulate values. Thus the ROW flag is redundant in (syntax) version 8 - and is no longer permitted.

This helps prevent inadvertent memory wastage (by forgetting the ROW flag in loops), as well as prevents problems due to inadvertently attempting to modify $ret etc. in a loop context (type and number of values cannot be changed). When return values must be processed more than once - a situation sometimes handled in (syntax) version 7 with a non-ROW looping statement followed by an explicit <LOOP> - instead in (syntax) version 8 and later, a non-looping statement must be used, followed by two <LOOP>s.

See the syntaxversion pragma (here) for more details, as well as the --translate-from-version option (here) for aid in modifying existing scripts.


Copyright © Thunderstone Software     Last updated: Jul 17 2021
Copyright © 2021 Thunderstone Software LLC. All rights reserved.