Release 483

Release 483 (2026-07-17)

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

출처: 문서

본문

General

  • 행 값을 컬럼으로 바꾸는 PIVOT 절 지원을 추가했어요. (#29404)
  • 점(dotted)·첨자(subscripted) 표기법을 사용하는 JSON 단순화 접근자(simplified accessor) 구문으로 json 컬럼에서 값을 읽는 지원을 추가했어요. 예: SELECT j.customer.name FROM orders 또는 SELECT j.items[0].price.decimal(18,2) FROM orders. (#29565)
  • json 컬럼에 대한 SELECT j.*가 최상위 멤버를 단일 JSON 배열로 반환하는 지원을 추가했어요. (#29565)
  • 두 시간 기간이 어떤 순간이라도 공유하는지 테스트하는 OVERLAPS 조건자 지원을 추가했어요. Date and time functions and operators 참고. (#29652)
  • SQL/JSON 경로 표현식에서 datetime() 메서드 지원을 추가했어요. (#29603)
  • title_case() 함수를 추가했어요. (#2942)
  • 좌표 참조 시스템 간에 geometry 값을 변환하는 ST_Transform()ST_TransformXY() 함수를 추가했어요. (#29737)
  • 새 3·4-인자 ST_Point() 오버로드와 ST_Z(), ST_Force2D(), ST_Force3D() 함수로 3차원 점을 구성·검사하는 지원을 추가했어요. (#29737)
  • 확장 well-known text를 파싱하는 ST_GeomFromEWKT() 함수를 추가했어요. (#29737)
  • ST_PointOnSurface(), ST_MakePolygon(), ST_Multi(), ST_LineMerge(), ST_Normalize(), ST_ReducePrecision(), ST_VoronoiPolygons(), ST_MinimumBoundingCircle(), ST_OrientedEnvelope() 함수를 추가했어요. (#29737)
  • geometry 값을 결합하는 ST_Collect(), ST_MakeLine(), ST_Polygonize() 함수와 geometry_collect_agg() 집계 함수를 추가했어요. (#29737)
  • exchange.azure.max-connections, exchange.azure.pending-acquire-max-count, exchange.azure.connection-acquisition-timeout 구성 속성으로 Azure exchange 스풀링 저장소에 사용되는 HTTP 연결 풀을 조정하는 지원을 추가했어요. (#30083)
  • 직렬화, 형식 변환, 지원되는 지리 공간 연산에서 geometry SRID와 Z-좌표 메타데이터를 보존하도록 했어요. (#29737)
  • 캐스트 표현식을 리터럴 범위와 비교하는 BETWEEN 조건자가 있는 쿼리(예: CAST(ts AS date) BETWEEN DATE '2020-01-01' AND DATE '2020-01-02')의 성능을 개선했어요. (#14648)
  • IFCASE 표현식의 모든 분기가 공유하는 동등성을 포함하는 조인(예: IF(k IS NULL, a = b, a = b AND c = d))의 성능을 개선했어요. (#30288)
  • bigint, integer 또는 date 조인 키에 동적 필터링을 사용하는 쿼리의 워커 메모리 사용량을 줄였어요. (#30321)
  • 캐스트 표현식을 리터럴 범위와 비교하는 NOT BETWEEN 조건자의 잘못된 결과를 수정했어요. (#30073)
  • date로 캐스팅된 비결정적 표현식을 date 리터럴과 비교할 때(예: CAST(f() AS date) = DATE '2020-01-01')의 잠재적 잘못된 결과를 수정했어요. (#30286)
  • right 또는 full outer join을 포함하는 쿼리의 잘못된 결과와 MERGE 실패를 수정했어요. (#30278)
  • 필터에 입력 컬럼을 참조하는 64개를 넘는 필드를 가진 row 생성자가 포함될 때의 쿼리 실패를 수정했어요. (#30279)
  • 크기가 매우 가변적인 행을 포함하는 쿼리 결과를 스풀링할 때의 쿼리 실패를 수정했어요. (#30112)
  • 작은 데이터 페이지를 처리할 때 내결함성 실행 중 쿼리 실패를 수정했어요. (#23531)
  • cast 또는 date·time 함수를 리터럴과 비교할 때 최적화기 시간 제한으로 인한 쿼리 실패를 수정했어요. (#30347)
  • 카탈로그가 로드에 실패할 때 SHOW SESSION 및 유사한 메타데이터 쿼리의 실패를 수정했어요. (#30086)
  • 명시적 nominal entries와 seed 인자로 theta_sketch_union()을 호출할 때의 쿼리 실패를 수정했어요. (#29725)

Security

  • http-server.authentication.oauth2.domain-hint 구성 속성으로 OAuth 2.0 단일 로그인을 특정 도메인의 계정으로 제한하는 지원을 추가했어요. (#30272)

Web UI

  • 진행 상황으로 쿼리 목록을 정렬하는 지원을 추가했어요. (#30350)
  • ⚠️ Breaking change: 이전에 /ui/preview에서 서빙되던 재설계된 Web UI를 /ui에서 기본으로 만들고, 이전 Web UI를 /ui/legacy로 옮겼어요. 이전 Web UI는 기본적으로 비활성화되어 있으며 web-ui.legacy.enabledtrue로 설정해 복원할 수 있어요. (#22697)
  • preview UI에서 항목 텍스트를 클릭할 때 쿼리 상태 필터 체크박스가 토글되지 않던 문제를 수정했어요. (#30078)

JDBC driver

  • 쿼리 결과를 읽는 동안 오류가 발생할 때 JDBC 쿼리가 무기한 멈추는 것을 방지했어요. (#30007)

CLI

  • CLI에서 테마·컬러화된 출력을 지원하는 새 --theme 명령줄 옵션을 추가했어요. (#6190, #30265)

Delta Lake connector

  • s3.auth-type 구성 속성으로 S3 인증 타입을 구성하는 지원을 추가했어요. 공개 버킷 읽기에는 ANONYMOUS를 사용하세요. (#27512)
  • ⚠️ Breaking change: s3.iam-role이 설정되면 s3.auth-type=IAM_ROLE이 필요해요. (#27512)
  • ⚠️ Breaking change: s3.use-web-identity-token-credentials-provider 구성 속성을 제거했어요. 대신 s3.auth-type=WEB_IDENTITY를 사용하세요. (#27512)
  • Parquet 파일을 쓸 때 메모리 사용량을 줄였어요. (#30372)
  • 실패한 쓰기 후 고아(orphaned) 삭제 벡터 파일을 방지했어요. (#30342)
  • Trino가 쓴 삭제 벡터가 다른 Delta Lake 리더에게 거부되지 않도록 방지했어요. (#30355)

Druid connector

  • druid.execution-timeout 구성 속성으로 설정한 구성 가능한 시간 제한을 초과하는 Druid 쿼리를 취소하는 지원을 추가했어요. (#27150)
  • 더 많은 표현식을 Druid로 푸시다운해 복잡한 필터가 있는 쿼리의 성능을 개선했어요. (#4109)

Hive connector

  • s3.auth-type 구성 속성으로 S3 인증 타입을 구성하는 지원을 추가했어요. 공개 버킷 읽기에는 ANONYMOUS를 사용하세요. (#27512)
  • ⚠️ Breaking change: s3.iam-role이 설정되면 s3.auth-type=IAM_ROLE이 필요해요. (#27512)
  • ⚠️ Breaking change: s3.use-web-identity-token-credentials-provider 구성 속성을 제거했어요. 대신 s3.auth-type=WEB_IDENTITY를 사용하세요. (#27512)
  • TEXTFILE과 CSV 데이터 읽기 성능을 개선했어요. (#30291)
  • Parquet 파일을 쓸 때 메모리 사용량을 줄였어요. (#30372)
  • ORC 파일에서 char 컬럼에 대한 필터가 있는 쿼리의 잘못된 결과를 수정했어요. (#30187)

Hudi connector

  • hudi.max-split-size 구성 속성으로 Hudi 테이블을 읽을 때 스플릿 최대 크기를 제한하는 지원을 추가했어요. (#29842)
  • s3.auth-type 구성 속성으로 S3 인증 타입을 구성하는 지원을 추가했어요. 공개 버킷 읽기에는 ANONYMOUS를 사용하세요. (#27512)
  • ⚠️ Breaking change: s3.iam-role이 설정되면 s3.auth-type=IAM_ROLE이 필요해요. (#27512)
  • ⚠️ Breaking change: s3.use-web-identity-token-credentials-provider 구성 속성을 제거했어요. 대신 s3.auth-type=WEB_IDENTITY를 사용하세요. (#27512)
  • Hudi 테이블 읽기 성능을 개선했어요. (#29842)

Iceberg connector

  • 암호화된 Parquet 파일이 있는 Iceberg 테이블 읽기 지원을 추가했어요. (#28204)
  • 구체화 뷰에 대해 $files, $snapshots, $partitions 같은 메타데이터 테이블 쿼리 지원을 추가했어요. (#30218)
  • s3.auth-type 구성 속성으로 S3 인증 타입을 구성하는 지원을 추가했어요. 공개 버킷 읽기에는 ANONYMOUS를 사용하세요. (#27512)
  • iceberg.rest-catalog.securityGOOGLE로 설정될 때 gcs.json-key-file-path 구성 속성을 선택적으로 만들어 Iceberg REST 카탈로그에서 Application Default Credentials를 사용할 수 있게 했어요. (#29084)
  • ⚠️ Breaking change: s3.iam-role이 설정되면 s3.auth-type=IAM_ROLE이 필요해요. (#27512)
  • ⚠️ Breaking change: s3.use-web-identity-token-credentials-provider 구성 속성을 제거했어요. 대신 s3.auth-type=WEB_IDENTITY를 사용하세요. (#27512)
  • Iceberg 테이블에서 위치 삭제 파일을 쓸 때 메모리 사용량을 줄였어요. (#30081)
  • Parquet 파일을 쓸 때 메모리 사용량을 줄였어요. (#30372)
  • ORC 파일에서 char 컬럼에 대한 필터가 있는 쿼리의 잘못된 결과를 수정했어요. (#30187)
  • NOT NULL 컬럼에 NULL 값이 있으면 OPTIMIZE를 실패시켜 테이블 손상을 방지했어요. (#30062)
  • 테이블이 생성된 후 Hive metastore 카탈로그에 대한 CREATE TABLE 커밋이 실패할 때 테이블 메타데이터가 손실될 수 있는 문제를 수정했어요. (#29973)
  • Iceberg JDBC 카탈로그를 사용할 때 무관한 스키마의 뷰를 잘못 나열하던 문제를 수정했어요. (#29738)
  • Iceberg REST 카탈로그처럼 테이블 위치를 생성하는 카탈로그를 사용할 때의 CREATE TABLE 실패를 수정했어요. (#26742)
  • Glue 카탈로그가 거부하는 문자(새 줄 등)를 포함하는 컬럼 주석을 설정할 때의 실패를 수정했어요. (#30353)
  • SigV4 요청 서명으로 Iceberg REST 카탈로그를 사용할 때의 쿼리 실패를 수정했어요. (#30163)

Ignite connector

  • ⚠️ Breaking change: Ignite 커넥터를 사용할 때 추가 JVM 구성 옵션 --add-opens=java.base/java.util=ALL-UNNAMED가 필요해요. (#30255)

Lakehouse connector

  • 암호화된 Parquet 파일이 있는 Iceberg 테이블 읽기 지원을 추가했어요. (#28204)
  • s3.auth-type 구성 속성으로 S3 인증 타입을 구성하는 지원을 추가했어요. 공개 버킷 읽기에는 ANONYMOUS를 사용하세요. (#27512)
  • ⚠️ Breaking change: s3.iam-role이 설정되면 s3.auth-type=IAM_ROLE이 필요해요. (#27512)
  • ⚠️ Breaking change: s3.use-web-identity-token-credentials-provider 구성 속성을 제거했어요. 대신 s3.auth-type=WEB_IDENTITY를 사용하세요. (#27512)
  • Parquet 파일을 쓸 때 메모리 사용량을 줄였어요. (#30372)
  • ORC 파일에서 char 컬럼에 대한 필터가 있는 쿼리의 잘못된 결과를 수정했어요. (#30187)

SQL Server connector

  • LIMIT로 숨겨진 컬럼이 있는 테이블을 읽을 때의 쿼리 실패를 수정했어요. (#30084)

SPI

  • 모든 블록 타입에서 원시 배열·오프셋 접근자를 일관되게 노출하도록 했어요. (#30128)
  • ⚠️ Breaking change: 블록 null 표현을 boolean null 배열 대신 비트 패킹 유효성 비트맵으로 변경했어요. 블록을 빌더 API 대신 직접 구성하는 플러그인은 업데이트해야 해요. (#30185)

더 알아보기 (Learn more)

이전 버전의 변경 사항은 Release 482에서, 더 이전 버전은 Release 481에서 확인해 보세요.