From f7eaf4e3db4637a1d557d61cf72d5da9ec7fb3d5 Mon Sep 17 00:00:00 2001 From: longxiaofei Date: Wed, 21 Feb 2024 10:49:49 +0800 Subject: [PATCH] feat: update duckdb version --- pygwalker/__init__.py | 2 +- pygwalker/data_parsers/base.py | 28 +++------------------------- pyproject.toml | 2 +- 3 files changed, 5 insertions(+), 27 deletions(-) diff --git a/pygwalker/__init__.py b/pygwalker/__init__.py index b9fe9e6..a0d67dc 100644 --- a/pygwalker/__init__.py +++ b/pygwalker/__init__.py @@ -10,7 +10,7 @@ from pygwalker.services.global_var import GlobalVarManager from pygwalker.services.kaggle import show_tips_user_kaggle as __show_tips_user_kaggle -__version__ = "0.4.6" +__version__ = "0.4.7a0" __hash__ = __rand_str() from pygwalker.api.walker import walk diff --git a/pygwalker/data_parsers/base.py b/pygwalker/data_parsers/base.py index 0adfc31..a18c82f 100644 --- a/pygwalker/data_parsers/base.py +++ b/pygwalker/data_parsers/base.py @@ -6,7 +6,6 @@ import abc import io -from sqlglot import column as column_func import duckdb import arrow import pytz @@ -157,35 +156,14 @@ def _infer_prop( } def get_datas_by_sql(self, sql: str) -> List[Dict[str, Any]]: - """ - Due to duckdb don't support use 'EPOCH FROM' timestamp_s, timestamp_ms. - So we need to convert timestamp_s, timestamp_ms to timestamp temporarily. - """ + """get datas by duckdb""" try: duckdb.query("SET TimeZone = 'UTC'") except Exception: pass - duckdb.register("__pygwalker_mid_table", self._duckdb_df) - - select_expr_list = [] - for field in self.field_metas: - origin_field = str(column_func(field["key"], quoted=True)) - if field["type"] != "datetime": - select_expr_list.append(origin_field) - else: - select_expr_list.append(f'{origin_field}::timestamp {origin_field}') - select_expr = ",".join(select_expr_list) - - sql = f""" - WITH pygwalker_mid_table AS ( - SELECT - {select_expr} - FROM - "__pygwalker_mid_table" - ) - {sql} - """ + duckdb.register("pygwalker_mid_table", self._duckdb_df) + result = duckdb.query(sql) return [ dict(zip(result.columns, row)) diff --git a/pyproject.toml b/pyproject.toml index f3027d5..fd5a652 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ dependencies = [ "ipywidgets", "pydantic", "psutil", - "duckdb==0.9.2", + "duckdb==0.10.0", "pyarrow", "sqlglot>=19.0.0", "requests",