Release 480

Release 480 (2026-03-24)

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

출처: 문서

본문

General

  • number 타입을 추가했어요. (#28319)
  • /metrics 엔드포인트에 코디네이터와 워커 개수를 추가했어요. (#27408)
  • task.scale-writers.max-writer-memory-percentage 구성 속성으로 테이블을 쓰는 동안 사용할 최대 메모리 양을 구성할 수 있게 했어요. (#27874)
  • 조건자와 일치하는 첫 번째 요소를 찾는 array_first() 변형을 추가했어요. (#27706)
  • DataSketches 함수를 추가했어요. (#27563)
  • ⚠️ Breaking change: enable-large-dynamic-filters 구성 속성과 해당 시스템 세션 속성 enable_large_dynamic_filters를 제거했어요. (#27637)
  • ⚠️ Breaking change: dynamic-filtering.small*dynamic-filtering.large-broadcast* 구성 속성을 제거했어요. (#27637)
  • ⚠️ Breaking change: deprecated.http-server.authentication.oauth2.groups-field 구성 속성을 제거했어요. (#28646)
  • 최신 CPU 아키텍처와 Graviton 4 CPU에서 원격 데이터 교환 성능을 개선했어요. (#27586)
  • 원격 데이터 교환 또는 집계가 있는 쿼리의 성능을 개선했어요. (#27657)
  • spilling이 활성화되었을 때 윈도우 함수가 포함된 쿼리의 out-of-memory 오류를 줄였어요. (#27873)
  • exchange manager가 구성되었지만 쿼리가 작업 수준 재시도를 사용하지 않을 때 쿼리 성능을 개선했어요. (#28698)
  • 테이블 [VERSION | TIMESTAMP] AS OF 절 안에서 쿼리 파라미터를 허용했어요. (#28681)
  • 정밀도 3의 localtimestamp()를 사용할 때의 잘못된 결과를 수정했어요. (#27806)
  • 정밀도 7과 8에서의 localtimestamp() 실패를 수정했어요. (#27807)
  • 카탈로그 삭제 작업 중 시스템 카탈로그를 쿼리할 때 발생하는 가짜 쿼리 실패를 수정했어요. (#28017)
  • Integer.MAX_VALUE보다 큰 값으로 date_add() 함수를 실행할 때의 실패를 수정했어요. (#27899)
  • json, time, boolean 또는 interval 값을 varchar(n)으로 캐스팅한 결과가 대상 타입에 맞지 않을 때의 잘못된 결과를 수정했어요. (#552)
  • Azure exchange manager를 사용할 때의 쿼리 실패와 증가된 지연을 수정했어요. (#28058)

Web UI

  • preview UI의 헤더에 클러스터 상태 정보를 추가했어요. (#27712)
  • 쿼리 상세 페이지의 스테이지를 알파벳 순이 아닌 숫자 순으로 정렬했어요. (#27655)

JDBC driver

  • ResultSetMetaData.getColumnClassName 호출 시 map, row, time with time zone, timestamp with time zone, varbinary, null 값에 대해 올바른 클래스 이름을 반환하도록 수정했어요. (#28314)

ClickHouse connector

  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Delta Lake connector

  • ⚠️ Breaking change: live files 테이블 메타데이터 캐시를 제거했어요. metadata.live-files.cache-size, metadata.live-files.cache-ttl, checkpoint-filtering.enabled 구성 속성이 이제 무효이므로 서버 구성에서 제거해야 해요. (#27618)
  • ⚠️ Breaking change: hive.write-validation-threads 구성 속성을 제거했어요. (#27729)
  • ⚠️ Breaking change: parquet.optimized-writer.validation-percentage 구성 속성을 제거하고, 대신 parquet.writer.validation-percentage를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.block-size 구성 속성을 제거하고, 대신 parquet.writer.block-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.page-size 구성 속성을 제거하고, 대신 parquet.writer.page-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: gcs.use-access-token 구성 속성을 제거했어요. (#26941)
  • ⚠️ Breaking change: hive.fs.new-file-inherit-ownership 구성 속성을 제거했어요. (#28029)
  • Parquet 파일에서 고카디널리티(high-cardinality) 컬럼에 대한 Bloom 필터의 효과를 개선했어요. (#27656)
  • S3의 Delta Lake 테이블에 쓸 때 PutObjectTagging AWS S3 권한 요구 사항을 제거했어요. (#27701)
  • 테이블 정의 변경과 함께 CREATE OR REPLACE를 실행할 때의 잠재적 테이블 손상을 수정했어요. (#27805)
  • Azure 파일 시스템을 사용할 때의 쿼리 실패와 증가된 지연을 수정했어요. (#28058)
  • GCS에서 파일 경로에 #이 포함될 때의 실패를 수정했어요. (#28292)
  • stats가 지원되지 않는 컬럼으로 parquet 컬럼 인덱스를 로드할 때의 NPE를 수정했어요. (#28560)

DuckDB connector

  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Hive connector

  • Parquet 파일의 나노초 정밀 타임스탬프를 timestamp(p) with time zone 컬럼으로 읽는 지원을 추가했어요. (#27861)
  • ⚠️ Breaking change: hive.write-validation-threads 구성 속성을 제거했어요. (#27729)
  • ⚠️ Breaking change: parquet.optimized-writer.validation-percentage 구성 속성을 제거하고, 대신 parquet.writer.validation-percentage를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.block-size 구성 속성을 제거하고, 대신 parquet.writer.block-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.page-size 구성 속성을 제거하고, 대신 parquet.writer.page-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: 더 이상 사용되지 않는 gcs.use-access-token 구성 속성을 제거했어요. (#26941)
  • ⚠️ Breaking change: hive.fs.new-file-inherit-ownership 구성 속성을 제거했어요. (#28029)
  • Parquet 파일에서 고카디널리티 컬럼에 대한 Bloom 필터의 효과를 개선했어요. (#27656)
  • Azure 파일 시스템을 사용할 때의 쿼리 실패와 증가된 지연을 수정했어요. (#28058)
  • 버킷화·정렬된 테이블을 대상으로 하는 INSERT 쿼리의 잘못된 메모리 회계를 수정했어요. (#28315)
  • Hive metastore 버전 4를 사용할 때 타임스탬프 컬럼이 있는 테이블에 대한 INSERTANALYZE 실패를 수정했어요. (#26214, #28330)

Hudi connector

  • ⚠️ Breaking change: hive.write-validation-threads 구성 속성을 제거했어요. (#27729)
  • ⚠️ Breaking change: parquet.optimized-writer.validation-percentage 구성 속성을 제거하고, 대신 parquet.writer.validation-percentage를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.block-size 구성 속성을 제거하고, 대신 parquet.writer.block-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.page-size 구성 속성을 제거하고, 대신 parquet.writer.page-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: 더 이상 사용되지 않는 gcs.use-access-token 구성 속성을 제거했어요. (#26941)
  • ⚠️ Breaking change: hive.fs.new-file-inherit-ownership 구성 속성을 제거했어요. (#28029)
  • Azure 파일 시스템을 사용할 때의 쿼리 실패와 증가된 지연을 수정했어요. (#28058)
  • GCS에서 파일 경로에 #이 포함될 때의 실패를 수정했어요. (#28292)

Iceberg connector

  • Iceberg REST 카탈로그에서 BigLake metastore 지원을 추가했어요. (#26219)
  • delete_after_commit_enabledmax_previous_versions 테이블 속성을 추가했어요. (#14128)
  • Iceberg v3 테이블에서 컬럼 기본값 지원을 추가했어요. (#27837)
  • Iceberg v3 테이블 생성·쓰기·삭제 지원을 추가했어요. (#27786, #27788)
  • optimize, expire_snapshots, remove_orphan_files 테이블 프로시저에서 Iceberg v3 테이블 지원을 추가했어요. (#27836)
  • Iceberg v3 행 라인리지(row lineage) 지원을 추가했어요. (#27836)
  • $manifests$all_manifests 메타데이터 테이블에 content 컬럼을 추가했어요. (#27975)
  • ALTER ... SET DATA TYPE로 map과 array 중첩 타입을 변경하는 지원을 추가했어요. (#27998)
  • number 타입 컬럼으로 구체화 뷰를 만드는 지원을 추가했어요. (#28399)
  • 구체화 뷰를 새로고침할 때 사용하지 않는 파일을 정리하도록 했어요. (#28008)
  • ⚠️ Breaking change: hive.write-validation-threads 구성 속성을 제거했어요. (#27729)
  • ⚠️ Breaking change: parquet.optimized-writer.validation-percentage 구성 속성을 제거하고, 대신 parquet.writer.validation-percentage를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.block-size 구성 속성을 제거하고, 대신 parquet.writer.block-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: hive.parquet.writer.page-size 구성 속성을 제거하고, 대신 parquet.writer.page-size를 사용하세요. (#27729)
  • ⚠️ Breaking change: 더 이상 사용되지 않는 gcs.use-access-token 구성 속성을 제거했어요. (#26941)
  • ⚠️ Breaking change: hive.fs.new-file-inherit-ownership 구성 속성을 제거했어요. (#28029)
  • ⚠️ Breaking change: iceberg.extended-statistics.enabled 구성 옵션과 extended_statistics_enabled 세션 속성 지원을 제거했어요. (#27914)
  • Parquet 파일에서 고카디널리티 컬럼에 대한 Bloom 필터의 효과를 개선했어요. (#27656)
  • 최근(refresh) 구체화 뷰를 쿼리할 때 쿼리 성능을 개선했어요. (#27608)
  • 파티션 필터가 사용될 때 optimize가 파티션 범위 동등성 삭제(equality delete) 파일을 정리하도록 개선했어요. (#28371)
  • 파티션 필터를 적용하는 쿼리의 읽기 성능을 높이도록 optimize_manifests가 매니페스트를 파티션별로 클러스터링하도록 개선했어요. (#27358)
  • 삭제 파일이 있는 테이블에 대한 쿼리 계획 시간을 줄였어요. (#27955)
  • 단순한 FROM과 WHERE 절이 포함된 쿼리의 계획 시간을 줄였어요. (#27973)
  • 큰 테이블에 대한 쿼리 계획 시간을 줄였어요. (#28068)
  • REST 카탈로그가 제공하는 임시 GCS 자격 증명 지원을 추가했어요. (#24518)
  • bucket 또는 truncate를 포함하는 스키마가 변경될 때 $files 메타데이터 테이블을 읽을 때의 실패를 수정했어요. (#26109)
  • 동등성 삭제가 있는 테이블에서 $file_modified_time 메타데이터 컬럼을 읽을 때의 실패를 수정했어요. (#27850)
  • 특정 드문 문자열 입력에서 Parquet 파일의 큰 푸터(footer)를 피하도록 했어요. (#27903)
  • 메타데이터 컬럼에 조인이 있는 쿼리의 실패를 수정했어요. (#27984)
  • Azure 파일 시스템을 사용할 때의 쿼리 실패와 증가된 지연을 수정했어요. (#28058)
  • 버킷화·정렬된 테이블을 대상으로 하는 INSERT 쿼리의 잘못된 메모리 회계를 수정했어요. (#28315)
  • ALTER TABLE ... SET PROPERTIES로 파티션 스펙을 설정할 때 기존 파티션 컬럼을 실수로 제거하던 문제를 수정했어요. (#26492)
  • write.parquet.compression-codec 속성이 LZ4로 설정된 테이블에서 읽을 때의 실패를 수정했어요. (#28291)
  • Trino가 쓴 compression-codec 테이블 속성 값이 Iceberg 스펙에 부합하도록 수정했어요. (#28293)
  • GCS에서 파일 경로에 #이 포함될 때의 실패를 수정했어요. (#28292)
  • iceberg.jdbc-catalog.schema-version=V0인 테이블을 읽을 때의 실패를 수정했어요. (#28419)
  • 동등성 삭제가 많은 테이블에서 읽을 때 워커 크래시를 방지했어요. (#28468)
  • 다른 파티셔닝 스키마로 CREATE OR REPLACE TABLE$files 테이블을 쿼리할 때의 실패를 수정했어요. (#25339)

Ignite connector

  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Lakehouse connector

  • Equality Delete 파일을 사용할 때 성능과 메모리 사용량을 개선했어요. (#28507)
  • Iceberg $files 테이블을 읽을 때의 실패를 수정했어요. (#26751)

MariaDB connector

  • p > 38일 때 MariaDB DECIMAL(p, s) 컬럼을 읽는 지원을 추가했어요. (#28744)
  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

MySQL connector

  • p > 38일 때 MySQL DECIMAL(p, s) 컬럼을 읽는 지원을 추가했어요. (#28744)
  • ⚠️ Breaking change: n > 1일 때 MySQL BIT(n) 컬럼을 읽는 잘못된 지원을 제거했어요. (#28744)
  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Oracle connector

  • oracle.connection-pool.wait-timeout 카탈로그 속성으로 연결 대기 시간 제한을 구성하는 지원을 추가했어요. (#27744)
  • 모든 Oracle NUMBER 컬럼을 읽는 지원을 추가했어요. (#28747, #28401)
  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)
  • query 테이블 함수에서 float 타입을 읽을 때의 실패를 수정했어요. (#27880)

PostgreSQL connector

  • 모든 PostgreSQL NUMERICDECIMAL 컬럼을 읽는 지원을 추가했어요. (#28141)
  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Redshift connector

  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

SingleStore connector

  • n > 1일 때 SingleStore BIT(n) 컬럼을 읽는 잘못된 지원을 제거했어요. (#28744)
  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Snowflake connector

  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

SQL Server connector

  • 같은 테이블에 대한 이전 CREATE TABLE ... AS SELECT 연산이 실패했을 때 테이블을 생성할 때의 실패를 수정했어요. (#27702)

Vertica connector

  • ⚠️ Breaking change: Vertica 커넥터를 제거했어요. (#26904)

SPI

  • TypeSignatureParameter 지원을 제거하고 TypeParameter를 사용하세요. (#27574)
  • ParameterKind 지원을 제거하고 TypeParameter.Type, TypeParameter.Numeric, TypeParameter.Variable을 사용하세요. (#27574)
  • NamedType, NamedTypeSignature, NamedTypeParameter 지원을 제거하고 TypeParameter.Type을 사용하세요. (#27574)
  • MaterializedViewFreshness#getLastFreshTime을 더 이상 사용하지 않고, 대신 getLastKnownFreshTime을 사용하세요. (#27803)
  • ColumnMetadata.commentColumnMetadata.extraInfoOptional<String>으로 변경했어요. (#28151)

더 알아보기 (Learn more)

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