mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 13:22:57 +00:00
feat: add logical plan based prepare statement for postgresql (#1813)
* feat: add logical plan based prepare statement for postgresql * refactor: correct more types * Update src/servers/src/postgres/types.rs Co-authored-by: LFC <bayinamine@gmail.com> * fix: address review issues * test: add datetime in integration tests --------- Co-authored-by: LFC <bayinamine@gmail.com>
This commit is contained in:
@@ -145,22 +145,26 @@ pub async fn test_postgres_crud(store_type: StorageType) {
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert!(
|
||||
sqlx::query("create table demo(i bigint, ts timestamp time index)")
|
||||
.execute(&pool)
|
||||
.await
|
||||
.is_ok()
|
||||
);
|
||||
sqlx::query("create table demo(i bigint, ts timestamp time index, d date, dt datetime)")
|
||||
.execute(&pool)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
for i in 0..10 {
|
||||
assert!(sqlx::query("insert into demo values($1, $2)")
|
||||
let d = NaiveDate::from_yo_opt(2015, 100).unwrap();
|
||||
let dt = d.and_hms_opt(0, 0, 0).unwrap().timestamp_millis();
|
||||
|
||||
sqlx::query("insert into demo values($1, $2, $3, $4)")
|
||||
.bind(i)
|
||||
.bind(i)
|
||||
.bind(d)
|
||||
.bind(dt)
|
||||
.execute(&pool)
|
||||
.await
|
||||
.is_ok());
|
||||
.unwrap();
|
||||
}
|
||||
|
||||
let rows = sqlx::query("select i from demo")
|
||||
let rows = sqlx::query("select i,d,dt from demo")
|
||||
.fetch_all(&pool)
|
||||
.await
|
||||
.unwrap();
|
||||
@@ -168,7 +172,18 @@ pub async fn test_postgres_crud(store_type: StorageType) {
|
||||
|
||||
for (i, row) in rows.iter().enumerate() {
|
||||
let ret: i64 = row.get(0);
|
||||
let d: NaiveDate = row.get(1);
|
||||
let dt: NaiveDateTime = row.get(2);
|
||||
|
||||
assert_eq!(ret, i as i64);
|
||||
|
||||
let expected_d = NaiveDate::from_yo_opt(2015, 100).unwrap();
|
||||
assert_eq!(expected_d, d);
|
||||
|
||||
let expected_dt = NaiveDate::from_yo_opt(2015, 100)
|
||||
.and_then(|d| d.and_hms_opt(0, 0, 0))
|
||||
.unwrap();
|
||||
assert_eq!(expected_dt, dt);
|
||||
}
|
||||
|
||||
let rows = sqlx::query("select i from demo where i=$1")
|
||||
|
||||
Reference in New Issue
Block a user