eval method

  1. @override
Object? eval(
  1. Map<String, Object?> row
)
override

Evaluate this expression in the context of row (column name -> value).

Implementation

@override
Object? eval(Map<String, Object?> row) {
  if (table != null) {
    final qualified = '$table.$name';
    if (row.containsKey(qualified)) return row[qualified];
    // Case-insensitive fallback for keyword-derived names like NEW.col.
    final upper = qualified.toUpperCase();
    final lower = qualified.toLowerCase();
    if (row.containsKey(upper)) return row[upper];
    if (row.containsKey(lower)) return row[lower];
  }
  if (row.containsKey(name)) return row[name];
  final upper = name.toUpperCase();
  final lower = name.toLowerCase();
  if (row.containsKey(upper)) return row[upper];
  if (row.containsKey(lower)) return row[lower];
  throw StateError(
    'Unknown column: ${table == null ? name : '$table.$name'}',
  );
}