beets/docs/plugins
Adrian Sampson 7d9f556cbe introducing "slow queries"
In preparation for enabling queries over flexattrs, this is a new path that
lets queries avoid generating SQLite expressions altogether. Any query that
can be completely evaluated in SQLite will be, but when it can't, we now fall
back to running the entire query in Python by selecting everything from the
database and running the `match` predicate.

To begin with, this mechanism replaces RegisteredFieldQueries, which
previously used Python callbacks for evaluation. Now they just indicate that
they're slow queries and the query system falls back automatically.

This has the great upside that it lets use implement arbitrarily complex
queries without shoehorning everything into SQLite when that (a) is way too
complicated and (b) doesn't buy us much performance anyway. The obvious
drawback is that any code dealing with queries now has to handle two cases
(slow and fast).

In the future, we could optimize this further by combing fast and slow query
styles. For example, if you want to match with a substring *and* a regular
expression, we can do a first pass in SQLite and apply the regex predicate on
the results. Avoided for now because premature optimization, etc., etc.

Next step: implement flexattr matches as slow queries.
2013-08-16 14:28:46 -07:00
..
beatport.rst organize 1.1.1 changelog into sections 2013-06-05 15:20:36 -07:00
beetsweb.png fix typo in web screenshot (closes #222) 2013-03-15 10:26:58 -07:00
bpd.rst fix homebrew gstreamer instructions 2013-08-15 17:46:03 -07:00
chroma.rst chroma: fingerprint command's write from config 2013-03-11 19:19:48 -07:00
convert.rst docs/changelog for convert paths config (#285) 2013-05-22 15:00:53 -07:00
discogs.rst #291: changelog and docs 2013-05-29 15:39:10 -07:00
duplicates.rst thanks and doc tweaks for duplicates (#278) 2013-05-17 12:20:27 -07:00
echonest_tempo.rst another docs typo 2013-04-15 16:47:31 -07:00
embedart.rst invert new embedart switch (#182) 2013-03-17 22:50:28 -07:00
fetchart.rst Update fetchart.rst 2013-04-28 12:31:23 +03:00
fuzzy.rst some low-level tweaks to extensible queries (#214) 2013-03-13 21:59:03 -07:00
ihate.rst document new Confit-based configuration 2012-12-20 21:56:47 -08:00
importfeeds.rst importfeeds: absolute path option (#180) 2013-03-13 01:50:09 -03:00
index.rst Update index.rst 2013-07-27 10:34:49 +02:00
info.rst long-overdue docs for the "info" plugin 2012-11-27 19:44:46 -08:00
inline.rst docs/inline.rst: The `[paths] section is now paths:` 2013-08-06 10:41:05 +02:00
lastgenre.rst changelog for #254 2013-04-21 20:41:01 -07:00
lyrics.rst Update lyrics.rst 2013-04-16 00:12:08 +03:00
mbcollection.rst collections broken link 2013-03-12 10:34:51 -03:00
mbsync.rst mbsync: don't write tags if import.write is off 2013-03-03 17:13:54 -08:00
missing.rst doc correction and refactoring for #275 2013-05-17 12:07:53 -07:00
mpdupdate.rst mpdupdate domain sockets (#313): changelog/docs 2013-06-05 18:43:47 -07:00
random.rst changelog & docs typo fixes for #263 2013-05-19 10:44:35 -07:00
replaygain.rst document new Confit-based configuration 2012-12-20 21:56:47 -08:00
rewrite.rst document new Confit-based configuration 2012-12-20 21:56:47 -08:00
scrub.rst Update scrub.rst 2013-03-26 11:28:17 +01:00
smartplaylist.rst smartplaylist: split query w/ shlex (fixes #256) 2013-04-21 20:55:07 -07:00
the.rst the: fix config syntax in docs 2013-03-14 18:34:55 -07:00
web.rst document new Confit-based configuration 2012-12-20 21:56:47 -08:00
writing.rst introducing "slow queries" 2013-08-16 14:28:46 -07:00
zero.rst plugins/zero.rst: Add a missing 'a' 2013-08-06 10:41:05 +02:00