|
1 | 1 | import logging |
| 2 | +import re |
2 | 3 | import uuid |
3 | 4 | import time |
4 | 5 | from typing import Dict, Tuple, List, Optional, Any, Union, TYPE_CHECKING |
5 | 6 |
|
| 7 | +from databricks.sql.backend.sea.utils.constants import ALLOWED_SESSION_CONF_TO_DEFAULT_VALUES_MAP |
| 8 | + |
6 | 9 | if TYPE_CHECKING: |
7 | 10 | from databricks.sql.client import Cursor |
8 | 11 | from databricks.sql.result_set import ResultSet |
9 | 12 |
|
10 | 13 | from databricks.sql.backend.databricks_client import DatabricksClient |
11 | 14 | from databricks.sql.backend.types import SessionId, CommandId, CommandState, BackendType |
12 | 15 | from databricks.sql.exc import Error, NotSupportedError, ServerOperationError |
13 | | -from databricks.sql.backend.sea.utils.http_client import CustomHttpClient |
| 16 | +from databricks.sql.backend.sea.utils.http_client import SeaHttpClient |
14 | 17 | from databricks.sql.thrift_api.TCLIService import ttypes |
15 | 18 | from databricks.sql.types import SSLOptions |
16 | 19 |
|
|
30 | 33 | logger = logging.getLogger(__name__) |
31 | 34 |
|
32 | 35 |
|
| 36 | +def _filter_session_configuration( |
| 37 | + session_configuration: Optional[Dict[str, str]] |
| 38 | +) -> Optional[Dict[str, str]]: |
| 39 | + if not session_configuration: |
| 40 | + return None |
| 41 | + |
| 42 | + filtered_session_configuration = {} |
| 43 | + ignored_configs: Set[str] = set() |
| 44 | + |
| 45 | + for key, value in session_configuration.items(): |
| 46 | + if key.upper() in ALLOWED_SESSION_CONF_TO_DEFAULT_VALUES_MAP: |
| 47 | + filtered_session_configuration[key.lower()] = value |
| 48 | + else: |
| 49 | + ignored_configs.add(key) |
| 50 | + |
| 51 | + if ignored_configs: |
| 52 | + logger.warning( |
| 53 | + "Some session configurations were ignored because they are not supported: %s", |
| 54 | + ignored_configs, |
| 55 | + ) |
| 56 | + logger.warning( |
| 57 | + "Supported session configurations are: %s", |
| 58 | + list(ALLOWED_SESSION_CONF_TO_DEFAULT_VALUES_MAP.keys()), |
| 59 | + ) |
| 60 | + |
| 61 | + return filtered_session_configuration |
| 62 | + |
33 | 63 | class SeaDatabricksClient(DatabricksClient): |
34 | 64 | """ |
35 | 65 | Statement Execution API (SEA) implementation of the DatabricksClient interface. |
|
0 commit comments