Closed JimFuller-RedHat closed 1 month ago
problem is in modules/fundamental/src/purl/service/mod.rs
let mut query = qualified_purl::Entity::find()
.left_join(base_purl::Entity)
.filter(base_purl::Column::Type.eq(&purl.ty))
.filter(base_purl::Column::Name.eq(&purl.name))
.filter(versioned_purl::Column::Version.eq(version))
.filter(qualified_purl::Column::Qualifiers.eq(Qualifiers(purl.qualifiers.clone())));
all works if we add left_join to versioned_purl and comment out qualifier filter
let mut query = qualified_purl::Entity::find()
.left_join(versioned_purl::Entity)
.left_join(base_purl::Entity)
.filter(base_purl::Column::Type.eq(&purl.ty))
.filter(base_purl::Column::Name.eq(&purl.name))
.filter(versioned_purl::Column::Version.eq(version))
//.filter(qualified_purl::Column::Qualifiers.eq(Qualifiers(purl.qualifiers.clone())));
because in the SQL WHERE clause, this
AND "qualified_purl"."qualifiers" = '{}'
does not ever match, probably something with how jsonb equiv in sea_orm.
@helio-frota reminds us we should add a api/v1/purl/{key} test as well ;)
When I invoke:
We get
Query Error: error returned from database: missing FROM-clause entry for table "versioned_purl"
looking at the underlying query
the left join is referring to versioned_purl.base_purl_id which is missing eg. versioned_purl is never joined ... either there is a missing join or this is just a typo or something more ... will investigate rust code.