Method
RBRhythmDBquery_parse
Declaration [src]
RhythmDBQuery*
rhythmdb_query_parse (
RhythmDB* db,
...
)
Description [src]
Creates a query from a list of criteria.
Most criteria consists of an operator (RhythmDBQueryType
),
a property (RhythmDBPropType
) and the data to compare with. An entry
matches a criteria if the operator returns true with the value of the
entries property as the first argument, and the given data as the second argument.
Three types criteria are special. Passing RHYTHMDB_QUERY_END indicates the end of the list of criteria, and must be the last passes parameter.
The second special criteria is a subquery which is defined by passing
RHYTHMDB_QUERY_SUBQUERY, followed by a query (GPtrArray
). An entry will
match a subquery criteria if it matches all criteria in the subquery.
The third special criteria is a disjunction which is defined by passing RHYTHMDB_QUERY_DISJUNCTION, which will make an entry match the query if it matches the criteria before the disjunction, the criteria after the disjunction, or both.
Example: rhythmdb_query_parse (db, RHYTHMDB_QUERY_SUBQUERY, subquery, RHYTHMDB_QUERY_DISJUNCTION RHYTHMDB_QUERY_PROP_LIKE, RHYTHMDB_PROP_TITLE, “cat”, RHYTHMDB_QUERY_DISJUNCTION RHYTHMDB_QUERY_PROP_GREATER, RHYTHMDB_PROP_RATING, 2.5, RHYTHMDB_QUERY_PROP_LESS, RHYTHMDB_PROP_PLAY_COUNT, 10, RHYTHMDB_QUERY_END);
will create a query that matches entries:
a) that match the query "subquery", or
b) that have "cat" in their title, or
c) have a rating of at least 2.5, and a play count of at most 10.
This method is not directly available to language bindings.
Return value
Type: RhythmDBQuery
A the newly created query. It must be freed with rhythmdb_query_free().
The caller of the method takes ownership of the returned data, and is responsible for freeing it. |