explain abstract method

  1. @override
Future<String> explain()
override

Returns a string describing the implementation of the compiled query.

This is intended to be read by a developer for purposes of optimizing the query, especially to add database indexes. It's not machine-readable and its format may change.

As currently implemented, the result has three sections, separated by two newlines:

  • The first section is this query compiled into an SQLite query.
  • The second section is the output of SQLite's "EXPLAIN QUERY PLAN" command applied to that query; for help interpreting this, see https://www.sqlite.org/eqp.html . The most important thing to know is that if you see "SCAN TABLE", it means that SQLite is doing a slow linear scan of the documents instead of using an index.
  • The third sections is this queries JSON representation. This is the data structure that is built to describe this query, either by the the query builder or when an SQL++ query is compiled.

Implementation

@override
Future<String> explain();