Reference to a variable using the Label is not supported by Snowflake.
Severity
Medium
Description
This error is added when a FOR loop's body references a variable using the label. Snowflake does not support referencing a variable using the qualified name.
Code Example
Input Code:
IN -> PostgreSQL_01.sql
CREATE OR REPLACE PROCEDURE procedure1(out result VARCHAR(100))
LANGUAGE plpgsql
AS $$
BEGIN
result := '<';
<<outer_loop>>
for i in 1..3 loop
<<inner_loop>>
for i in 4..6 loop
result := result || '(' || outer_loop.i || ', ' || i || ')';
end loop inner_loop;
end loop outer_loop;
result := result || '>';
END;
$$;
Output Code:
OUT -> PostgreSQL_01.sql
CREATE OR REPLACE PROCEDURE procedure1 (result VARCHAR(100))
RETURNS VARIANT
LANGUAGE SQL
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "redshift", "convertedOn": "02/16/2025", "domain": "test" }}'
AS $$
BEGIN
result := '<';
for i in 1 TO 3 loop
for i in 4 TO 6 loop
result := result || '(' ||
!!!RESOLVE EWI!!! /*** SSC-EWI-PG0006 - REFERENCE TO A VARIABLE USING THE LABEL IS NOT SUPPORTED BY SNOWFLAKE. ***/!!! outer_loop.i || ', ' || i || ')';
end loop inner_loop;
end loop outer_loop;
result := result || '>';
RETURN OBJECT_CONSTRUCT('result', :result);
END;
$$;