The PRAGMA topic in the Radian manual needs revision. It has not been updated for new syntax introduced in Radian 9.0.145. Rather than the previous syntax (still in the manual): PRAGMA ('pragma1'='...', 'pragma2'='...') ( <one or more statements> ) we now have pragmas as individual statements, terminated by their own semicolon, and no parentheses to group following statement(s): PRAGMA ('pragma1'='...', 'pragma2'='...'); <statement>; <statement>; ... PRAGMA ('pragma1'='...', 'pragma3'='...'); <statement>; <statement>; ... Also, pragma values are now part of state for the current execution context (command window or query). So, for a pragma value with a given name, a later assignment overrides an earlier one (that's already partly explained), and each assignment remains effective unless/until it is overridden. But equally, the last assignment for a given pragma value persists between runs, just like previously compiled function (I would guess that pragmas pretty much are just functions). So if we set, say, PRAGMA ('gpgpu' = 'aggressive'); then compile and run, and now remove or comment out that PRAGMA line, before running the code again, the same 'aggressive' value will also apply for the second run, and subsequent runs. Its previous setting is still part of state for the current execution context. It will keep the same value until we change it. It would help to have a note about this.
|