### Method

# RB RhythmDB query_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.