This is an automated email from the ASF dual-hosted git repository. villebro pushed a commit to branch 0.37 in repository https://gitbox.apache.org/repos/asf/incubator-superset.git
commit 8fb6c8361caa3d35a47db90766278b0df80164cf Author: chuancy <[email protected]> AuthorDate: Mon Aug 31 13:03:07 2020 +0800 fix(db-engine-spec): execute oracle DML statement bug in sqllab (#10706) * fix execute oracle DML statement bug in sqllab when i execute oracle sql statements like update in SQLLAB, get "oracle error: not a query" error. Refer https://www.python.org/dev/peps/pep-0249/, superset old version use `cursor.description` ,because this attribute will be None for operations that do not return rows or if the cursor has not had an operation invoked via the .execute*() method yet. * Apply suggestions from code review Co-authored-by: Ville Brofeldt <[email protected]> * Update oracle.py * Update oracle.py * Update oracle.py * Apply suggestions from code review Co-authored-by: Ville Brofeldt <[email protected]> * Update oracle.py * Update superset/db_engine_specs/oracle.py Co-authored-by: Ville Brofeldt <[email protected]> Co-authored-by: Ville Brofeldt <[email protected]> --- superset/db_engine_specs/oracle.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/superset/db_engine_specs/oracle.py b/superset/db_engine_specs/oracle.py index 813b150..01c06f4 100644 --- a/superset/db_engine_specs/oracle.py +++ b/superset/db_engine_specs/oracle.py @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. from datetime import datetime -from typing import Optional +from typing import Any, List, Optional, Tuple from superset.db_engine_specs.base import BaseEngineSpec, LimitMethod from superset.utils import core as utils @@ -57,3 +57,16 @@ class OracleEngineSpec(BaseEngineSpec): @classmethod def epoch_ms_to_dttm(cls) -> str: return "TO_DATE('1970-01-01','YYYY-MM-DD')+(1/24/60/60/1000)*{col}" + + @classmethod + def fetch_data( + cls, cursor: Any, limit: Optional[int] = None + ) -> List[Tuple[Any, ...]]: + """ + :param cursor: Cursor instance + :param limit: Maximum number of rows to be returned by the cursor + :return: Result of query + """ + if not cursor.description: + return [] + return super().fetch_data(cursor, limit)
