Release 479

Release 479 (2025-12-14)

Trino 479 릴리스의 변경 사항을 정리한 릴리스 노트예요. 전반적인 개선, Web UI, JDBC 드라이버, Docker, CLI, 여러 커넥터와 SPI의 변화를 다뤄요.

출처: 문서

본문

General

  • 노드 discovery 타입이 ANNOUNCE로 설정되었을 때 내부 클러스터 통신용 TLS 인증서를 자동으로 생성하도록 개선했어요. (#27030)
  • Exchange Manager 구성 파일의 위치를 지정하는 지원을 추가했어요. (#26611)
  • FINISHING 상태의 쿼리가 보낸 시간을 이벤트 리스너에 게시하도록 했어요. (#27202)
  • SELECT 쿼리의 출력 컬럼에 대한 라인리지(lineage) 지원을 추가했어요. (#26241)
  • ALTER TABLE ... ALTER COLUMN 문장으로 컬럼 기본값을 설정·삭제하는 지원을 추가했어요. (#26162)
  • array_first()array_last() 함수를 추가했어요. (#27295)
  • SHOW CREATE MATERIALIZED VIEW 출력에 GRACE PERIOD를 추가했어요. (#27529)
  • row 리터럴에서 필드 이름 선언을 허용했어요. 예를 들어 row(1 as a, 2 as b)가 이제 유효해요. (#25261)
  • 리소스 그룹 선택기에서 queryText를 정규식으로 추가했어요. (#27129)
  • ⚠️ Breaking change: Trino를 빌드하고 실행하려면 JDK 25가 필요해요. (#27171)
  • ⚠️ Breaking change: task.statistics-cpu-timer-enabled 구성 속성이 이제 무효(defunct)이므로 제거해야 해요. (#27504)
  • EXPLAIN 타입 LOGICALDISTRIBUTED를 더 이상 사용하지 않도록 하고, 대신 타입 절 없이 EXPLAIN을 사용하도록 권장해요. (#27434)
  • prefer_streaming_operators 세션 속성을 제거했어요. (#27506)
  • Graviton 3, Skylake, Icelake 또는 Zen 4+ 같은 최신 CPU 아키텍처에서 원격 데이터 교환에 대한 실험적 성능 개선을 추가했어요. exchange.experimental.vectorized-serde.enabled=false로 비활성화할 수 있어요. (#27426, #26919)
  • array_sort() 함수의 성능을 개선했어요. (#27272)
  • repeat() 함수의 성능을 개선했어요. (#27369)
  • 가변 폭(variable width) 데이터를 포함하는 데이터 교환의 성능을 개선했어요. (#27377)
  • 최근(refresh) 구체화 뷰를 참조하는 쿼리의 성능을 개선했어요. (#27551)
  • 쿼리 계획 중 UNION의 한 분기가 0행을 생성하는 것으로 알려졌을 때의 쿼리 실패를 수정했어요. (#21506)
  • spooling 프로토콜에 대한 파티셔닝된 레이아웃 구성 문제를 수정했어요. (#27247)
  • WHERE 절에 varchar로 캐스팅할 수 없는 타입이 포함될 때 EXPLAIN (TYPE IO) 실패를 수정했어요. (#27433)

Web UI

  • preview UI 쿼리 상세 페이지에서 긴 단일 라인 쿼리 문자열을 올바르게 렌더링하도록 했어요. (#27328)
  • preview UI에서 카탈로그 속성을 올바르게 렌더링하도록 했어요. (#27327)

JDBC driver

  • 임의의 HTTP 헤더를 보낼 수 있는 extraHeaders 옵션을 추가했어요. (#15826)

Docker image

  • JDK를 25.0.1로 업데이트했어요. (#27117)

CLI

  • 임의의 HTTP 헤더를 보낼 수 있는 --extra-header 옵션을 추가했어요. (#15826)
  • 한정되지 않은(단일 레이블, "." 없는) 호스트 이름을 사용할 때의 TLS 연결 실패를 수정했어요. (#27478)

BigQuery connector

  • query() 테이블 함수 결과를 재사용할 때 발생하는 쿼리 실패를 수정했어요. (#27573)

ClickHouse connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

Delta Lake connector

  • GCS용 APPLICATION_DEFAULT 인증 타입을 추가했어요. (#26984)
  • ⚠️ Breaking change: GCS 인증 타입이 SERVICE_ACCOUNT로 설정되었을 때 인증되지 않은 접근 지원을 제거했어요. (#26984)
  • s3.exclusive-create 구성을 delta.s3.transaction-log-conditional-writes.enabled로 이름을 바꿨어요. (#27372)
  • ⚠️ Breaking change: delta.s3.transaction-log-conditional-writes.enabledfalse로 설정되지 않으면 S3 버킷의 테이블에 쓸 때 AWS S3 PutObjectTagging 권한이 필요해요. 이 요구 사항은 향후 릴리스에서 제거돼요. (#27388)
  • IS NOT DISTINCT FROM이 포함된 쿼리의 잘못된 결과를 수정했어요. (#27213)
  • Databricks 17.3이 만든 테이블에 쓸 때의 실패를 수정했어요. (#27100)
  • Azure 계층적 네임스페이스를 확인할 때의 실패를 수정했어요. (#27278)
  • parquet 파일에서 값이 매우 큰 컬럼을 읽으려는 쿼리를 실패시켜 워커 크래시를 방지했어요. (#27148)
  • S3에 쓰는 동안 네트워크 실패가 발생할 때 잠재적인 FileAlreadyExistsException 실패를 수정했어요. (#27330, #27388)
  • 복제(cloned) 테이블을 읽을 때의 잠재적 실패를 수정했어요. (#27098)

Druid connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

DuckDB connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

Exasol connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

Hive connector

  • GCS용 APPLICATION_DEFAULT 인증 타입을 추가했어요. (#26984)
  • ⚠️ Breaking change: GCS 인증 타입이 SERVICE_ACCOUNT로 설정되었을 때 인증되지 않은 접근 지원을 제거했어요. (#26984)
  • s3.exclusive-create 구성을 delta.s3.transaction-log-conditional-writes.enabled로 이름을 바꿨어요. (#27372)
  • OVERWRITE 동작을 가진 INSERT 쿼리가 쓴 테이블 통계의 정확도를 개선했어요. (#26517)
  • Azure 계층적 네임스페이스를 확인할 때의 실패를 수정했어요. (#27278)
  • parquet 파일에서 값이 매우 큰 컬럼을 읽으려는 쿼리를 실패시켜 워커 크래시를 방지했어요. (#27148)
  • S3에 쓰는 동안 네트워크 실패가 발생할 때 잠재적인 FileAlreadyExistsException 실패를 수정했어요. (#27330)
  • AWS Glue에서 잘못된 테이블 메타데이터로 테이블을 나열할 때의 실패를 수정했어요. (#27525)

Hudi connector

  • GCS용 APPLICATION_DEFAULT 인증 타입을 추가했어요. (#26984)
  • ⚠️ Breaking change: GCS 인증 타입이 SERVICE_ACCOUNT로 설정되었을 때 인증되지 않은 접근 지원을 제거했어요. (#26984)
  • Azure 계층적 네임스페이스를 확인할 때의 실패를 수정했어요. (#27278)
  • parquet 파일에서 값이 매우 큰 컬럼을 읽으려는 쿼리를 실패시켜 워커 크래시를 방지했어요. (#27148)
  • S3에 쓰는 동안 네트워크 실패가 발생할 때 잠재적인 FileAlreadyExistsException 실패를 수정했어요. (#27330)
  • 빈 디렉토리를 포함하는 HDFS를 쿼리할 때의 실패를 수정했어요. (#26897)

Iceberg connector

  • iceberg.rest-catalog.oauth2.token-exchange-enabled 구성 속성으로 token-exchange-enabled를 업데이트하는 지원을 추가했어요. (#27174)
  • expire_snapshots 명령에 retain_lastclean_expired_metadata 옵션을 추가했어요. (#27357)
  • GCS용 APPLICATION_DEFAULT 인증 타입을 추가했어요. (#26984)
  • ⚠️ Breaking change: GCS 인증 타입이 SERVICE_ACCOUNT로 설정되었을 때 인증되지 않은 접근 지원을 제거했어요. (#26984)
  • 테이블에 깊이 중첩된 필드가 있을 때 메모리 압박을 줄였어요. (#25077)
  • 테이블 파티셔닝 변경 후 $files 테이블을 쿼리할 때의 실패를 수정했어요. (#26746)
  • IS NOT DISTINCT FROM이 포함된 쿼리의 잘못된 결과를 수정했어요. (#27213)
  • Azure 계층적 네임스페이스를 확인할 때의 실패를 수정했어요. (#27278)
  • parquet 파일에서 값이 매우 큰 컬럼을 읽으려는 쿼리를 실패시켜 워커 크래시를 방지했어요. (#27148)
  • S3에 쓰는 동안 네트워크 실패가 발생할 때 잠재적인 FileAlreadyExistsException 실패를 수정했어요. (#27330)
  • CASCADE 옵션으로 스키마를 삭제할 때의 잠재적 실패를 수정했어요. (#27361)
  • 유예 기간(grace period) 내에 구체화 뷰를 쿼리할 때 존재하지 않거나 손상된 기본 Iceberg 테이블을 무시하도록 했어요. (#27606)

Ignite connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

Loki connector

  • 커넥터 초기화 시 실패를 수정했어요. (#27180)

MariaDB connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

Memory connector

  • ALTER TABLE ... ALTER COLUMN로 컬럼 기본값을 설정·삭제하는 지원을 추가했어요. (#26162)
  • 스키마에 테이블이 둘 이상 있을 때 RENAME SCHEMA 실패를 수정했어요. (#27205)

MySQL connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)
  • IS NOT DISTINCT FROM이 포함된 쿼리의 잘못된 결과를 수정했어요. (#27213)

Oracle connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

PostgreSQL connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)
  • IS NOT DISTINCT FROM이 포함된 쿼리의 잘못된 결과를 수정했어요. (#27213)

Redshift connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)
  • Redshift character varying 타입을 읽을 때의 실패를 수정했어요. (#27224)

SingleStore connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

Snowflake connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

SQL Server connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)
  • 테이블과 컬럼을 나열할 때의 잠재적 실패를 수정했어요. (#10846)

Vertica connector

  • ⚠️ Breaking change: join-pushdown.with-expressions 구성 속성을 deprecated.join-pushdown.with-expressions로 교체했어요. 새 속성은 향후 버전에서 제거될 예정이에요. (#27498)

SPI

  • RowBlockBuilder에 콜백 기반이 아닌 entry builder를 추가했어요. (#27198)
  • ArrayBlockBuilder에 콜백 기반이 아닌 entry builder를 추가했어요. (#27198)
  • ColumnMetadata.builderFrom이 컬럼 기본값을 유지하도록 수정했어요. (#27503)

더 알아보기 (Learn more)

다음 버전의 변경 사항은 Release 480에서 확인해 보세요.