From ace4b32d0ad39e6fca5295d4fad50b36e6e5b2ea Mon Sep 17 00:00:00 2001 From: Priec Date: Thu, 9 Jul 2026 19:02:28 +0200 Subject: [PATCH] picker in forms page have more results easily now --- client | 2 +- common/proto/search.proto | 1 + common/src/proto/descriptor.bin | Bin 87562 -> 87671 bytes common/src/proto/komp_ac.search.rs | 2 ++ search/src/lib.rs | 10 ++++++++-- server | 2 +- 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/client b/client index 4d45b25..8fc2b22 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 4d45b25c757d51f9f11a6fcf55d64171442346c1 +Subproject commit 8fc2b22baa16972fa4db23987a9c096266d957c3 diff --git a/common/proto/search.proto b/common/proto/search.proto index 37aafd2..f8f6d34 100644 --- a/common/proto/search.proto +++ b/common/proto/search.proto @@ -24,6 +24,7 @@ message SearchRequest { string free_query = 3; repeated ColumnConstraint must = 4; optional uint32 limit = 5; + optional uint32 offset = 6; } message SearchResponse { message Hit { diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index a930fce21e6cbc5539c9563f4fd2d7495402a051..af291603a40170c0f18409e008aa933a51c6e504 100644 GIT binary patch delta 533 zcmYk2J5Iwu5J0`NV+W7PhYg=3{=|-rM8PRg2ti531*nK38VcxBP(-3avcv(XQy{s> z4LAa#;u@4NYs+>zKfifi@4Rfx-;Me4HHLL3{T{!<8q)jA&%ScWdRQzT@1A;AD9)Nw zxG6Y2pZIiPQ{y(**>tiH_Mc6bLSZD?_UcCnH+#FDiIqc$0!$?b;L|>t8c-9Jq@8n6 zl3-H3k|dMs5fLCL^o&ICvqa!2Z||6=5J4IWeHh8SVPfY~lSX8*vkWkl4AN+ptOB&D zMGakmo(j0Am`@7Y9qx2x=mUm$SZTpOIo!#G_SCLD=R?)4a!@ivuhRPd;R>mK!F}kQ z)XaT2aI2m%!a=1a_t8!+Iggy9+UxmVpY*apUpR(hg$%sxIA8Xush!2>w2EEjTZr4; QlK3m}^K!mj&c(a^52utc%m4rY delta 426 zcmYk2J5Iwu5I}ck#|DofMjJkfKe2J(9uy%6B^-l>juWJyqd-XRD5+B*xj>?z%ngF5 z$T4V{m6ct}H*elbJHN}|aT&aQP4FdYz9-MPf#&XV)!a;n?fvu?qK}9}L!id(=IRF^ zZ9lJPaKVg(hB7q_jsop z%2FYLV=bHV-5(4&w&$=Pu5r*^0~J|fp>sJ7s!%ZQZKb?ZC;ctSEA_*A{=S~W GYxD;V87BDv diff --git a/common/src/proto/komp_ac.search.rs b/common/src/proto/komp_ac.search.rs index b6ada73..93cf50a 100644 --- a/common/src/proto/komp_ac.search.rs +++ b/common/src/proto/komp_ac.search.rs @@ -20,6 +20,8 @@ pub struct SearchRequest { pub must: ::prost::alloc::vec::Vec, #[prost(uint32, optional, tag = "5")] pub limit: ::core::option::Option, + #[prost(uint32, optional, tag = "6")] + pub offset: ::core::option::Option, } #[derive(Clone, PartialEq, ::prost::Message)] pub struct SearchResponse { diff --git a/search/src/lib.rs b/search/src/lib.rs index b93da0d..a5fbbea 100644 --- a/search/src/lib.rs +++ b/search/src/lib.rs @@ -19,7 +19,7 @@ use tonic::{Request, Response, Status}; use tracing::info; const INDEX_ROOT: &str = "./tantivy_indexes"; -const DEFAULT_RESULT_LIMIT: usize = 25; +const DEFAULT_RESULT_LIMIT: usize = 60; const HARD_RESULT_LIMIT: usize = 200; const DEFAULT_LIST_LIMIT: usize = 5; @@ -71,6 +71,7 @@ impl SearcherService { &normalized.profile_name, table_name, normalized.limit.unwrap_or(DEFAULT_LIST_LIMIT), + normalized.offset, ) .await?; return Ok(Response::new(SearchResponse { hits })); @@ -163,6 +164,7 @@ struct NormalizedSearchRequest { free_query: String, must: Vec, limit: Option, + offset: usize, } #[derive(Debug)] @@ -310,6 +312,7 @@ fn normalize_request(req: SearchRequest) -> Result Result Result, Status> { let physical_to_display = table_physical_to_display_map(pool, profile_name, table_name).await?; let sql = format!( - "SELECT id, to_jsonb(t) AS data FROM {} t WHERE deleted = FALSE ORDER BY id DESC LIMIT $1", + "SELECT id, to_jsonb(t) AS data FROM {} t WHERE deleted = FALSE ORDER BY id DESC LIMIT $1 OFFSET $2", qualify_profile_table(profile_name, table_name) ); let rows = sqlx::query(AssertSqlSafe(sql)) .bind(limit as i64) + .bind(offset as i64) .fetch_all(pool) .await .map_err(|e| Status::internal(format!("DB query for default results failed: {}", e)))?; diff --git a/server b/server index e290953..da3401c 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit e2909537f5693574442914a9dd95d6372b891c86 +Subproject commit da3401c26bbed17c739f302434770a931313d459