drift icon indicating copy to clipboard operation
drift copied to clipboard

Missing members on filtering reference columns

Open jackd opened this issue 9 months ago • 2 comments

Columns with references have corresponding filters with fewer methods.

class User extends Table {
  late final id = integer().autoIncrement()();
  late final name = text()();
}

class Posts extends Table {
  late final id = integer().autoIncrement()();
  late final userId = integer()();
  late final userIdWithReference = integer().references(User, #id)();
}

@DriftDatabase(tables: [User, Posts])
class AppDatabase extends _$AppDatabase {
  void foo() {
    managers.posts.filter((p) => p.userId.equals(1)); // works fine
    
    managers.posts.filter((p) => p.userIdWithReference.equals(1));
    // The method 'equals' isn't defined for the type '$$UserTableFilterComposer'.
    // Try correcting the name to the name of an existing method, or defining a method named 'equals'.
  }
}

Expected behaviour: adding a reference shouldn't result in less functionality.

jackd avatar Feb 11 '25 04:02 jackd

@dickermoshe I wonder if Composers for references should implement ColumnFilters for the local column?

simolus3 avatar Feb 12 '25 22:02 simolus3

Smart idea. I'll keep that in mind for V3

dickermoshe avatar Feb 13 '25 03:02 dickermoshe