2024-06-02
This is PMA's DBGI daily open-notebook.
Today is 2024.06.02
Todo today
Have a look at the DBGI discussion forum
- https://github.com/orgs/digital-botanical-gardens-initiative/discussions
Doing
Paused
Done
Notes
Working on the query optimizations with Luca
let query = bio_ott_taxon_items::dsl::bio_ott_taxon_items
.filter(
// We try to write the raw SQL in order to us the '<<%' operator.
diesel::dsl::sql::<diesel::sql_types::Bool>(
&format!(
"'{}' <<% name",
query
),
),
)
.limit(limit.unwrap_or(10))
.offset(offset.unwrap_or(0));
works
let query = bio_ott_taxon_items::dsl::bio_ott_taxon_items
.filter(
crate::sql_function_bindings::strict_word_similarity_op(
bio_ott_taxon_items::dsl::name,
query,
)
)
.order(
crate::sql_function_bindings::strict_word_similarity(
bio_ott_taxon_items::dsl::name,
query,
),
)
.limit(limit.unwrap_or(10))
.offset(offset.unwrap_or(0));
Doesnt.
However I would like to use the second function call and no direct SQL definition. How should I proceed ?
Lats one returns
[2024-06-02T14:41:00Z DEBUG backend::models::bio_ott_taxon_items] SELECT "bio_ott_taxon_items"."id", "bio_ott_taxon_items"."name", "bio_ott_taxon_items"."ott_id", "bio_ott_taxon_items"."ott_rank_id", "bio_ott_taxon_items"."wikidata_id", "bio_ott_taxon_items"."ncbi_id", "bio_ott_taxon_items"."gbif_id", "bio_ott_taxon_items"."irmng_id", "bio_ott_taxon_items"."worms_id", "bio_ott_taxon_items"."domain_id", "bio_ott_taxon_items"."kingdom_id", "bio_ott_taxon_items"."phylum_id", "bio_ott_taxon_items"."class_id", "bio_ott_taxon_items"."order_id", "bio_ott_taxon_items"."family_id", "bio_ott_taxon_items"."genus_id", "bio_ott_taxon_items"."parent_id", "bio_ott_taxon_items"."icon_id", "bio_ott_taxon_items"."color_id" FROM "bio_ott_taxon_items" WHERE strict_word_similarity_op("bio_ott_taxon_items"."name", $1) ORDER BY strict_word_similarity("bio_ott_taxon_items"."name", $2) LIMIT $3 OFFSET $4 -- binds: ["sapiens", "sapiens", 10, 0]
[2024-06-02T15:52:18Z DEBUG backend::models::bio_ott_taxon_items] SELECT "bio_ott_taxon_items"."id", "bio_ott_taxon_items"."name", "bio_ott_taxon_items"."ott_id", "bio_ott_taxon_items"."ott_rank_id", "bio_ott_taxon_items"."wikidata_id", "bio_ott_taxon_items"."ncbi_id", "bio_ott_taxon_items"."gbif_id", "bio_ott_taxon_items"."irmng_id", "bio_ott_taxon_items"."worms_id", "bio_ott_taxon_items"."domain_id", "bio_ott_taxon_items"."kingdom_id", "bio_ott_taxon_items"."phylum_id", "bio_ott_taxon_items"."class_id", "bio_ott_taxon_items"."order_id", "bio_ott_taxon_items"."family_id", "bio_ott_taxon_items"."genus_id", "bio_ott_taxon_items"."parent_id", "bio_ott_taxon_items"."icon_id", "bio_ott_taxon_items"."color_id" FROM "bio_ott_taxon_items" WHERE strict_word_similarity_commutator_op($1, "bio_ott_taxon_items"."name") ORDER BY strict_word_similarity_dist_commutator_op($2, "bio_ott_taxon_items"."name") LIMIT $3 OFFSET $4 -- binds: ["sapiens", "sapiens", 10, 0]
[2024-06-02T15:29:26Z DEBUG backend::models::bio_ott_taxon_items] SELECT "bio_ott_taxon_items"."id", "bio_ott_taxon_items"."name", "bio_ott_taxon_items"."ott_id", "bio_ott_taxon_items"."ott_rank_id", "bio_ott_taxon_items"."wikidata_id", "bio_ott_taxon_items"."ncbi_id", "bio_ott_taxon_items"."gbif_id", "bio_ott_taxon_items"."irmng_id", "bio_ott_taxon_items"."worms_id", "bio_ott_taxon_items"."domain_id", "bio_ott_taxon_items"."kingdom_id", "bio_ott_taxon_items"."phylum_id", "bio_ott_taxon_items"."class_id", "bio_ott_taxon_items"."order_id", "bio_ott_taxon_items"."family_id", "bio_ott_taxon_items"."genus_id", "bio_ott_taxon_items"."parent_id", "bio_ott_taxon_items"."icon_id", "bio_ott_taxon_items"."color_id" FROM "bio_ott_taxon_items" WHERE 'sapiens' <<% name LIMIT $1 OFFSET $2 -- binds: [10, 0]