diff --git a/extras/integration_tests/drift_testcases/build.yaml b/extras/integration_tests/drift_testcases/build.yaml index 9e6ddfa6..8dc08026 100644 --- a/extras/integration_tests/drift_testcases/build.yaml +++ b/extras/integration_tests/drift_testcases/build.yaml @@ -4,11 +4,20 @@ targets: drift_dev: options: override_hash_and_equals_in_result_sets: true + use_column_name_as_json_key_when_defined_in_moor_file: true generate_connect_constructor: true + compact_query_methods: true + write_from_json_string_constructor: true + raw_result_set_data: false + apply_converters_on_variables: true + generate_values_in_copy_with: true + named_parameters: false + new_sql_code_generation: true + scoped_dart_components: true sql: dialect: sqlite options: version: "3.37" modules: - json1 - - fts5 \ No newline at end of file + - fts5 diff --git a/extras/integration_tests/drift_testcases/lib/database/database.g.dart b/extras/integration_tests/drift_testcases/lib/database/database.g.dart index c5188b12..65e43c0c 100644 --- a/extras/integration_tests/drift_testcases/lib/database/database.g.dart +++ b/extras/integration_tests/drift_testcases/lib/database/database.g.dart @@ -93,6 +93,10 @@ class User extends DataClass implements Insertable { preferences: serializer.fromJson(json['preferences']), ); } + factory User.fromJsonString(String encodedJson, + {ValueSerializer? serializer}) => + User.fromJson(DataClass.parseJson(encodedJson) as Map, + serializer: serializer); @override Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; @@ -109,14 +113,15 @@ class User extends DataClass implements Insertable { {int? id, String? name, DateTime? birthDate, - Uint8List? profilePicture, - Preferences? preferences}) => + Value profilePicture = const Value.absent(), + Value preferences = const Value.absent()}) => User( id: id ?? this.id, name: name ?? this.name, birthDate: birthDate ?? this.birthDate, - profilePicture: profilePicture ?? this.profilePicture, - preferences: preferences ?? this.preferences, + profilePicture: + profilePicture.present ? profilePicture.value : this.profilePicture, + preferences: preferences.present ? preferences.value : this.preferences, ); @override String toString() { @@ -366,6 +371,11 @@ class Friendship extends DataClass implements Insertable { reallyGoodFriends: serializer.fromJson(json['reallyGoodFriends']), ); } + factory Friendship.fromJsonString(String encodedJson, + {ValueSerializer? serializer}) => + Friendship.fromJson( + DataClass.parseJson(encodedJson) as Map, + serializer: serializer); @override Map toJson({ValueSerializer? serializer}) { serializer ??= driftRuntimeOptions.defaultSerializer; @@ -549,7 +559,7 @@ abstract class _$Database extends GeneratedDatabase { late final $FriendshipsTable friendships = $FriendshipsTable(this); Selectable mostPopularUsers(int amount) { return customSelect( - 'SELECT * FROM users u ORDER BY (SELECT COUNT(*) FROM friendships WHERE first_user = u.id OR second_user = u.id) DESC LIMIT :amount', + 'SELECT * FROM users AS u ORDER BY (SELECT COUNT(*) FROM friendships WHERE first_user = u.id OR second_user = u.id) DESC LIMIT ?1', variables: [ Variable(amount) ], @@ -561,18 +571,18 @@ abstract class _$Database extends GeneratedDatabase { Selectable amountOfGoodFriends(int user) { return customSelect( - 'SELECT COUNT(*) FROM friendships f WHERE f.really_good_friends = 1 AND (f.first_user = :user OR f.second_user = :user)', + 'SELECT COUNT(*) AS _c0 FROM friendships AS f WHERE f.really_good_friends = 1 AND(f.first_user = ?1 OR f.second_user = ?1)', variables: [ Variable(user) ], readsFrom: { friendships, - }).map((QueryRow row) => row.read('COUNT(*)')); + }).map((QueryRow row) => row.read('_c0')); } Selectable friendshipsOf(int user) { return customSelect( - 'SELECT\n f.really_good_friends, "user"."id" AS "nested_0.id", "user"."name" AS "nested_0.name", "user"."birth_date" AS "nested_0.birth_date", "user"."profile_picture" AS "nested_0.profile_picture", "user"."preferences" AS "nested_0.preferences"\n FROM friendships f\n INNER JOIN users "user" ON "user".id IN (f.first_user, f.second_user) AND\n "user".id != :user\n WHERE (f.first_user = :user OR f.second_user = :user)', + 'SELECT f.really_good_friends,"user"."id" AS "nested_0.id", "user"."name" AS "nested_0.name", "user"."birth_date" AS "nested_0.birth_date", "user"."profile_picture" AS "nested_0.profile_picture", "user"."preferences" AS "nested_0.preferences" FROM friendships AS f INNER JOIN users AS user ON user.id IN (f.first_user, f.second_user) AND user.id != ?1 WHERE(f.first_user = ?1 OR f.second_user = ?1)', variables: [ Variable(user) ], @@ -588,15 +598,15 @@ abstract class _$Database extends GeneratedDatabase { } Selectable userCount() { - return customSelect('SELECT COUNT(id) FROM users', + return customSelect('SELECT COUNT(id) AS _c0 FROM users', variables: [], readsFrom: { users, - }).map((QueryRow row) => row.read('COUNT(id)')); + }).map((QueryRow row) => row.read('_c0')); } Selectable settingsFor(int user) { - return customSelect('SELECT preferences FROM users WHERE id = :user', + return customSelect('SELECT preferences FROM users WHERE id = ?1', variables: [ Variable(user) ], @@ -621,7 +631,7 @@ abstract class _$Database extends GeneratedDatabase { Future> returning(int var1, int var2, bool var3) { return customWriteReturning( - 'INSERT INTO friendships VALUES (?, ?, ?) RETURNING *;', + 'INSERT INTO friendships VALUES (?1, ?2, ?3) RETURNING *', variables: [ Variable(var1), Variable(var2),