Skip to content
This repository was archived by the owner on May 5, 2022. It is now read-only.

Commit 68e6f58

Browse files
author
Ke Zhu
committed
Support connection parameter sessionUser
1 parent 8045f49 commit 68e6f58

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

sqlalchemy_trino/dialect.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,8 @@ def create_connect_args(self, url: URL) -> Tuple[List[Any], Dict[str, Any]]:
8585
raise ValueError(f'Unexpected database format {url.database}')
8686

8787
username = kwargs.pop('username', 'anonymous')
88-
kwargs['user'] = username
88+
session_user = kwargs.pop('sessionUser', username)
89+
kwargs['user'] = session_user
8990

9091
password = kwargs.pop('password', None)
9192
if password:

tests/test_dialect.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from sqlalchemy.engine import url
2+
from sqlalchemy_trino.dialect import TrinoDialect
3+
4+
5+
def test_trino_connection_string_user():
6+
dialect = TrinoDialect()
7+
username = 'test-user'
8+
u = url.make_url(f'trino://{username}@host')
9+
_, cparams = dialect.create_connect_args(u)
10+
11+
assert cparams['user'] == username
12+
13+
14+
def test_trino_connection_string_session_user():
15+
dialect = TrinoDialect()
16+
username = 'test-user'
17+
session_user = 'sess-user'
18+
u = url.make_url(f'trino://{username}@host/?sessionUser={session_user}')
19+
_, cparams = dialect.create_connect_args(u)
20+
21+
assert cparams['user'] == session_user

0 commit comments

Comments
 (0)