derived method

Derived3<V0, V1, V2> derived({
  1. String? as,
})

The rows this projection returns, usable where a table is.

Pass as when a single query holds more than one derived table, so their names cannot collide.

Implementation

Derived3<V0, V1, V2> derived({String? as}) {
  final prepared = prepareDerived<(V0, V1, V2)>(this);
  return derivedTable<Derived3<V0, V1, V2>, (V0, V1, V2)>(
    as ?? defaultDerivedName(config),
    ($) => Derived3<V0, V1, V2>(
      $,
      ColumnType(
          derivedColumn<(V0, V1, V2), V0>($, prepared, 0, (r) => r.$1)),
      ColumnType(
          derivedColumn<(V0, V1, V2), V1>($, prepared, 1, (r) => r.$2)),
      ColumnType(
          derivedColumn<(V0, V1, V2), V2>($, prepared, 2, (r) => r.$3)),
    ),
    prepared.query,
  );
}