File tree Expand file tree Collapse file tree 3 files changed +14
-143
lines changed Expand file tree Collapse file tree 3 files changed +14
-143
lines changed Original file line number Diff line number Diff line change 6
6
from mcp .server .fastmcp import FastMCP
7
7
import concurrent .futures
8
8
from dotenv import load_dotenv
9
+ import pyarrow as pa
9
10
import atexit
10
11
from typing import Optional
11
12
from .env import get_config
@@ -107,8 +108,8 @@ def execute_databend_query(sql: str) -> list[dict] | dict:
107
108
if config .local_mode :
108
109
# Handle local in-memory Databend
109
110
result = client .sql (sql )
110
- df = result .to_pandas ()
111
- return df . to_dict ( "records" )
111
+ df = result .to_py_arrow ()
112
+ return recordbatches_to_dicts ( df )
112
113
else :
113
114
# Handle remote Databend server
114
115
conn = client .get_conn ()
@@ -128,6 +129,15 @@ def execute_databend_query(sql: str) -> list[dict] | dict:
128
129
logger .error (error_msg )
129
130
return {"error" : error_msg }
130
131
132
+ def recordbatches_to_dicts (batches : list [pa .RecordBatch ]) -> list [dict ]:
133
+ results = []
134
+ for batch in batches :
135
+ columns = batch .schema .names
136
+ columns_data = [batch .column (i ).to_pylist () for i in range (batch .num_columns )]
137
+ for row in zip (* columns_data ):
138
+ results .append (dict (zip (columns , row )))
139
+ return results
140
+
131
141
132
142
def _execute_sql (sql : str ) -> dict :
133
143
logger .info (f"Executing SQL query: { sql } " )
Original file line number Diff line number Diff line change 1
1
[project ]
2
2
name = " mcp-databend"
3
- version = " 0.2.0 "
3
+ version = " 0.2.1 "
4
4
description = " An MCP server for Databend."
5
5
readme = " README.md"
6
6
requires-python = " >=3.12"
@@ -24,7 +24,6 @@ dependencies = [
24
24
" databend>=1.2.810" ,
25
25
" databend-driver>=0.27.3" ,
26
26
" mcp>=1.9.0" ,
27
- " pandas>=2.3.2" ,
28
27
" pyarrow>=21.0.0" ,
29
28
" python-dotenv>=1.1.0" ,
30
29
]
You can’t perform that action at this time.
0 commit comments