Skip to content

Commit 11b24ab

Browse files
committed
docs: update vector_extension example to run queries
1 parent e0a65fd commit 11b24ab

File tree

1 file changed

+31
-2
lines changed
  • examples/vector_extension/src

1 file changed

+31
-2
lines changed

examples/vector_extension/src/main.rs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33

44
use anyhow::Result;
55
use indoc::indoc;
6-
use postgresql_embedded::{PostgreSQL, Settings, VersionReq};
7-
use sqlx::PgPool;
6+
use sqlx::{PgPool, Row};
87
use tracing::info;
98

9+
use postgresql_embedded::{PostgreSQL, Settings, VersionReq};
10+
1011
/// Example of how to install and configure the vector extension.
1112
///
1213
/// See: <https://github.com/tensorchord/pgvecto.rs/?tab=readme-ov-file#quick-start>
@@ -59,6 +60,27 @@ async fn main() -> Result<()> {
5960
info!("Creating data");
6061
create_data(&pool).await?;
6162

63+
info!("Squared Euclidean Distance");
64+
execute_query(
65+
&pool,
66+
"SELECT '[1, 2, 3]'::vector <-> '[3, 2, 1]'::vector AS value;",
67+
)
68+
.await?;
69+
70+
info!("Negative Dot Product");
71+
execute_query(
72+
&pool,
73+
"SELECT '[1, 2, 3]'::vector <#> '[3, 2, 1]'::vector AS value;",
74+
)
75+
.await?;
76+
77+
info!("Cosine Distance");
78+
execute_query(
79+
&pool,
80+
"SELECT '[1, 2, 3]'::vector <=> '[3, 2, 1]'::vector AS value;",
81+
)
82+
.await?;
83+
6284
info!("Stopping database");
6385
postgresql.stop().await?;
6486
Ok(())
@@ -117,6 +139,13 @@ async fn create_data(pool: &PgPool) -> Result<()> {
117139
Ok(())
118140
}
119141

142+
async fn execute_query(pool: &PgPool, query: &str) -> Result<()> {
143+
let row = sqlx::query(query).fetch_one(pool).await?;
144+
let value: f32 = row.try_get("value")?;
145+
info!("{}: {}", query, value);
146+
Ok(())
147+
}
148+
120149
#[cfg(target_os = "linux")]
121150
#[cfg(test)]
122151
mod test {

0 commit comments

Comments
 (0)