select4<A, B, C, D> method

MssqlProjectedQuery<(A, B, C, D)> select4<A, B, C, D>(
  1. (MssqlExpression, MssqlExpression, MssqlExpression, MssqlExpression) select(
    1. TFields fields
    )
)

Four typed columns as a Dart record (A, B, C, D).

Implementation

MssqlProjectedQuery<(A, B, C, D)> select4<A, B, C, D>(
  (MssqlExpression, MssqlExpression, MssqlExpression, MssqlExpression)
  Function(TFields fields)
  select,
) {
  final t = select(fields);
  return this.select(
    MssqlProjection<(A, B, C, D)>(
      name: 'select4',
      columns: <MssqlProjectionColumn>[
        MssqlProjectionColumn('c0', t.$1),
        MssqlProjectionColumn('c1', t.$2),
        MssqlProjectionColumn('c2', t.$3),
        MssqlProjectionColumn('c3', t.$4),
      ],
      map: (row) => (
        MssqlProjection.decode<A>(
          row,
          0,
          projection: 'select4',
          column: 'c0',
          expression: t.$1,
        ),
        MssqlProjection.decode<B>(
          row,
          1,
          projection: 'select4',
          column: 'c1',
          expression: t.$2,
        ),
        MssqlProjection.decode<C>(
          row,
          2,
          projection: 'select4',
          column: 'c2',
          expression: t.$3,
        ),
        MssqlProjection.decode<D>(
          row,
          3,
          projection: 'select4',
          column: 'c3',
          expression: t.$4,
        ),
      ),
    ),
  );
}