Ticket #898 (closed enhancement: fixed)

Opened 8 months ago

Last modified 7 months ago

Journal-filters query improvement

Reported by: ronald Assigned to: ronald
Priority: critical Milestone: 0.9.0
Component: ambra Version: 0.8.3-SNAPSHOT
Keywords: Cc:
Blocking: Blocked By:

Description

Because of limitations in Criteria the journal filters currently create a long list of id comparisons in the where clause ('id = <id1> or id = <id2> or ...'). With the new Criteria.createReferrerCriteria() this can be simplified down to a single condition which should improve performance of these queries.

This also requires finishing up the createReferrerCriteria work to support conversions thereof between criteria and oql.

Dependency Graph

Change History

04/04/08 18:45:34 changed by amit

  • priority changed from unassigned to critical.

04/10/08 12:19:31 changed by ronald

  • status changed from new to assigned.
  • blocking changed.
  • blockedby changed.

04/12/08 04:54:23 changed by ronald

(In [5437]) Rework oql-to-criteria mapping to allow more expressions thanks to the new Criteria.createReferrerCriteria() (from [5192]) and updated criteria-to-oql mapping to support referrer-criteria. In consequence, oql-based filters have been updated too and the filter definition now takes a full oql query instead of just an oql fragment. Also added more javadocs.

Addresses #898.

04/19/08 00:01:47 changed by ronald

(In [5487]) Add support for casts in criteria. This comes in the shape of being able to specify an explicit type when creating a child-criteria (instead of it being inferred from the association); for referrer-criteria and option is provided to ignore the type-check on the parent criteria.

The oql <-> criteria translators have also been updated accordingly, which means cast()'s in oql filter-definitions are supported now.

Addresses #898.

04/19/08 00:12:45 changed by ronald

  • status changed from assigned to closed.
  • resolution set to fixed.

(In [5488]) Improve filter-definition for simple-collections: instead of creating an explicit list of id's a constraint using the simple-collection predicates directly is created, i.e. a filter-constraint equivalent to

  select o from Aggregation a where a.id = <journal-id> and o := a.simpleCollection;

This has become possible because of the new referrer-criteria and casts in criteria ([5192] and [5487]).

Closes #898.