diff --git a/src/pgproto/backend/well_known_queries.rs b/src/pgproto/backend/well_known_queries.rs index 15e71e851fee17e614bfc27741de72f9ec88c09e..f3084fac9d034eb75f4ee76eeaeff4f428c0f36d 100644 --- a/src/pgproto/backend/well_known_queries.rs +++ b/src/pgproto/backend/well_known_queries.rs @@ -16,12 +16,14 @@ impl WellKnownQuery { WellKnownQuery::ListOfTables(..) => { // TODO: filter _pico names like PostgreSQL filters pg_ names r#" - select - "name" as "relname", - NULL::text as "text" - from "_pico_table" - where substr("name", 1, $1::int) = $2::text - order by "relname" + select * from ( + select + name as relname, + NULL::text as "text" + from _pico_table + where name like $1::text || '%' + ) q + order by q.relname "# .into() } @@ -31,10 +33,7 @@ impl WellKnownQuery { pub fn parameters(&self) -> Vec<SbroadValue> { match self { WellKnownQuery::ListOfTables(pattern) => { - vec![ - SbroadValue::from(pattern.len() as u64), - SbroadValue::from(pattern.to_string()), - ] + vec![SbroadValue::from(pattern.to_string())] } } }