// Copyright 2026 Leo Cheng
// SPDX-License-Identifier: Apache-2.0
///|
/// This connection speaks ClickHouse.
pub impl @moondb.AsyncDriver for ClickHouseConn with fn dialect(_self) {
@moondb.Dialect::Clickhouse
}
///|
/// Run a non-row statement; the server's summary header reports the rows written.
pub impl @moondb.AsyncDriver for ClickHouseConn with fn execute(
self,
sql,
params,
) {
ClickHouseConn::execute(self, sql, params)
}
///|
/// Run a row-returning statement and materialise every row.
pub impl @moondb.AsyncDriver for ClickHouseConn with fn query(self, sql, params) {
ClickHouseConn::query(self, sql, params)
}
///|
/// Begin: recorded, not enforced — ClickHouse has no transactions.
pub impl @moondb.AsyncDriver for ClickHouseConn with fn begin(self) -> Unit raise @moondb.DbError {
ClickHouseConn::begin(self)
}
///|
pub impl @moondb.AsyncDriver for ClickHouseConn with fn commit(self) -> Unit raise @moondb.DbError {
ClickHouseConn::commit(self)
}
///|
pub impl @moondb.AsyncDriver for ClickHouseConn with fn rollback(self) -> Unit raise @moondb.DbError {
ClickHouseConn::rollback(self)
}
///|
pub impl @moondb.AsyncDriver for ClickHouseConn with fn close(self) -> Unit {
ClickHouseConn::close(self)
}
///|
pub impl @moondb.AsyncDriver for ClickHouseConn with fn ping(self) -> Bool {
ClickHouseConn::ping(self)
}
///|
pub extend ClickHouseConn with @moondb.AsyncDriver::{
dialect,
query_stream,
prepare,
capabilities,
}