dbx_core/engine/query_builder_api.rs
1// Query Builder API implementation for Database
2
3use crate::engine::Database;
4use crate::engine::query_builder::QueryBuilder;
5
6impl Database {
7 /// Create a new QueryBuilder for building SQL queries
8 ///
9 /// This method returns a QueryBuilder that allows you to construct
10 /// SQL queries using a fluent API without writing raw SQL strings.
11 ///
12 /// # Example
13 ///
14 /// ```rust
15 /// use dbx_core::Database;
16 /// use arrow::datatypes::{DataType, Field, Schema};
17 ///
18 /// # fn main() -> dbx_core::DbxResult<()> {
19 /// let db = Database::open_in_memory()?;
20 ///
21 /// // Create a table first
22 /// let schema = Schema::new(vec![
23 /// Field::new("id", DataType::Int64, false),
24 /// Field::new("name", DataType::Utf8, true),
25 /// Field::new("age", DataType::Int32, true),
26 /// ]);
27 /// db.create_table("users", schema)?;
28 ///
29 /// // Query using the builder
30 /// let results = db.query_builder()
31 /// .select(&["id", "name"])
32 /// .from("users")
33 /// .where_("age", ">", "18")
34 /// .order_by("name", "ASC")
35 /// .limit(10)
36 /// .execute()?;
37 /// # Ok(())
38 /// # }
39 /// ```
40 pub fn query_builder(&self) -> QueryBuilder<'_> {
41 QueryBuilder::new(self)
42 }
43}