|
33 | 33 | _API_VERSION = 'v3'
|
34 | 34 | SESSION_KEY = '%(username)s-%(connector_name)s'
|
35 | 35 | OPERATION_TOKEN = '%(username)s-%(connector_name)s' + '-operation-token'
|
| 36 | +DEFAULT_CATALOG_PARAM = "default_catalog" |
| 37 | +DEFAULT_DATABASE_PARAM = "default_database" |
36 | 38 |
|
37 | 39 |
|
38 | 40 | def query_error_handler(func):
|
@@ -70,6 +72,8 @@ def __init__(self, user, interpreter=None):
|
70 | 72 |
|
71 | 73 | self.options = interpreter['options']
|
72 | 74 | api_url = self.options['url']
|
| 75 | + self.default_catalog = self.options.get(DEFAULT_CATALOG_PARAM) |
| 76 | + self.default_database = self.options.get(DEFAULT_DATABASE_PARAM) |
73 | 77 |
|
74 | 78 | self.db = FlinkSqlClient(user=user, api_url=api_url)
|
75 | 79 |
|
@@ -159,6 +163,10 @@ def _get_session(self):
|
159 | 163 |
|
160 | 164 | if not session:
|
161 | 165 | session = self.db.create_session()
|
| 166 | + if self.default_database: |
| 167 | + self._use_database(self.default_catalog, self.default_database) |
| 168 | + elif self.default_catalog: |
| 169 | + self._use_catalog(self.default_catalog) |
162 | 170 |
|
163 | 171 | try:
|
164 | 172 | self.db.session_heartbeat(session_handle=session['sessionHandle'])
|
@@ -453,6 +461,20 @@ def _show_functions(self, database):
|
453 | 461 |
|
454 | 462 | return [{'name': function[0]} for function in function_list]
|
455 | 463 |
|
| 464 | + def _use_catalog(self, catalog): |
| 465 | + session = self._get_session() |
| 466 | + self.db.configure_session(session_handle=(session['id']), statement="USE CATALOG `%s`" % catalog) |
| 467 | + |
| 468 | + def _use_database(self, catalog, database): |
| 469 | + session = self._get_session() |
| 470 | + if catalog: |
| 471 | + self.db.configure_session(session_handle=(session['id']), |
| 472 | + statement="USE `%(catalog)s`.`%(database)s`" % {'catalog': catalog, |
| 473 | + 'database': database}) |
| 474 | + else: |
| 475 | + self.db.configure_session(session_handle=(session['id']), |
| 476 | + statement="USE `%(database)s`" % {'database': database}) |
| 477 | + |
456 | 478 |
|
457 | 479 | class FlinkSqlClient:
|
458 | 480 | """
|
|
0 commit comments