mirror of
https://github.com/apache/superset.git
synced 2024-09-16 10:39:55 -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:
|
if TYPE_CHECKING:
|
||||||
# prevent circular imports
|
# prevent circular imports
|
||||||
|
from pyhive.hive import Cursor
|
||||||
|
from TCLIService.ttypes import TFetchOrientation
|
||||||
|
|
||||||
from superset.models.core import Database
|
from superset.models.core import Database
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -139,12 +142,10 @@ class HiveEngineSpec(PrestoEngineSpec):
|
|||||||
ttypes as patched_ttypes,
|
ttypes as patched_ttypes,
|
||||||
)
|
)
|
||||||
|
|
||||||
from superset.db_engines import hive as patched_hive
|
|
||||||
|
|
||||||
hive.TCLIService = patched_TCLIService
|
hive.TCLIService = patched_TCLIService
|
||||||
hive.constants = patched_constants
|
hive.constants = patched_constants
|
||||||
hive.ttypes = patched_ttypes
|
hive.ttypes = patched_ttypes
|
||||||
hive.Cursor.fetch_logs = patched_hive.fetch_logs
|
hive.Cursor.fetch_logs = fetch_logs
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def fetch_data(
|
def fetch_data(
|
||||||
@ -611,3 +612,50 @@ class HiveEngineSpec(PrestoEngineSpec):
|
|||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
results = cursor.fetchall()
|
results = cursor.fetchall()
|
||||||
return {row[0] for row in results}
|
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