> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kinetica.com/llms.txt
> Use this file to discover all available pages before exploring further.

# KineticaPool

> KineticaPool — Kinetica Rust API

[gpudb\_api](https://docs.kinetica.com/content/api/rust/index.md)::<wbr />[sqlx\_support](https://docs.kinetica.com/content/api/rust/sqlx_support/index.md)
[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L303)&#x20;

<pre>`pub type KineticaPool = PgPool;`</pre>

Type alias for SQLx PostgreSQL connection pool configured for Kinetica.This is simply a `PgPool` but named to make the intent clear in your code.

Aliased Type
<pre>`pub struct KineticaPool(/* private fields */);`</pre>
Trait Implementations

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L770-L898)
impl [KineticaPoolExt](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md) for [KineticaPool](https://docs.kinetica.com/content/api/rust/sqlx_support/type.KineticaPool.md)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L771-L774)
async fn [execute\_sql](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.execute_sql)(\&self, sql: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[u64](https://doc.rust-lang.org/1.98.1/std/primitive.u64.html), SqlxError>

Execute a raw SQL statement and return the number of rows affected.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L776-L798)
async fn [table\_exists](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.table_exists)(\&self, table\_name: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html), SqlxError>

Check if a table exists.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L800-L808)
async fn [count\_rows](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.count_rows)( \&self, table\_name: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html), condition: [Option](https://doc.rust-lang.org/1.98.1/core/option/enum.Option.html)\<&[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html)>, ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html), SqlxError>

Get the count of rows in a table.

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L810-L826)
async fn [fetch\_page](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.fetch_page)( \&self, sql: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html), offset: [i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html), limit: [i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<([Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<PgRow>, [i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html)), SqlxError>

Execute a query with pagination (LIMIT/OFFSET). [Read more](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.fetch_page)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L828-L868)

#### async fn [fetch\_all\_pages](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.fetch_all_pages)\<F>( \&self, sql: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html), page\_size: [i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html), callback: F, ) ->[Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[SqlxPaginationStats](https://docs.kinetica.com/content/api/rust/sqlx_support/struct.SqlxPaginationStats.md), SqlxError>&#xA;where F: [FnMut](https://doc.rust-lang.org/1.98.1/core/ops/function/trait.FnMut.html)([Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<PgRow>, [u64](https://doc.rust-lang.org/1.98.1/std/primitive.u64.html)) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[bool](https://doc.rust-lang.org/1.98.1/std/primitive.bool.html), SqlxError> + [Send](https://doc.rust-lang.org/1.98.1/core/marker/trait.Send.html),

Execute a query and process all results page by page with a callback. [Read more](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.fetch_all_pages)

[Source](https://github.com/kineticadb/kinetica-api-rust/blob/master/crates/gpudb-api/src/sqlx_support.rs#L870-L897)
async fn [fetch\_all\_paginated](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.fetch_all_paginated)( \&self, sql: &[str](https://doc.rust-lang.org/1.98.1/std/primitive.str.html), page\_size: [i64](https://doc.rust-lang.org/1.98.1/std/primitive.i64.html), ) -> [Result](https://doc.rust-lang.org/1.98.1/core/result/enum.Result.html)\<[Vec](https://doc.rust-lang.org/1.98.1/alloc/vec/struct.Vec.html)\<PgRow>, SqlxError>

Fetch all rows from a query, automatically handling pagination. [Read more](https://docs.kinetica.com/content/api/rust/sqlx_support/trait.KineticaPoolExt.md#tymethod.fetch_all_paginated)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.