mirror of
https://github.com/apache/superset.git
synced 2024-09-07 06:17:45 -04:00
chore: remove db_engines (#22444)
This commit is contained in:
parent
f3bdcdc79b
commit
65fffe974b
@ -48,6 +48,9 @@ from superset.sql_parse import ParsedQuery, Table
|
||||
|
||||
if TYPE_CHECKING:
|
||||
# prevent circular imports
|
||||
from pyhive.hive import Cursor
|
||||
from TCLIService.ttypes import TFetchOrientation
|
||||
|
||||
from superset.models.core import Database
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@ -139,12 +142,10 @@ class HiveEngineSpec(PrestoEngineSpec):
|
||||
ttypes as patched_ttypes,
|
||||
)
|
||||
|
||||
from superset.db_engines import hive as patched_hive
|
||||
|
||||
hive.TCLIService = patched_TCLIService
|
||||
hive.constants = patched_constants
|
||||
hive.ttypes = patched_ttypes
|
||||
hive.Cursor.fetch_logs = patched_hive.fetch_logs
|
||||
hive.Cursor.fetch_logs = fetch_logs
|
||||
|
||||
@classmethod
|
||||
def fetch_data(
|
||||
@ -611,3 +612,50 @@ class HiveEngineSpec(PrestoEngineSpec):
|
||||
cursor.execute(sql)
|
||||
results = cursor.fetchall()
|
||||
return {row[0] for row in results}
|
||||
|
||||
|
||||
# TODO: contribute back to pyhive.
|
||||
def fetch_logs( # pylint: disable=protected-access
|
||||
self: "Cursor",
|
||||
_max_rows: int = 1024,
|
||||
orientation: Optional["TFetchOrientation"] = None,
|
||||
) -> str:
|
||||
"""Mocked. Retrieve the logs produced by the execution of the query.
|
||||
Can be called multiple times to fetch the logs produced after
|
||||
the previous call.
|
||||
:returns: list<str>
|
||||
:raises: ``ProgrammingError`` when no query has been started
|
||||
.. note::
|
||||
This is not a part of DB-API.
|
||||
"""
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from pyhive import hive
|
||||
from TCLIService import ttypes
|
||||
from thrift import Thrift
|
||||
|
||||
orientation = orientation or ttypes.TFetchOrientation.FETCH_NEXT
|
||||
try:
|
||||
req = ttypes.TGetLogReq(operationHandle=self._operationHandle)
|
||||
logs = self._connection.client.GetLog(req).log
|
||||
return logs
|
||||
# raised if Hive is used
|
||||
except (ttypes.TApplicationException, Thrift.TApplicationException) as ex:
|
||||
if self._state == self._STATE_NONE:
|
||||
raise hive.ProgrammingError("No query yet") from ex
|
||||
logs = []
|
||||
while True:
|
||||
req = ttypes.TFetchResultsReq(
|
||||
operationHandle=self._operationHandle,
|
||||
orientation=ttypes.TFetchOrientation.FETCH_NEXT,
|
||||
maxRows=self.arraysize,
|
||||
fetchType=1, # 0: results, 1: logs
|
||||
)
|
||||
response = self._connection.client.FetchResults(req)
|
||||
hive._check_status(response)
|
||||
assert not response.results.rows, "expected data in columnar format"
|
||||
assert len(response.results.columns) == 1, response.results.columns
|
||||
new_logs = hive._unwrap_column(response.results.columns[0])
|
||||
logs += new_logs
|
||||
if not new_logs:
|
||||
break
|
||||
return "\n".join(logs)
|
||||
|
@ -1,16 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
@ -1,67 +0,0 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from typing import Optional, TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyhive.hive import Cursor
|
||||
from TCLIService.ttypes import TFetchOrientation
|
||||
|
||||
# TODO: contribute back to pyhive.
|
||||
def fetch_logs( # pylint: disable=protected-access
|
||||
self: "Cursor",
|
||||
_max_rows: int = 1024,
|
||||
orientation: Optional["TFetchOrientation"] = None,
|
||||
) -> str:
|
||||
"""Mocked. Retrieve the logs produced by the execution of the query.
|
||||
Can be called multiple times to fetch the logs produced after
|
||||
the previous call.
|
||||
:returns: list<str>
|
||||
:raises: ``ProgrammingError`` when no query has been started
|
||||
.. note::
|
||||
This is not a part of DB-API.
|
||||
"""
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from pyhive import hive
|
||||
from TCLIService import ttypes
|
||||
from thrift import Thrift
|
||||
|
||||
orientation = orientation or ttypes.TFetchOrientation.FETCH_NEXT
|
||||
try:
|
||||
req = ttypes.TGetLogReq(operationHandle=self._operationHandle)
|
||||
logs = self._connection.client.GetLog(req).log
|
||||
return logs
|
||||
# raised if Hive is used
|
||||
except (ttypes.TApplicationException, Thrift.TApplicationException) as ex:
|
||||
if self._state == self._STATE_NONE:
|
||||
raise hive.ProgrammingError("No query yet") from ex
|
||||
logs = []
|
||||
while True:
|
||||
req = ttypes.TFetchResultsReq(
|
||||
operationHandle=self._operationHandle,
|
||||
orientation=ttypes.TFetchOrientation.FETCH_NEXT,
|
||||
maxRows=self.arraysize,
|
||||
fetchType=1, # 0: results, 1: logs
|
||||
)
|
||||
response = self._connection.client.FetchResults(req)
|
||||
hive._check_status(response)
|
||||
assert not response.results.rows, "expected data in columnar format"
|
||||
assert len(response.results.columns) == 1, response.results.columns
|
||||
new_logs = hive._unwrap_column(response.results.columns[0])
|
||||
logs += new_logs
|
||||
if not new_logs:
|
||||
break
|
||||
return "\n".join(logs)
|
Loading…
Reference in New Issue
Block a user