Itgenclr003: The variable “$sparseArrayPool” of type “Invantive.Data.SparseArrayPool” is referenced from the scope “LambaExecutePSqlNoBatch”, but it is not defined

It seems new versions of Query Tool have lead to a regression.

Issue present in QueryTool 25.0.68, but working in 24.0.755.

This error is thrown when a using a transaction block.

itgenclr003: la variable '$sparseArrayPool' de type 'Invantive.Data.SparseArrayPool' est référencée à partir de l'étendue 'LambaExecutePSqlNoBatch', mais elle n'est pas définie.An unknown error occurred.

System.InvalidOperationException   à System.Linq.Expressions.Compiler.VariableBinder.Reference(ParameterExpression node, VariableStorageKind storage)   à System.Linq.Expressions.Compiler.VariableBinder.VisitParameter(ParameterExpression node)   à System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)   à System.Linq.Expressions.ExpressionVisitor.VisitArguments(IArgumentProvider nodes)   à System.Linq.Expressions.ExpressionVisitor.VisitMethodCall(MethodCallExpression node)   à System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)   à System.Linq.Expressions.ExpressionVisitor.VisitBinary(BinaryExpression node)   à System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)   à System.Linq.Expressions.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes)   à System.Linq.Expressions.Compiler.VariableBinder.VisitBlock(BlockExpression node)   à System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)   à System.Linq.Expressions.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes)   à System.Linq.Expressions.Compiler.VariableBinder.VisitBlock(BlockExpression node)   à System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)   à System.Linq.Expressions.ExpressionVisitor.Visit(ReadOnlyCollection`1 nodes)   à System.Linq.Expressions.Compiler.VariableBinder.VisitLambda[T](Expression`1 node)   à System.Linq.Expressions.Compiler.VariableBinder.Visit(Expression node)   à System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda, DebugInfoGenerator debugInfoGenerator)   à Invantive.Sql.V1.PSqlBlockNoBatchSeparatorStatementTree.OnExecute(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SparseArrayPool sparseArrayPool, ParameterList parameters, QueryObject additionalFilters, ExpressionParser expressionParser)   à Invantive.Sql.V1.QueryTree.Execute(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, ParameterList parameters, QueryObject additionalFilters, ExpressionParser expressionParser)   à Invantive.Sql.V1.QueryPlan.<>c__DisplayClass7_0.<.ctor>b__0()   à System.Lazy`1.CreateValue()--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   à System.Lazy`1.get_Value()   à Invantive.Sql.V1.QueryPlan.ForcePlan(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)   à Invantive.Sql.V1.QueryPlan.GetFields(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)   à Invantive.Sql.V1.QueryPlan.GetFieldCount(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep)   à Invantive.Data.QueryPlanCacheEntry.<>c__DisplayClass12_0.<.ctor>b__0(IQueryPlan )   à System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()   à System.Linq.Buffer`1..ctor(IEnumerable`1 source)   à System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)   à Invantive.Data.QueryPlanCacheEntry..ctor(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, String sqlStatement, IQueryPlan[] queryPlans, ParameterList parameters)   à Invantive.Sql.V1.SqlEngine.A(GlobalState , ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, QueryPlan[] , String , ParameterList parameters, ResultSetAuditInformation )   à Invantive.Data.ConnectionManager.ExecuteAndCombineQueryPlansV1(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, QueryPlan[] queryPlans, String sqlStatement, ParameterList parameters)   à Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, SqlExecutionStep sqlExecutionStep, String callSafeNameOverrule)--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   à Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, SqlExecutionStep sqlExecutionStep, String callSafeNameOverrule)   à Invantive.Data.ConnectionManager.b(GlobalState owner, ExecutionOptions , SqlExecutionStep , String actionSql, ParameterList , String )--- Fin de la trace de la pile à partir de l'emplacement précédent au niveau duquel l'exception a été levée ---   à System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()   à Invantive.Data.ConnectionManager.b(GlobalState owner, ExecutionOptions , SqlExecutionStep , String actionSql, ParameterList , String )   à Invantive.Producer.Windows.Forms.QueryToolResults.A(GlobalState owner, ExecutionOptions , IProgressNotifier , String , ParameterList bindVariables, Boolean , Boolean , Boolean , Boolean )   à Invantive.Producer.Windows.Forms.QueryToolResults.A(GlobalState , ExecutionOptions executionOptions, String , ParameterList )

How can the issue be reproduced?

I can share my script but in private since API keys are required. Please provide way to share it.

If possible try to reproduce it using the smallest amount of code possible.

When that requires no private key or other sensitive information: please add it here.

In case that smallest reproduction scenario requires sensitive information, please put it in a txt-file and send it to support@invantive.eu with referewnce “6174”.

The problem reproduces with:

create or replace table testsync001@inmemorystorage
as
--
-- Just create the table
--
select *
from   dual@datadictionary
where  1=0
;

--
-- Synchronize.
--
begin
  sync dual@datadictionary
  to   testsync001@inmemorystorage
  identified
  by   dummy_string
  ;
end

A change that is expected to fix the problem is included in release 25.0.92.

An improved version 25.0.96 is available for download at https://download.invantive.com as current release.

Please install and try again.

We confirm the issue is fixed with 25.0.95.

nb : 25.0.95 seems the right version number, not 25.0.96.

1 like

Dit topic is 3 dagen na het laatste antwoord automatisch gesloten. Nieuwe antwoorden zijn niet meer toegestaan.