NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #318 most downloaded on pub.dev
Parses sqlite statements and performs static analysis on them
Last release 3 months ago
07 Jul 2026
Release timing varies
gaps range from 3 weeks to 6 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
83 releases · first in 2019
Fix nullability analysis of COALESCE and IFNULL
COALESCE and IFNULLFix nullability analysis of references and star columns
Refactor how tables and columns are resolved in statements
One column per quarter.
ResultSetAvailableInStatement class describes a result set that
has been added to a statement, for instance through a from clauseTableOrSubquery with an alias now introduces a TableAlias instead of
the original tableNew analysis checks for RETURNING: Disallow table.* syntax and aggregate expressions
RETURNING: Disallow table.* syntax and aggregate expressionsRAISE expressions in triggersRETURNING is used in an UPDATE FROM statement__Breaking__: Change InsertStatement.upsert to a list of upsert clauses
InsertStatement.upsert to a list of upsert clauses
RETURNING clauses in updates, deletes and insertsFROM clauses in UPDATE statementsMATERIALIZED/NOT MATERIALIZED hints in common table expressionsBuiltInMathExtension which corresponds to the -DSQLITE_ENABLE_MATH_FUNCTIONS
compile-time option for sqlite.EngineOptions.version argument to specify the desired sqlite version. Using newer features will be reported as
analysis warnings.rank columns of fts5 tables being misreported as integersFix views using common table expressions
Parser support for new moor features
New package:sqlparser/utils/node_to_text.dart library that turns an AST node back into a textual representation.
package:sqlparser/utils/node_to_text.dart library that turns an AST node back into a textual representation.CASE expressionsScan identifiers with [bracket syntax]
[bracket syntax]NumericToken now contains individual lexemes making up the numberNULLBreaking: Made RecursiveVisitor.visit, visitList and visitExcept an extension on AstVisitor.
RecursiveVisitor.visit, visitList and visitExcept an extension on AstVisitor.FrameBoundary, DeleteTarget, UpdateTarget, DefaultValues and InsertTarget are no longer constantvisitQueryable. Use defaultQueryable instead.CREATE VIEW statements (see SchemaFromCreateTable.readView). Thanks
to @mqus for their contribution!SqlEngine.parse will no longer throw when there's a parsing error (use ParseResult.errors instead).DEFERRABLE clauses on foreign key constraintsNULLS FIRST and NULLS LAST on ORDER BY termsNew package:sqlparser/utils/find_referenced_tables.dart library. Use it to easily find all referenced tables in a query.
package:sqlparser/utils/find_referenced_tables.dart library. Use it to easily find all referenced tables in a
query.Support collate expressions in the new type inference
visitCollateExpression to the visitor classesRemove SqlEngine.withOptions constructor - the default constructor now takes options
SqlEngine.withOptions constructor - the default constructor now takes optionsSelectStatement.from from List<Queryable> to Queryable?. Selecting from multiple tables with a comma
will now be parsed as a JoinClause.SelectStatementAsSource.statement from SelectStatement to BaseSelectStatement and allow compound select
statements to appear in a FROM clauseVALUES clause as select statementenableExperimentalTypeInference option has been
removed. To continue using the old engine, the useLegacyTypeInference flag can be used.New feature: Table valued functions.
enableJson1 parameter on EngineOptions. Add a Json1Extension instance
to enabledExtensions instead.rowid as a valid reference when needed (SELECT rowid FROM tbl is now parsed correctly)CURRENT_TIME, CURRENT_DATE and CURRENT_TIMESTAMPUPSERT clauses for insert statements__Breaking:__ Added an argument type and argument to the visitor classes
SqlEngine.withOptions(EngineOptions(enableExperimentalTypeInference: true)))CAST expressions and the ISNULL / NOTNULL postfixesCREATE TRIGGER statementsCREATE INDEX statementsOptionally support the json1 module
json1 modulefts5 moduleSupport common table expressions
rowid, oid, __rowid__ referencessqlite_master and sqlite_sequence tablesparse compound select statements
0.3.0+1: Accept \r characters as whitespace
Nothing published for this version
Extract schema information from parsed create table statements with SchemaFromCreateTable.
CREATE TABLE statementsSchemaFromCreateTable.fix wrong order in parsed LIMIT clauses
COLLATE expressionsLIMIT clausesAttempt to recognize when a bound variable should be an array (eg. in WHERE x IN ?). Also fixes a number of parsing bugs:
Attempt to recognize when a bound variable should be an array (eg. in WHERE x IN ?). Also fixes a number of parsing
bugs:
IN expressionstable1 JOIN table2 instead of
table1 CROSS JOIN table2.Initial version, can parse most statements but not DELETE, common table expressions and other advanced features.
Initial version, can parse most statements but not DELETE, common table expressions and other advanced features.
Your coding agent can read these notes before it upgrades. Set up the MCP server →