[ 
https://issues.apache.org/jira/browse/IGNITE-24618?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Tupitsyn reassigned IGNITE-24618:
---------------------------------------

    Assignee: Pavel Tupitsyn

> .NET: LINQ: Constructor parameter count does not match column count, can't 
> emit row reader
> ------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-24618
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24618
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms, thin client
>    Affects Versions: 3.0
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Major
>              Labels: .NET, ignite-3
>
> {code}
> using var client = await IgniteClient.StartAsync(new 
> IgniteClientConfiguration("localhost:10942"));
> await client.Sql.ExecuteAsync(null, "CREATE TABLE IF NOT EXISTS FOO (ID INT 
> PRIMARY KEY, NAME VARCHAR)");
> var table = await client.Tables.GetTableAsync("FOO");
> var view = table!.GetRecordView<Rec>();
> var query = view.AsQueryable()
>     .Join(view.AsQueryable(), x => x.Id, x => x.Id, (x, y) => new { x, y });
> Console.WriteLine(query);
> Console.WriteLine(query.First());
> {code}
> The example above uses a self-join for simplicity, but the same error occurs 
> with two table join. The exception is cryptic:
> {code}
> System.InvalidOperationException : Constructor parameter count does not match 
> column count, can't emit row reader.
>    at 
> Apache.Ignite.Internal.Linq.ResultSelector.EmitConstructorReader[T](ConstructorInfo
>  ctorInfo, IReadOnlyList`1 columns, ResultSelectorOptions options) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/ResultSelector.cs:line
>  161
>    at 
> Apache.Ignite.Internal.Linq.ResultSelector.<>c__6`1.<Get>b__6_1(ResultSelectorCacheKey`1
>  k) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/ResultSelector.cs:line
>  78
>    at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, 
> Func`2 valueFactory)
>    at Apache.Ignite.Internal.Linq.ResultSelector.Get[T](IReadOnlyList`1 
> columns, Expression selectorExpression, ResultSelectorOptions options) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/ResultSelector.cs:line
>  76
>    at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.<>c__DisplayClass9_0`1.<ExecuteResultSetInternalAsync>b__0(IReadOnlyList`1
>  cols) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  135
>    at Apache.Ignite.Internal.Sql.ResultSet`1..ctor(ClientSocket socket, 
> PooledBuffer buf, RowReaderFactory`1 rowReaderFactory) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Sql/ResultSet.cs:line
>  76
>    at Apache.Ignite.Internal.Sql.Sql.ExecuteAsyncInternal[T](ITransaction 
> transaction, SqlStatement statement, RowReaderFactory`1 rowReaderFactory, 
> ICollection`1 args)
>    at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteResultSetInternalAsync[T](QueryModel
>  queryModel) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  132
>    at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingleInternalAsync[T](QueryModel
>  queryModel, ExecutionOptions options) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  152
>    at 
> Apache.Ignite.Internal.Linq.IgniteQueryExecutor.ExecuteSingle[T](QueryModel 
> queryModel, Boolean returnDefaultWhenEmpty) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryExecutor.cs:line
>  72
>    at 
> Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo.ExecuteSingleQueryModel[T](QueryModel
>  queryModel, IQueryExecutor executor)
>    at 
> Remotion.Linq.Clauses.StreamedData.StreamedSingleValueInfo.ExecuteQueryModel(QueryModel
>  queryModel, IQueryExecutor executor)
>    at Remotion.Linq.QueryModel.Execute(IQueryExecutor executor)
>    at Apache.Ignite.Internal.Linq.IgniteQueryProvider.Execute(Expression 
> expression) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryProvider.cs:line
>  162
>    at 
> Apache.Ignite.Internal.Linq.IgniteQueryProvider.Execute[TResult](Expression 
> expression) in 
> /home/pavel/w/ignite-3/modules/platforms/dotnet/Apache.Ignite/Internal/Linq/IgniteQueryProvider.cs:line
>  91
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to