/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Relational/FuncUnitRowsIteratorScalar.cs
31 строка
880 B
Ivan Kozhin
Replace CommandHandler by IFuncUnit
29 дек 2023, 07:41
29 дек 2023, 07:41
6ad0b9d
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Data; using QueryCat.Backend.Core.Types; namespace QueryCat.Backend.Relational; internal sealed class FuncUnitRowsIteratorScalar(IRowsIterator rowsIterator, int columnIndex = 0) : IFuncUnit { private bool _isExecuted; private VariantValue _value = VariantValue.Null; /// <inheritdoc /> public DataType OutputType => rowsIterator.Columns[columnIndex].DataType; /// <inheritdoc /> public VariantValue Invoke() { if (!_isExecuted) { var hasData = rowsIterator.MoveNext(); if (hasData) { _value = rowsIterator.Current[columnIndex]; } _isExecuted = true; } return _value; } /// <inheritdoc /> public override string ToString() => $"{nameof(FuncUnitRowsIteratorScalar)}: {rowsIterator}, {columnIndex}"; }