릴리스 357

릴리스 357 (2021년 5월 21일)

이번 릴리스에서는 다중 컬럼을 반환하는 서브쿼리 표현식과 CURRENT_CATALOG·CURRENT_SCHEMA 지원이 추가됐어요. 보안·웹 UI·JDBC 드라이버 등 곳곳이 개선됐어요.

출처: Trino 릴리스 357 문서

본문

일반 (General)

  • 여러 컬럼을 반환하는 서브쿼리 표현식을 지원해요. 예: SELECT x = (VALUES (1, 'a')) (#7773, #7863)
  • GROUP BY와 함께 COUNT(1)을 쓸 때 집계 프러시다운을 허용해요. (#7251)
  • CURRENT_CATALOGCURRENT_SCHEMA를 지원해요. (#7824)
  • format_number() 함수를 추가했어요. (#1878)
  • row에서 json으로의 캐스트가 JSON 배열 대신 JSON 객체를 만들도록 바꿨어요. 이 동작은 deprecated.legacy-row-to-json-cast 구성 옵션으로 되돌릴 수 있어요. (#3536)
  • EXPLAIN ANALYZE에서 동적 필터 요약을 출력해요. (#7874)
  • 상수 목록이 짧은 IN 조건을 쓰는 쿼리의 성능을 개선했어요. (#7840)
  • 윈도우 함수가 포함된 쿼리가 실패하면 메모리를 즉시 해제하도록 했어요. (#7947)
  • IN 조건, 계량화 비교, 스칼라 서브쿼리의 row 표현식 처리 문제를 고쳤어요. 이전에는 타입 불일치 오류로 실패해야 할 쿼리가 성공하곤 했어요. (#7797)
  • 따옴표로 감싼 SQL 키워드가 포함된 GRANT 문과 함께 PREPARE를 쓸 때 발생하던 실패를 고쳤어요. (#7941)
  • 특정 대형 EXPLAIN 쿼리 실행 후 클러스터 불안정이 생기던 문제를 고쳤어요. (#8017)

보안 (Security)

  • 뷰가 최신 상태일 때 구체화된 뷰 생성자 보안 정책을 적용해요. (#7618)
  • OAuth2와 JWT 인증에 시스템 truststore를 사용하도록 했어요. 이전에는 내부 통신용으로 구성된 truststore를 쓰고 있었어요. 이제 전역적으로 신뢰되는 인증서가 기본으로 작동해요. (#7936)
  • 여러 TLS 인증서에 대한 SNI 처리를 고쳤어요. (#8007)

웹 UI (Web UI)

  • web-ui.authentication.typeoauth2로 설정된 경우 principal 필드(http-server.authentication.oauth2.principal-field로 구성)를 UI가 인지하도록 했어요. (#7526)

JDBC 드라이버

  • JDBC 문이 닫히면 Trino 쿼리 실행을 취소하도록 했어요. (#7819)
  • 연결이 닫히면 문도 닫도록 했어요. (#7819)

CLI

  • 화면을 지우는 clear 명령을 추가했어요. (#7632)

BigQuery 커넥터

  • case-insensitive-name-matching이 비활성화됐을 때 information_schema.columns에 접근하는 쿼리의 실패를 고쳤어요. (#7830)
  • BigQuery string 컬럼의 조건 값에 작은따옴표(')가 포함된 경우 쿼리가 실패하던 문제를 고쳤어요. (#7784)

ClickHouse 커넥터

  • 집계를 ClickHouse 안에서 계산해 집계 쿼리 성능을 개선했어요. 현재 프러시다운 대상 집계 함수는 count, min, max, sum, avg예요. (#7434)
  • ClickHouse UUID 컬럼을 Trino에서 VARCHAR 대신 UUID 타입으로 매핑했어요. (#7097)

Elasticsearch 커넥터

  • 에포크 이후 밀리초 값이 담긴 문자열로 인코딩된 timestamp 컬럼 디코딩을 지원해요. (#7838)
  • Elasticsearch가 과부하 상태일 때 백오프하며 요청을 재시도하도록 했어요. (#7423)

Kinesis 커넥터

  • S3에서 테이블 설명을 가져오는 새로고침 간격을 설정하는 kinesis.table-description-refresh-interval 구성값을 추가했어요. (#1609)

Kudu 커넥터

  • 범위 파티셔닝된 테이블의 그룹 실행(grouped execution) 시 쿼리 실패를 고쳤어요. (#7738)

MongoDB 커넥터

  • 서버 로그에서 mongodb.credentials 값을 가렸어요. (#7862)
  • 컬럼 삭제 지원을 추가했어요. (#7853)

Pinot 커넥터

  • 통과(passthrough) 쿼리에서 복잡한 필터 표현식을 지원해요. (#7161)

기타 커넥터 (Other connectors)

이 변경은 Druid, MemSQL, MySQL, Oracle, Phoenix, PostgreSQL, Redshift, SQL Server 커넥터에 적용돼요.

  • 식별자 매핑 규칙 지원을 추가했어요. case-insensitive-name-matching.config-file 구성값으로 규칙을 설정할 수 있어요. (#7841)

SPI

  • ConnectorMaterializedViewDefinition을 직렬화 불가능하게 만들었어요. 구체화된 뷰 정의를 적절한 형식으로 직렬화·저장하는 건 커넥터의 책임이에요. (#7762)
  • TupleDomain.transform을 지원 중단(deprecated) 처리했어요. (#7980)

더 알아보기 (Learn more)