mirror of https://github.com/AMT-Cheif/drift.git
Fix generation in drift package
This commit is contained in:
parent
3f74d65e69
commit
5b7e011021
|
@ -1678,12 +1678,13 @@ abstract class _$CustomTablesDb extends GeneratedDatabase {
|
||||||
],
|
],
|
||||||
readsFrom: {
|
readsFrom: {
|
||||||
config,
|
config,
|
||||||
}).asyncMap((QueryRow row) => config.mapFromRowWithAlias(row, const {
|
}).asyncMap(
|
||||||
'ck': 'config_key',
|
(QueryRow row) async => config.mapFromRowWithAlias(row, const {
|
||||||
'cf': 'config_value',
|
'ck': 'config_key',
|
||||||
'cs1': 'sync_state',
|
'cf': 'config_value',
|
||||||
'cs2': 'sync_state_implicit',
|
'cs1': 'sync_state',
|
||||||
}));
|
'cs2': 'sync_state_implicit',
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
Selectable<Config> readMultiple(List<String> var1,
|
Selectable<Config> readMultiple(List<String> var1,
|
||||||
|
@ -1754,26 +1755,20 @@ abstract class _$CustomTablesDb extends GeneratedDatabase {
|
||||||
variables: [],
|
variables: [],
|
||||||
readsFrom: {
|
readsFrom: {
|
||||||
config,
|
config,
|
||||||
}).map((QueryRow row) {
|
}).map((QueryRow row) => JsonResult(
|
||||||
return JsonResult(
|
raw: row,
|
||||||
row: row,
|
key: row.read<String>('key'),
|
||||||
key: row.read<String>('key'),
|
value: row.readNullable<String>('value'),
|
||||||
value: row.readNullable<String>('value'),
|
));
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Selectable<JsonResult> another() {
|
Selectable<JsonResult> another() {
|
||||||
return customSelect(
|
return customSelect('SELECT \'one\' AS "key", NULLIF(\'two\', \'another\') AS value', variables: [], readsFrom: {})
|
||||||
'SELECT \'one\' AS "key", NULLIF(\'two\', \'another\') AS value',
|
.map((QueryRow row) => JsonResult(
|
||||||
variables: [],
|
raw: row,
|
||||||
readsFrom: {}).map((QueryRow row) {
|
key: row.read<String>('key'),
|
||||||
return JsonResult(
|
value: row.readNullable<String>('value'),
|
||||||
row: row,
|
));
|
||||||
key: row.read<String>('key'),
|
|
||||||
value: row.readNullable<String>('value'),
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Selectable<MultipleResult> multiple({required Multiple$predicate predicate}) {
|
Selectable<MultipleResult> multiple({required Multiple$predicate predicate}) {
|
||||||
|
@ -1793,14 +1788,12 @@ abstract class _$CustomTablesDb extends GeneratedDatabase {
|
||||||
withDefaults,
|
withDefaults,
|
||||||
withConstraints,
|
withConstraints,
|
||||||
...generatedpredicate.watchedTables,
|
...generatedpredicate.watchedTables,
|
||||||
}).asyncMap((QueryRow row) async {
|
}).asyncMap((QueryRow row) async => MultipleResult(
|
||||||
return MultipleResult(
|
raw: row,
|
||||||
row: row,
|
a: row.readNullable<String>('a'),
|
||||||
a: row.readNullable<String>('a'),
|
b: row.readNullable<int>('b'),
|
||||||
b: row.readNullable<int>('b'),
|
c: withConstraints.mapFromRow(row),
|
||||||
c: await withConstraints.mapFromRowOrNull(row, tablePrefix: 'nested_0'),
|
));
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Selectable<EMail> searchEmails({required String? term}) {
|
Selectable<EMail> searchEmails({required String? term}) {
|
||||||
|
@ -1827,20 +1820,18 @@ abstract class _$CustomTablesDb extends GeneratedDatabase {
|
||||||
readsFrom: {
|
readsFrom: {
|
||||||
config,
|
config,
|
||||||
...generatedexpr.watchedTables,
|
...generatedexpr.watchedTables,
|
||||||
}).map((QueryRow row) {
|
}).map((QueryRow row) => ReadRowIdResult(
|
||||||
return ReadRowIdResult(
|
raw: row,
|
||||||
row: row,
|
rowid: row.read<int>('rowid'),
|
||||||
rowid: row.read<int>('rowid'),
|
configKey: row.read<String>('config_key'),
|
||||||
configKey: row.read<String>('config_key'),
|
configValue: row.readNullable<DriftAny>('config_value'),
|
||||||
configValue: row.readNullable<DriftAny>('config_value'),
|
syncState: NullAwareTypeConverter.wrapFromSql(
|
||||||
syncState: NullAwareTypeConverter.wrapFromSql(
|
ConfigTable.$convertersyncState,
|
||||||
ConfigTable.$convertersyncState,
|
row.readNullable<int>('sync_state')),
|
||||||
row.readNullable<int>('sync_state')),
|
syncStateImplicit: NullAwareTypeConverter.wrapFromSql(
|
||||||
syncStateImplicit: NullAwareTypeConverter.wrapFromSql(
|
ConfigTable.$convertersyncStateImplicit,
|
||||||
ConfigTable.$convertersyncStateImplicit,
|
row.readNullable<int>('sync_state_implicit')),
|
||||||
row.readNullable<int>('sync_state_implicit')),
|
));
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Selectable<MyViewData> readView({ReadView$where? where}) {
|
Selectable<MyViewData> readView({ReadView$where? where}) {
|
||||||
|
@ -1895,21 +1886,19 @@ abstract class _$CustomTablesDb extends GeneratedDatabase {
|
||||||
readsFrom: {
|
readsFrom: {
|
||||||
withConstraints,
|
withConstraints,
|
||||||
withDefaults,
|
withDefaults,
|
||||||
}).asyncMap((QueryRow row) async {
|
}).asyncMap((QueryRow row) async => NestedResult(
|
||||||
return NestedResult(
|
raw: row,
|
||||||
row: row,
|
defaults: withDefaults.mapFromRow(row),
|
||||||
defaults: await withDefaults.mapFromRow(row, tablePrefix: 'nested_0'),
|
nestedQuery1: await customSelect(
|
||||||
nestedQuery0: await customSelect(
|
'SELECT * FROM with_constraints AS c WHERE c.b = ?1',
|
||||||
'SELECT * FROM with_constraints AS c WHERE c.b = ?1',
|
variables: [
|
||||||
variables: [
|
Variable<int>(row.read('\$n_0'))
|
||||||
Variable<int>(row.read('\$n_0'))
|
],
|
||||||
],
|
readsFrom: {
|
||||||
readsFrom: {
|
withConstraints,
|
||||||
withConstraints,
|
withDefaults,
|
||||||
withDefaults,
|
}).map((QueryRow row) => withConstraints.mapFromRow(row)).get(),
|
||||||
}).asyncMap(withConstraints.mapFromRow).get(),
|
));
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Selectable<MyCustomResultClass> customResult() {
|
Selectable<MyCustomResultClass> customResult() {
|
||||||
|
@ -1925,8 +1914,8 @@ abstract class _$CustomTablesDb extends GeneratedDatabase {
|
||||||
syncState: NullAwareTypeConverter.wrapFromSql(
|
syncState: NullAwareTypeConverter.wrapFromSql(
|
||||||
ConfigTable.$convertersyncState,
|
ConfigTable.$convertersyncState,
|
||||||
row.readNullable<int>('sync_state')),
|
row.readNullable<int>('sync_state')),
|
||||||
config: await config.mapFromRow(row, tablePrefix: 'nested_0'),
|
config: config.mapFromRow(row, tablePrefix: 'nested_0'),
|
||||||
noIds: await noIds.mapFromRow(row, tablePrefix: 'nested_1'),
|
noIds: noIds.mapFromRow(row, tablePrefix: 'nested_1'),
|
||||||
nested: await customSelect('SELECT * FROM no_ids',
|
nested: await customSelect('SELECT * FROM no_ids',
|
||||||
variables: [],
|
variables: [],
|
||||||
readsFrom: {
|
readsFrom: {
|
||||||
|
@ -2081,25 +2070,25 @@ typedef ReadView$where = Expression<bool> Function(MyView my_view);
|
||||||
|
|
||||||
class NestedResult extends CustomResultSet {
|
class NestedResult extends CustomResultSet {
|
||||||
final WithDefault defaults;
|
final WithDefault defaults;
|
||||||
final List<WithConstraint> nestedQuery0;
|
final List<WithConstraint> nestedQuery1;
|
||||||
NestedResult({
|
NestedResult({
|
||||||
required QueryRow row,
|
required QueryRow row,
|
||||||
required this.defaults,
|
required this.defaults,
|
||||||
required this.nestedQuery0,
|
required this.nestedQuery1,
|
||||||
}) : super(row);
|
}) : super(row);
|
||||||
@override
|
@override
|
||||||
int get hashCode => Object.hash(defaults, nestedQuery0);
|
int get hashCode => Object.hash(defaults, nestedQuery1);
|
||||||
@override
|
@override
|
||||||
bool operator ==(Object other) =>
|
bool operator ==(Object other) =>
|
||||||
identical(this, other) ||
|
identical(this, other) ||
|
||||||
(other is NestedResult &&
|
(other is NestedResult &&
|
||||||
other.defaults == this.defaults &&
|
other.defaults == this.defaults &&
|
||||||
other.nestedQuery0 == this.nestedQuery0);
|
other.nestedQuery1 == this.nestedQuery1);
|
||||||
@override
|
@override
|
||||||
String toString() {
|
String toString() {
|
||||||
return (StringBuffer('NestedResult(')
|
return (StringBuffer('NestedResult(')
|
||||||
..write('defaults: $defaults, ')
|
..write('defaults: $defaults, ')
|
||||||
..write('nestedQuery0: $nestedQuery0')
|
..write('nestedQuery1: $nestedQuery1')
|
||||||
..write(')'))
|
..write(')'))
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1714,21 +1714,19 @@ abstract class _$TodoDb extends GeneratedDatabase {
|
||||||
readsFrom: {
|
readsFrom: {
|
||||||
categories,
|
categories,
|
||||||
todosTable,
|
todosTable,
|
||||||
}).map((QueryRow row) {
|
}).map((QueryRow row) => AllTodosWithCategoryResult(
|
||||||
return AllTodosWithCategoryResult(
|
raw: row,
|
||||||
row: row,
|
id: row.read<int>('id'),
|
||||||
id: row.read<int>('id'),
|
title: row.readNullable<String>('title'),
|
||||||
title: row.readNullable<String>('title'),
|
content: row.read<String>('content'),
|
||||||
content: row.read<String>('content'),
|
targetDate: row.readNullable<DateTime>('target_date'),
|
||||||
targetDate: row.readNullable<DateTime>('target_date'),
|
category: row.readNullable<int>('category'),
|
||||||
category: row.readNullable<int>('category'),
|
status: NullAwareTypeConverter.wrapFromSql(
|
||||||
status: NullAwareTypeConverter.wrapFromSql(
|
$TodosTableTable.$converterstatus,
|
||||||
$TodosTableTable.$converterstatus,
|
row.readNullable<String>('status')),
|
||||||
row.readNullable<String>('status')),
|
catId: row.read<int>('catId'),
|
||||||
catId: row.read<int>('catId'),
|
catDesc: row.read<String>('catDesc'),
|
||||||
catDesc: row.read<String>('catDesc'),
|
));
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<int> deleteTodoById(int var1) {
|
Future<int> deleteTodoById(int var1) {
|
||||||
|
|
|
@ -136,7 +136,7 @@ void main() {
|
||||||
contains(
|
contains(
|
||||||
isA<NestedResult>()
|
isA<NestedResult>()
|
||||||
.having((e) => e.defaults, 'defaults', first)
|
.having((e) => e.defaults, 'defaults', first)
|
||||||
.having((e) => e.nestedQuery0, 'nested', hasLength(2)),
|
.having((e) => e.nestedQuery1, 'nested', hasLength(2)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ void main() {
|
||||||
contains(
|
contains(
|
||||||
isA<NestedResult>()
|
isA<NestedResult>()
|
||||||
.having((e) => e.defaults, 'defaults', second)
|
.having((e) => e.defaults, 'defaults', second)
|
||||||
.having((e) => e.nestedQuery0, 'nested', hasLength(1)),
|
.having((e) => e.nestedQuery1, 'nested', hasLength(1)),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -30,6 +30,6 @@ void main() {
|
||||||
|
|
||||||
final result = results.single;
|
final result = results.single;
|
||||||
expect(result.defaults, defaults);
|
expect(result.defaults, defaults);
|
||||||
expect(result.nestedQuery0, [constraints]);
|
expect(result.nestedQuery1, [constraints]);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -171,11 +171,11 @@ class AnnotatedDartCodeBuilder {
|
||||||
'This query (${query.name}) does not have a result set');
|
'This query (${query.name}) does not have a result set');
|
||||||
}
|
}
|
||||||
|
|
||||||
addResultSetRowType(resultSet, resultSet.resultClassName!);
|
addResultSetRowType(resultSet, () => query.resultClassName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addResultSetRowType(
|
void addResultSetRowType(
|
||||||
InferredResultSet resultSet, String resultClassName) {
|
InferredResultSet resultSet, String Function() resultClassName) {
|
||||||
if (resultSet.existingRowType != null) {
|
if (resultSet.existingRowType != null) {
|
||||||
return addCode(resultSet.existingRowType!.rowType);
|
return addCode(resultSet.existingRowType!.rowType);
|
||||||
}
|
}
|
||||||
|
@ -188,13 +188,13 @@ class AnnotatedDartCodeBuilder {
|
||||||
return addDriftType(resultSet.scalarColumns.single);
|
return addDriftType(resultSet.scalarColumns.single);
|
||||||
}
|
}
|
||||||
|
|
||||||
return addText(resultClassName);
|
return addText(resultClassName());
|
||||||
}
|
}
|
||||||
|
|
||||||
void addTypeOfNestedResult(NestedResult nested) {
|
void addTypeOfNestedResult(NestedResult nested) {
|
||||||
if (nested is NestedResultTable) {
|
if (nested is NestedResultTable) {
|
||||||
return addResultSetRowType(
|
return addResultSetRowType(
|
||||||
nested.innerResultSet, nested.nameForGeneratedRowClass);
|
nested.innerResultSet, () => nested.nameForGeneratedRowClass);
|
||||||
} else if (nested is NestedResultQuery) {
|
} else if (nested is NestedResultQuery) {
|
||||||
addSymbol('List', AnnotatedDartCode.dartCore);
|
addSymbol('List', AnnotatedDartCode.dartCore);
|
||||||
addText('<');
|
addText('<');
|
||||||
|
|
|
@ -172,13 +172,19 @@ abstract class SqlQuery {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get _useResultClassName {
|
||||||
|
final resultSet = this.resultSet!;
|
||||||
|
|
||||||
|
return resultSet.matchingTable == null && !resultSet.singleColumn;
|
||||||
|
}
|
||||||
|
|
||||||
String get resultClassName {
|
String get resultClassName {
|
||||||
final resultSet = this.resultSet;
|
final resultSet = this.resultSet;
|
||||||
if (resultSet == null) {
|
if (resultSet == null) {
|
||||||
throw StateError('This query ($name) does not have a result set');
|
throw StateError('This query ($name) does not have a result set');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resultSet.matchingTable != null || resultSet.singleColumn) {
|
if (!_useResultClassName) {
|
||||||
throw UnsupportedError('This result set does not introduce a class, '
|
throw UnsupportedError('This result set does not introduce a class, '
|
||||||
'either because it has a matching table or because it only returns '
|
'either because it has a matching table or because it only returns '
|
||||||
'one column.');
|
'one column.');
|
||||||
|
@ -216,7 +222,7 @@ abstract class SqlQuery {
|
||||||
}
|
}
|
||||||
|
|
||||||
return resultSet.mappingToRowClass(
|
return resultSet.mappingToRowClass(
|
||||||
resultSet.needsOwnClass ? resultClassName : null, options);
|
_useResultClassName ? resultClassName : null, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ class QueryWriter {
|
||||||
case StructuredFromNestedColumn():
|
case StructuredFromNestedColumn():
|
||||||
final prefix = resultSet.nestedPrefixFor(argument.table);
|
final prefix = resultSet.nestedPrefixFor(argument.table);
|
||||||
_writeArgumentExpression(
|
_writeArgumentExpression(
|
||||||
argument,
|
argument.nestedType,
|
||||||
resultSet,
|
resultSet,
|
||||||
(sqlPrefix: prefix, isNullable: argument.nullable),
|
(sqlPrefix: prefix, isNullable: argument.nullable),
|
||||||
);
|
);
|
||||||
|
@ -251,8 +251,6 @@ class QueryWriter {
|
||||||
..write(', ');
|
..write(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
_emitter.write('}');
|
|
||||||
|
|
||||||
_emitter.write('})');
|
_emitter.write('})');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue