Method

RBRhythmDBquery_preprocess

Declaration [src]

void
rhythmdb_query_preprocess (
  RhythmDB* db,
  RhythmDBQuery* query
)

Description [src]

Preprocesses a query to prepare it for execution. This has two main roles: to perform expensive data transformations once per query, rather than once per entry, and converting criteria to lower-level forms that are implemented by the database backend.

For RHYTHMDB_PROP_SEARCH_MATCH, this converts the search terms into an array of case-folded words.

When matching against case-folded properties such as

RHYTHMDB_PROP_TITLE_FOLDED, this case-folds the query value.

When performing year-based criteria such as #RHYTHMDB_QUERY_PROP_YEAR_LESS, it converts the year into the Julian date such that a simple numeric comparison will work.

Parameters

query

Type: RhythmDBQuery

Query to preprocess.

The data is owned by the caller of the method.