package wasm-sql:core@0.1.0;
/// Query execution interface for running SQL statements.
interface query {
use query-types.{sql-query, sql-string, query-results};
use util-types.{error};
use connection.{connection};
use transaction.{transaction};
/// Specifies where to execute a query.
variant query-executor {
/// Execute using a connection from the pool (auto-released after query).
pool,
/// Execute on a specific connection.
connection(borrow<connection>),
/// Execute within a transaction.
transaction(borrow<transaction>)
}
/// Executes a SELECT query and returns all rows.
/// Use database-specific codecs to extract values from results.
fetch-all: async func(query: sql-query, executor: query-executor) -> result<query-results, error>;
/// Executes an INSERT, UPDATE, or DELETE query.
/// Returns the number of affected rows.
execute: async func(
query: sql-query, executor: query-executor
) -> result<u64, error>;
/// Executes a raw SQL string without parameters.
/// Use for DDL statements or when parameters are not needed.
execute-raw: async func(query: sql-string, executor: query-executor) -> result<_, error>;
}