MCPcopy
hub / github.com/marimo-team/marimo / execute_duckdb_sql

Function execute_duckdb_sql

marimo/_sql/utils.py:147–200  ·  view source on GitHub ↗

Execute a parameterized DuckDB query with kernel globals context. Like wrapped_sql, but uses connection.execute() to support parameterized queries ($1, $2, ...) for safe value interpolation.

(
    query: str,
    params: list[Any],
    connection: duckdb.DuckDBPyConnection | None = None,
)

Source from the content-addressed store, hash-verified

145
146
147def execute_duckdb_sql(
148 query: str,
149 params: list[Any],
150 connection: duckdb.DuckDBPyConnection | None = None,
151) -> duckdb.DuckDBPyConnection:
152 """Execute a parameterized DuckDB query with kernel globals context.
153
154 Like wrapped_sql, but uses connection.execute() to support
155 parameterized queries ($1, $2, ...) for safe value interpolation.
156 """
157 DependencyManager.duckdb.require("to execute sql")
158 import duckdb
159
160 if connection is None:
161 connection = cast(duckdb.DuckDBPyConnection, duckdb)
162
163 try:
164 ctx = get_context()
165 except ContextNotInitializedError:
166 result = _try_wasm_duckdb(
167 "execute", query, connection, globals(), params
168 )
169 if result is _NO_WASM_DUCKDB_RESULT:
170 # No WASM rewrite was needed; preserve DuckDB's parameterized path.
171 return connection.execute(query, params)
172 return cast(duckdb.DuckDBPyConnection, result)
173 else:
174 install_connection = (
175 ctx.execution_context.with_connection
176 if ctx.execution_context is not None
177 else nullcontext
178 )
179 with install_connection(connection):
180 result = _try_wasm_duckdb(
181 "execute",
182 query,
183 connection,
184 ctx.globals,
185 params,
186 )
187 if result is _NO_WASM_DUCKDB_RESULT:
188 # Run in kernel globals so parameterized SQL can scan user data.
189 value = eval(
190 "connection.execute(query, params)",
191 ctx.globals,
192 {
193 "query": query,
194 "params": params,
195 "connection": connection,
196 },
197 )
198 else:
199 value = result
200 return cast(duckdb.DuckDBPyConnection, value)
201
202
203def try_convert_to_polars(

Calls 4

get_contextFunction · 0.90
_try_wasm_duckdbFunction · 0.85
requireMethod · 0.80
executeMethod · 0.45

Used in the wild real call sites across dependent graphs

searching dependent graphs…