/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Execution/ExecutionThreadUtils.cs
49 строк
1 KB
Ivan Kozhin
Add web server simple files serve support
29 дек 2023, 15:31
29 дек 2023, 15:31
e594cd1
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Data; using QueryCat.Backend.Core.Types; using QueryCat.Backend.Relational.Iterators; using QueryCat.Backend.Storage; namespace QueryCat.Backend.Execution; /// <summary> /// Utilities for <see cref="ExecutionThread" />. /// </summary> public static class ExecutionThreadUtils { /// <summary> /// Convert variant value to enumerable of rows. It analyzes the internal /// content of value and generates the correspond output. /// </summary> /// <param name="variantValue">Variant value.</param> /// <returns>Enumerable of rows.</returns> public static IRowsIterator ConvertToIterator(VariantValue variantValue) { var type = variantValue.GetInternalType(); if (type == DataType.Null) { return EmptyIterator.Instance; } if (type == DataType.Object) { var obj = variantValue.AsObject; // IRowsIterator. if (obj is IRowsIterator rowsIterator) { return rowsIterator; } // IRowsInput. else if (obj is IRowsInput rowsInput) { return new RowsInputIterator(rowsInput, autoOpen: true); } // IRowsOutput. else if (obj is IRowsOutput) { return new SingleValueRowsIterator(); } } return new SingleValueRowsIterator(variantValue); } }