SqlEngine: Migrate default construtor to options

This commit is contained in:
Simon Binder 2020-02-10 18:48:03 +01:00
parent 04a43b36d6
commit 814e7bf61d
No known key found for this signature in database
GPG Key ID: 7891917E4147B8C0
17 changed files with 25 additions and 59 deletions

View File

@ -33,7 +33,7 @@ manyColumns:
class ParseMoorFile extends BenchmarkBase {
ParseMoorFile(ScoreEmitter emitter) : super('Moor file: Parse only', emitter);
final _engine = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final _engine = SqlEngine(EngineOptions(useMoorExtensions: true));
@override
void exercise() {

View File

@ -45,7 +45,7 @@ class MoorSession {
enableExperimentalTypeInference: options.useExperimentalInference,
);
return SqlEngine.withOptions(sqlOptions);
return SqlEngine(sqlOptions);
}
FileType _findFileType(String path) {

View File

@ -36,8 +36,7 @@ class PreprocessBuilder extends Builder {
FutureOr<void> build(BuildStep buildStep) async {
final input = buildStep.inputId;
final moorFileContent = await buildStep.readAsString(input);
final engine =
SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
final parsed = engine.parseMoorFile(moorFileContent);

View File

@ -7,7 +7,7 @@ import 'package:test/test.dart';
import '../utils.dart';
void main() {
final engine = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
final mapper = TypeMapper();
test('warns when a result column is unresolved', () {

View File

@ -24,7 +24,7 @@ CREATE TABLE bar (
Future<void> main() async {
final mapper = TypeMapper();
final engine = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
final step = ParseMoorStep(
Task(null, null, null), FoundFile(Uri.parse('foo'), FileType.moor), '');

View File

@ -10,7 +10,7 @@ final Table table =
Table(name: 'todos', resolvedColumns: [_idColumn, _titleColumn]);
void main() {
final engine = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
final mapper = TypeMapper();
test('extracts variables and sorts them by index', () {

View File

@ -2,8 +2,6 @@ import 'dart:collection';
import 'package:sqlparser/sqlparser.dart';
import 'package:sqlparser/src/analysis/types2/types.dart' as t2;
import 'package:sqlparser/src/engine/module/fts5.dart';
import 'package:sqlparser/src/engine/module/json1.dart';
import 'package:sqlparser/src/engine/options.dart';
import 'package:sqlparser/src/reader/parser/parser.dart';
import 'package:sqlparser/src/reader/tokenizer/scanner.dart';
@ -22,23 +20,7 @@ class SqlEngine {
SchemaFromCreateTable _schemaReader;
SqlEngine(
{@Deprecated('Use SqlEngine.withOptions instead')
bool useMoorExtensions = false,
@Deprecated('Use SqlEngine.withOptions instead')
bool enableJson1Module = false,
@Deprecated('Use SqlEngine.withOptions instead')
bool enableFts5 = false})
: this.withOptions(_constructOptions(
// ignore: deprecated_member_use_from_same_package
moor: useMoorExtensions,
// ignore: deprecated_member_use_from_same_package
json1: enableJson1Module,
// ignore: deprecated_member_use_from_same_package
fts5: enableFts5,
));
SqlEngine.withOptions(this.options) {
SqlEngine([EngineOptions options]) : options = options ?? EngineOptions() {
for (final extension in options.enabledExtensions) {
extension.register(this);
}
@ -47,6 +29,9 @@ class SqlEngine {
registerTable(sqliteSequence);
}
@Deprecated('Use SqlEngine(options) instead')
factory SqlEngine.withOptions(EngineOptions options) = SqlEngine;
/// Obtain a [SchemaFromCreateTable] instance compatible with the
/// configuration of this engine.
///
@ -231,18 +216,6 @@ class SqlEngine {
root.scope = _constructRootScope(parent: safeScope);
}
static EngineOptions _constructOptions({bool moor, bool fts5, bool json1}) {
final extensions = [
if (fts5) const Fts5Extension(),
if (json1) const Json1Extension(),
];
return EngineOptions(
useMoorExtensions: moor,
enabledExtensions: extensions,
);
}
}
/// The result of parsing an sql query. Contains the root of the AST and all

View File

@ -63,8 +63,7 @@ void main() {
});
test('supports booleans when moor extensions are enabled', () {
final engine =
SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
final stmt = engine.parse('''
CREATE TABLE foo (
a BOOL, b DATETIME, c DATE, d BOOLEAN NOT NULL

View File

@ -82,7 +82,7 @@ void main() {
});
test('can infer types for dart placeholder', () {
final ctx = (SqlEngine.withOptions(EngineOptions(useMoorExtensions: true))
final ctx = (SqlEngine(EngineOptions(useMoorExtensions: true))
..registerTable(demoTable))
.analyze(r'SELECT * FROM demo WHERE $expr');
@ -94,8 +94,7 @@ void main() {
});
test('respects explicit types for variables', () {
final ctx =
SqlEngine.withOptions(EngineOptions(useMoorExtensions: true)).analyze(
final ctx = SqlEngine(EngineOptions(useMoorExtensions: true)).analyze(
'SELECT ?',
stmtOptions: const AnalyzeStatementOptions(indexedVariableTypes: {
1: ResolvedType.bool(),

View File

@ -37,8 +37,7 @@ const Map<String, ResolvedType> _types = {
};
SqlEngine _spawnEngine() {
return SqlEngine.withOptions(
EngineOptions(enableExperimentalTypeInference: true))
return SqlEngine(EngineOptions(enableExperimentalTypeInference: true))
..registerTable(demoTable)
..registerTable(anotherTable);
}

View File

@ -5,7 +5,7 @@ import 'package:test/test.dart';
import '../data.dart';
void main() {
final engine = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true))
final engine = SqlEngine(EngineOptions(useMoorExtensions: true))
..registerTable(demoTable)
..registerTable(anotherTable);

View File

@ -7,7 +7,7 @@ import 'package:test/test.dart';
ComputedSuggestions completionsFor(String moorFile,
{void Function(SqlEngine) setup}) {
final position = moorFile.indexOf('^');
final engine = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
setup?.call(engine);
final result = engine.parseMoorFile(moorFile.replaceFirst('^', ''));

View File

@ -5,7 +5,7 @@ final _fts5Options = EngineOptions(enabledExtensions: const [Fts5Extension()]);
void main() {
group('creating fts5 tables', () {
final engine = SqlEngine.withOptions(_fts5Options);
final engine = SqlEngine(_fts5Options);
test('can create fts5 tables', () {
final result = engine.analyze('CREATE VIRTUAL TABLE foo USING '
@ -35,7 +35,7 @@ void main() {
group('type inference for function calls', () {
SqlEngine engine;
setUp(() {
engine = SqlEngine.withOptions(_fts5Options);
engine = SqlEngine(_fts5Options);
// add an fts5 table for the following queries
final fts5Result = engine.analyze('CREATE VIRTUAL TABLE foo USING '
'fts5(bar, baz);');
@ -79,7 +79,7 @@ void main() {
group('type inference for function arguments', () {
SqlEngine engine;
setUp(() {
engine = SqlEngine.withOptions(_fts5Options);
engine = SqlEngine(_fts5Options);
// add an fts5 table for the following queries
final fts5Result = engine.analyze('CREATE VIRTUAL TABLE foo USING '
'fts5(bar, baz);');
@ -125,7 +125,7 @@ void main() {
group('error reporting', () {
SqlEngine engine;
setUp(() {
engine = SqlEngine.withOptions(_fts5Options);
engine = SqlEngine(_fts5Options);
// add an fts5 table for the following queries
final fts5Result = engine.analyze('CREATE VIRTUAL TABLE foo USING '
'fts5(bar, baz);');

View File

@ -12,7 +12,7 @@ void main() {
}
void _runTests(bool types2) {
final engine = SqlEngine.withOptions(EngineOptions(
final engine = SqlEngine(EngineOptions(
enableExperimentalTypeInference: types2,
enabledExtensions: const [Json1Extension()],
));

View File

@ -93,7 +93,7 @@ void main() {
test("reports error when the statement can't be parsed", () {
// regression test for https://github.com/simolus3/moor/issues/280#issuecomment-570789454
final parsed = SqlEngine.withOptions(EngineOptions(useMoorExtensions: true))
final parsed = SqlEngine(EngineOptions(useMoorExtensions: true))
.parseMoorFile('name: NSERT INTO foo DEFAULT VALUES;');
expect(

View File

@ -41,8 +41,7 @@ CREATE TABLE foo (
});
test('parses trailing comma with error', () {
final engine =
SqlEngine.withOptions(EngineOptions(useMoorExtensions: true));
final engine = SqlEngine(EngineOptions(useMoorExtensions: true));
final result = engine.parseMoorFile('''
CREATE TABLE foo (

View File

@ -23,7 +23,7 @@ IdentifierToken identifier(String content) {
}
MoorFile parseMoor(String content) {
return SqlEngine.withOptions(EngineOptions(useMoorExtensions: true))
return SqlEngine(EngineOptions(useMoorExtensions: true))
.parseMoorFile(content)
.rootNode as MoorFile;
}
@ -36,9 +36,7 @@ void testMoorFile(String moorFile, MoorFile expected) {
void testStatement(String sql, AstNode expected, {bool moorMode = false}) {
final parsed =
SqlEngine.withOptions(EngineOptions(useMoorExtensions: moorMode))
.parse(sql)
.rootNode;
SqlEngine(EngineOptions(useMoorExtensions: moorMode)).parse(sql).rootNode;
enforceHasSpan(parsed);
enforceEqual(parsed, expected);
}