릴리스 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_CATALOG과CURRENT_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.type이oauth2로 설정된 경우 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)