This is an automated email from the ASF dual-hosted git repository. ptupitsyn pushed a commit to branch ignite-27278 in repository https://gitbox.apache.org/repos/asf/ignite-3.git
commit 8afd38005c6d41d205f14d881060240f5083fb5a Author: Pavel Tupitsyn <[email protected]> AuthorDate: Tue Dec 23 13:00:10 2025 +0200 wip SQL --- .../dotnet/Apache.Ignite/Internal/Sql/ColumnMetadata.cs | 3 ++- modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ColumnMetadata.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ColumnMetadata.cs index 25390da864b..5294149dc89 100644 --- a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ColumnMetadata.cs +++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ColumnMetadata.cs @@ -18,6 +18,7 @@ namespace Apache.Ignite.Internal.Sql; using Ignite.Sql; +using Ignite.Table.Mapper; /// <summary> /// Column metadata. @@ -29,4 +30,4 @@ using Ignite.Sql; /// <param name="Nullable">Whether column is nullable.</param> /// <param name="Origin">Origin.</param> internal sealed record ColumnMetadata(string Name, ColumnType Type, int Precision, int Scale, bool Nullable, IColumnOrigin? Origin) - : IColumnMetadata; + : IColumnMetadata, IMapperColumn; diff --git a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs index 038b50f03f2..67afc62332e 100644 --- a/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs +++ b/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/Sql.cs @@ -33,6 +33,7 @@ namespace Apache.Ignite.Internal.Sql using Proto; using Proto.BinaryTuple; using Proto.MsgPack; + using Table; using Table.Serialization; using Transactions; @@ -86,7 +87,13 @@ namespace Apache.Ignite.Internal.Sql // TODO: Cache or avoid allocation? RowReaderFactory<T> rowReaderFactory = cols => { - return (IReadOnlyList<IColumnMetadata> list, ref BinaryTupleReader reader) => { return default(T)!; }; + return (IReadOnlyList<IColumnMetadata> list, ref BinaryTupleReader reader) => + { + var mapperCols = list.Cast<IMapperColumn>().ToList(); + + var mapperReader = new RowReader(ref reader, mapperCols); + return mapper.Read(ref mapperReader, new MapperSchema(mapperCols)); + }; }; return await ExecuteAsyncInternal(
