Home > Back-end >  Flutter Drift - parameters prohibited in CHECK constraints
Flutter Drift - parameters prohibited in CHECK constraints

Time:07-24

I'm trying to use the drift library (renamed from moor) ,but it's unable to create tables because of this error:

SqliteException(1): parameters prohibited in CHECK constraints, SQL logic error (code 1)
  CREATE TABLE IF NOT EXISTS enterprise (name TEXT NOT NULL CHECK(LENGTH(name) <= ?), ..other fields);

This is the table class causing the error:

class Enterprise extends Table {

  TextColumn get name =>
      text().check(name.length.isSmallerOrEqualValue(maxNameLength))();

  // ...other fields
}

The error goes away if I remove the check. Could someone explain why the check isn't working ?

CodePudding user response:

Turns out it's a bug with drift. This is the workaround as suggested by the author of drift, and will be fixed in a future release.

Replace

check(name.length.isSmallerOrEqualValue(maxNameLength))

With this:

check(name.length.isSmallerOrEqual(Constant(maxNameLength)))
  • Related