테이블 함수(SQL UDTF 제외): 측면 테이블 함수 및 외부 측면 조인 사용 시의 제한 사항

주의

이 동작 변경 사항은 2023_04 번들에 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

현재 릴리스에서는 다음이 더 이상 허용되지 않습니다.

  • ON 절로 지정된 측면 테이블 함수(SQL UDTF 제외).

  • ON 절을 지정하는 테이블 함수(SQL UDTF 제외)에 대한 외부 측면 조인.

이 제한 사항은 ON 절(USING 절 및 NATURAL JOIN)에 해당하는 절을 사용하는 문에도 적용됩니다.

SQL UDTF 이외의 테이블 함수는 기본 제공 테이블 함수와 SQL 이외의 언어로 정의된 UDTF를 포함합니다.

이전:

다음을 지정할 수 있습니다.

  • 측면 테이블 함수(SQL UDTF 제외)의 ON 절(또는 USING 절 또는 NATURAL JOIN).

    예:

    SELECT ... FROM my_table
    JOIN TABLE(FLATTEN(input=>[col_a]))
    ON ... ;
    SELECT ... FROM my_table
    INNER JOIN TABLE(FLATTEN(input=>[col_a]))
    ON ... ;
    SELECT ... FROM my_table
    JOIN TABLE(my_js_udtf(col_a))
    ON ...;
    SELECT ... FROM my_table
    INNER JOIN TABLE(my_js_udtf(col_a))
    ON ... ;
    
    Copy
  • ON 절(또는 USING 절 또는 NATURAL JOIN)을 사용하여 테이블 함수(SQL UDTF 제외)에 대한 외부 측면 조인.

    예:

    SELECT ... FROM my_table
    LEFT JOIN TABLE(FLATTEN(input=>[col_a]))
    ON ... ;
    SELECT ... FROM my_table
    FULL JOIN TABLE(FLATTEN(input=>[col_a]))
    ON ... ;
    SELECT ... FROM my_table
    LEFT JOIN TABLE(my_js_udtf(col_a))
    ON ... ;
    SELECT ... FROM my_table
    FULL JOIN TABLE(my_js_udtf(col_a))
    ON ... ;
    
    Copy
현재:

위의 문을 실행하면 다음 메시지와 함께 오류가 발생합니다.

000002 (0A000): Unsupported feature 'lateral table function called with
    OUTER JOIN syntax or a join predicate (ON clause)'
Copy

쉼표를 사용하여 조인을 지정하면 이 제한 사항이 적용되지 않습니다.

SELECT ... FROM <table>,
    TABLE(<ptable_function_other_than_sql_udtf>) ... ;
Copy

예:

SELECT ... FROM my_table,
TABLE(FLATTEN(input=>[col_a]));
Copy

이 제한 사항은 ON 절(또는 USING 절 또는 NATURAL JOIN)이 지정되지 않은 경우에도 적용되지 않습니다.

SELECT ... FROM <table>
[{ [ INNER  | { LEFT | RIGHT | FULL } [ OUTER ] | CROSS } JOIN
TABLE(<table_function_other_than_sql_udtf>) ...;
Copy

예:

SELECT ... FROM my_table
FULL JOIN TABLE(FLATTEN(input=>[col_a]));
SELECT ... FROM my_table
LEFT JOIN OUTER TABLE(FLATTEN(input=>[col_a]));
Copy

이러한 유형의 쿼리로 인해 일관성 없는 동작이 발생할 수 있으므로 이 제한 사항을 추가했습니다. 이러한 유형의 쿼리는 지원되지 않습니다.

참조: 1057