[JBoss JIRA] (TEIID-5285) Add high-level feature for redirection of updates
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5285?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5285:
---------------------------------------
Here is a proposal to redirect updates (with no later resolution/merge to the underlying source) down to row level. Given tbl with a primary key, we need to create tbl_modifications (jdg, pg?) that contains the same columns (and potentially indexes) with an additional state column. State could be one of three values (created, deleted, updated), which could just be numeric values as we don't have an enum concept.
A view will be created as the new access point for tbl:
{code}
SELECT * from tbl left outer join tbl_modifications on (pk predicates) where tbl_modifications.state is null
union all
SELECT col, ... from tbl_modifications where state <> deleted
{code}
An issue with the above is if a created row end is also then populated in the actual store. We can leave it as a TODO to resolve that.
Performance could be an issue as any joins or operations performed above the view would likely need to have federated processing as the optimizer would not generally be able to remove the union or the left outer join.
The update triggers on the view would look like:
{code}
create trigger on ... instead of insert
begin atomic
merge into tbl_modifications (col, ..., state) values (new.col, ..., created);
end
{code}
{code}
create trigger on ... instead of delete
begin atomic
merge into tbl_modifications (col, ..., state) values (null, ..., deleted);
end
{code}
An enhancement for delete is to differentiate between rows that were created and those that were updated - the former can be deleted completely.
It would be easy to have:
{code}
create trigger on ... instead of update
begin atomic
merge into tbl_modifications (col, ..., state) values (new.col, .., updated);
end
{code}
However that update is too simplistic as a modification of the primary key would need to be treated as delete and a create.
[~rareddy] does something based upon the above seem workable?
> Add high-level feature for redirection of updates
> -------------------------------------------------
>
> Key: TEIID-5285
> URL: https://issues.jboss.org/browse/TEIID-5285
> Project: Teiid
> Issue Type: Feature Request
> Components: Query Engine, Teiid Spring Boot
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 10.3
>
>
> In microservices testing it is desirable to test against production/live data but not commit any updates. We should offer a simple solution that can defined by extension metadata and enabled/disabled by a feature flag. We may need to make simplifying assumptions about the scope (per session, per application, etc.) and durability of the updates.
> Under the covers this will be achieved by using views, update triggers, and a store for the updates and when not enabled the expectation is that all operations should pass through. However the application will be limited to using Teiid SQL and will be required to use the Teiid or pg driver, or Teiid spring boot.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5265) AssertionError: Batch not found in storage
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5265?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5265:
---------------------------------------
Sounds positive. I'll include this in 10.1.3 which will be posted next week.
> AssertionError: Batch not found in storage
> ------------------------------------------
>
> Key: TEIID-5265
> URL: https://issues.jboss.org/browse/TEIID-5265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.1
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 10.2, 10.1.3
>
>
> While executing the following query:
> {code:sql}
> insert into rep149_cci(PatientID,age,Orig,Upd,agepointsO,agepointsU,AMI,CHF,PVD,CVD,DEM,CPD,PUD,MLD,SLD,DNC,DWC,HEM,RED,MAL,MST,HIV)
> select cci.patientid as patientid,cci.age as age,cci.orig as orig,cci.upd as upd,cci.agepointso as agepointso,cci.agepointsu as agepointsu,
> cci.charlson_ami as ami,cci.charlson_chf as chf,cci.charlson_pvd as pvd,cci.charlson_cvd as cvd,cci.charlson_dem as dem,cci.charlson_cpd as cpd,cci.charlson_pud as pud,
> cci.charlson_mld as mld,cci.charlson_sld as sld,cci.charlson_dnc as dnc,cci.charlson_dwc as dwc,cci.charlson_hem as hem,cci.charlson_red as red,cci.charlson_mal as mal,
> cci.charlson_mst as mst,cci.charlson_hiv as hiv
> from rep149_cohort gd
> join izisviews.pr_calculate_cci cci on
> cci.patientid_in = gd.patientid;
> {code}
> rep149_cci is defined as
> {code:sql}
> create foreign temporary table rep149_cci(
> PatientID integer not null,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PVD integer,
> CVD integer,
> DEM integer,
> CPD integer,
> PUD integer,
> MLD integer,
> SLD integer,
> DNC integer,
> DWC integer,
> HEM integer,
> RED integer,
> MAL integer,
> MST integer,
> HIV integer,
> primary key(patientid)
> )OPTIONS (UPDATABLE true) on tmptables;
> {code}
> pr_calculate_cci is a virtual procedure. (I can't however share this code for confidentiality reasons).
> {code:sql}
> CREATE VIRTUAL PROCEDURE pr_calculate_cci(patientid_in integer)
> RETURNS (
> PatientID integer,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PherVascDis integer,
> CerebVascDis integer,
> Dement integer,
> ChrPulmDis integer,
> PeptUlcer integer,
> MildLivDis integer,
> SevLivDis integer,
> DiabetesNoCompl integer,
> DiabetesWithCompl integer,
> HemiPara integer,
> RenalDis integer,
> Malign integer,
> Metastase integer,
> HIV_AIDS integer
> )
> AS
> BEGIN
> ...
> END
> {code}
> There are a few error reports like this one:
> 2018-02-23 08:33:05,478 ERROR [org.teiid.BUFFER_MGR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30001 Max block number exceeded by object 1,366,497 from group 5,068,016. It is a Batch of 1797 rows of [Ljava.lang.String;@10953478. The estimated size was 172,528, but the actual size was 14,410. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
> The final stack trace is:
> 2018-02-23 08:33:05,539 ERROR [org.teiid.PROCESSOR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30019 Unexpected exception for request mh0bsTIbs7qY.90: java.lang.AssertionError: Batch not found in storage 5067771
> at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
> at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
> at org.teiid.common.buffer.SPage.search(SPage.java:135)
> at org.teiid.common.buffer.STree.find(STree.java:247)
> at org.teiid.common.buffer.STree.insert(STree.java:295)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.saveValues(WindowFunctionProjectNode.java:419)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.buildResults(WindowFunctionProjectNode.java:380)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.nextBatchDirect(WindowFunctionProjectNode.java:229)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirectInternal(UnionAllNode.java:165)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:138)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
> at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:207)
> at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:154)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5265) AssertionError: Batch not found in storage
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5265?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-5265:
----------------------------------
Fix Version/s: 10.1.3
> AssertionError: Batch not found in storage
> ------------------------------------------
>
> Key: TEIID-5265
> URL: https://issues.jboss.org/browse/TEIID-5265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.1
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 10.2, 10.1.3
>
>
> While executing the following query:
> {code:sql}
> insert into rep149_cci(PatientID,age,Orig,Upd,agepointsO,agepointsU,AMI,CHF,PVD,CVD,DEM,CPD,PUD,MLD,SLD,DNC,DWC,HEM,RED,MAL,MST,HIV)
> select cci.patientid as patientid,cci.age as age,cci.orig as orig,cci.upd as upd,cci.agepointso as agepointso,cci.agepointsu as agepointsu,
> cci.charlson_ami as ami,cci.charlson_chf as chf,cci.charlson_pvd as pvd,cci.charlson_cvd as cvd,cci.charlson_dem as dem,cci.charlson_cpd as cpd,cci.charlson_pud as pud,
> cci.charlson_mld as mld,cci.charlson_sld as sld,cci.charlson_dnc as dnc,cci.charlson_dwc as dwc,cci.charlson_hem as hem,cci.charlson_red as red,cci.charlson_mal as mal,
> cci.charlson_mst as mst,cci.charlson_hiv as hiv
> from rep149_cohort gd
> join izisviews.pr_calculate_cci cci on
> cci.patientid_in = gd.patientid;
> {code}
> rep149_cci is defined as
> {code:sql}
> create foreign temporary table rep149_cci(
> PatientID integer not null,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PVD integer,
> CVD integer,
> DEM integer,
> CPD integer,
> PUD integer,
> MLD integer,
> SLD integer,
> DNC integer,
> DWC integer,
> HEM integer,
> RED integer,
> MAL integer,
> MST integer,
> HIV integer,
> primary key(patientid)
> )OPTIONS (UPDATABLE true) on tmptables;
> {code}
> pr_calculate_cci is a virtual procedure. (I can't however share this code for confidentiality reasons).
> {code:sql}
> CREATE VIRTUAL PROCEDURE pr_calculate_cci(patientid_in integer)
> RETURNS (
> PatientID integer,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PherVascDis integer,
> CerebVascDis integer,
> Dement integer,
> ChrPulmDis integer,
> PeptUlcer integer,
> MildLivDis integer,
> SevLivDis integer,
> DiabetesNoCompl integer,
> DiabetesWithCompl integer,
> HemiPara integer,
> RenalDis integer,
> Malign integer,
> Metastase integer,
> HIV_AIDS integer
> )
> AS
> BEGIN
> ...
> END
> {code}
> There are a few error reports like this one:
> 2018-02-23 08:33:05,478 ERROR [org.teiid.BUFFER_MGR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30001 Max block number exceeded by object 1,366,497 from group 5,068,016. It is a Batch of 1797 rows of [Ljava.lang.String;@10953478. The estimated size was 172,528, but the actual size was 14,410. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
> The final stack trace is:
> 2018-02-23 08:33:05,539 ERROR [org.teiid.PROCESSOR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30019 Unexpected exception for request mh0bsTIbs7qY.90: java.lang.AssertionError: Batch not found in storage 5067771
> at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
> at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
> at org.teiid.common.buffer.SPage.search(SPage.java:135)
> at org.teiid.common.buffer.STree.find(STree.java:247)
> at org.teiid.common.buffer.STree.insert(STree.java:295)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.saveValues(WindowFunctionProjectNode.java:419)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.buildResults(WindowFunctionProjectNode.java:380)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.nextBatchDirect(WindowFunctionProjectNode.java:229)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirectInternal(UnionAllNode.java:165)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:138)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
> at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:207)
> at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:154)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5265) AssertionError: Batch not found in storage
by Bram Gadeyne (JIRA)
[ https://issues.jboss.org/browse/TEIID-5265?page=com.atlassian.jira.plugin... ]
Bram Gadeyne commented on TEIID-5265:
-------------------------------------
[~shawkins],
I just tested this new case on 10.2 an there the error did not occur.
> AssertionError: Batch not found in storage
> ------------------------------------------
>
> Key: TEIID-5265
> URL: https://issues.jboss.org/browse/TEIID-5265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.1
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 10.2
>
>
> While executing the following query:
> {code:sql}
> insert into rep149_cci(PatientID,age,Orig,Upd,agepointsO,agepointsU,AMI,CHF,PVD,CVD,DEM,CPD,PUD,MLD,SLD,DNC,DWC,HEM,RED,MAL,MST,HIV)
> select cci.patientid as patientid,cci.age as age,cci.orig as orig,cci.upd as upd,cci.agepointso as agepointso,cci.agepointsu as agepointsu,
> cci.charlson_ami as ami,cci.charlson_chf as chf,cci.charlson_pvd as pvd,cci.charlson_cvd as cvd,cci.charlson_dem as dem,cci.charlson_cpd as cpd,cci.charlson_pud as pud,
> cci.charlson_mld as mld,cci.charlson_sld as sld,cci.charlson_dnc as dnc,cci.charlson_dwc as dwc,cci.charlson_hem as hem,cci.charlson_red as red,cci.charlson_mal as mal,
> cci.charlson_mst as mst,cci.charlson_hiv as hiv
> from rep149_cohort gd
> join izisviews.pr_calculate_cci cci on
> cci.patientid_in = gd.patientid;
> {code}
> rep149_cci is defined as
> {code:sql}
> create foreign temporary table rep149_cci(
> PatientID integer not null,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PVD integer,
> CVD integer,
> DEM integer,
> CPD integer,
> PUD integer,
> MLD integer,
> SLD integer,
> DNC integer,
> DWC integer,
> HEM integer,
> RED integer,
> MAL integer,
> MST integer,
> HIV integer,
> primary key(patientid)
> )OPTIONS (UPDATABLE true) on tmptables;
> {code}
> pr_calculate_cci is a virtual procedure. (I can't however share this code for confidentiality reasons).
> {code:sql}
> CREATE VIRTUAL PROCEDURE pr_calculate_cci(patientid_in integer)
> RETURNS (
> PatientID integer,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PherVascDis integer,
> CerebVascDis integer,
> Dement integer,
> ChrPulmDis integer,
> PeptUlcer integer,
> MildLivDis integer,
> SevLivDis integer,
> DiabetesNoCompl integer,
> DiabetesWithCompl integer,
> HemiPara integer,
> RenalDis integer,
> Malign integer,
> Metastase integer,
> HIV_AIDS integer
> )
> AS
> BEGIN
> ...
> END
> {code}
> There are a few error reports like this one:
> 2018-02-23 08:33:05,478 ERROR [org.teiid.BUFFER_MGR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30001 Max block number exceeded by object 1,366,497 from group 5,068,016. It is a Batch of 1797 rows of [Ljava.lang.String;@10953478. The estimated size was 172,528, but the actual size was 14,410. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
> The final stack trace is:
> 2018-02-23 08:33:05,539 ERROR [org.teiid.PROCESSOR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30019 Unexpected exception for request mh0bsTIbs7qY.90: java.lang.AssertionError: Batch not found in storage 5067771
> at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
> at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
> at org.teiid.common.buffer.SPage.search(SPage.java:135)
> at org.teiid.common.buffer.STree.find(STree.java:247)
> at org.teiid.common.buffer.STree.insert(STree.java:295)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.saveValues(WindowFunctionProjectNode.java:419)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.buildResults(WindowFunctionProjectNode.java:380)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.nextBatchDirect(WindowFunctionProjectNode.java:229)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirectInternal(UnionAllNode.java:165)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:138)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
> at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:207)
> at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:154)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5265) AssertionError: Batch not found in storage
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5265?page=com.atlassian.jira.plugin... ]
Steven Hawkins commented on TEIID-5265:
---------------------------------------
This change is just in 10.2 for now. If it seems to address the issue, I'll pull it back to fix releases.
> AssertionError: Batch not found in storage
> ------------------------------------------
>
> Key: TEIID-5265
> URL: https://issues.jboss.org/browse/TEIID-5265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.1
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 10.2
>
>
> While executing the following query:
> {code:sql}
> insert into rep149_cci(PatientID,age,Orig,Upd,agepointsO,agepointsU,AMI,CHF,PVD,CVD,DEM,CPD,PUD,MLD,SLD,DNC,DWC,HEM,RED,MAL,MST,HIV)
> select cci.patientid as patientid,cci.age as age,cci.orig as orig,cci.upd as upd,cci.agepointso as agepointso,cci.agepointsu as agepointsu,
> cci.charlson_ami as ami,cci.charlson_chf as chf,cci.charlson_pvd as pvd,cci.charlson_cvd as cvd,cci.charlson_dem as dem,cci.charlson_cpd as cpd,cci.charlson_pud as pud,
> cci.charlson_mld as mld,cci.charlson_sld as sld,cci.charlson_dnc as dnc,cci.charlson_dwc as dwc,cci.charlson_hem as hem,cci.charlson_red as red,cci.charlson_mal as mal,
> cci.charlson_mst as mst,cci.charlson_hiv as hiv
> from rep149_cohort gd
> join izisviews.pr_calculate_cci cci on
> cci.patientid_in = gd.patientid;
> {code}
> rep149_cci is defined as
> {code:sql}
> create foreign temporary table rep149_cci(
> PatientID integer not null,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PVD integer,
> CVD integer,
> DEM integer,
> CPD integer,
> PUD integer,
> MLD integer,
> SLD integer,
> DNC integer,
> DWC integer,
> HEM integer,
> RED integer,
> MAL integer,
> MST integer,
> HIV integer,
> primary key(patientid)
> )OPTIONS (UPDATABLE true) on tmptables;
> {code}
> pr_calculate_cci is a virtual procedure. (I can't however share this code for confidentiality reasons).
> {code:sql}
> CREATE VIRTUAL PROCEDURE pr_calculate_cci(patientid_in integer)
> RETURNS (
> PatientID integer,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PherVascDis integer,
> CerebVascDis integer,
> Dement integer,
> ChrPulmDis integer,
> PeptUlcer integer,
> MildLivDis integer,
> SevLivDis integer,
> DiabetesNoCompl integer,
> DiabetesWithCompl integer,
> HemiPara integer,
> RenalDis integer,
> Malign integer,
> Metastase integer,
> HIV_AIDS integer
> )
> AS
> BEGIN
> ...
> END
> {code}
> There are a few error reports like this one:
> 2018-02-23 08:33:05,478 ERROR [org.teiid.BUFFER_MGR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30001 Max block number exceeded by object 1,366,497 from group 5,068,016. It is a Batch of 1797 rows of [Ljava.lang.String;@10953478. The estimated size was 172,528, but the actual size was 14,410. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
> The final stack trace is:
> 2018-02-23 08:33:05,539 ERROR [org.teiid.PROCESSOR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30019 Unexpected exception for request mh0bsTIbs7qY.90: java.lang.AssertionError: Batch not found in storage 5067771
> at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
> at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
> at org.teiid.common.buffer.SPage.search(SPage.java:135)
> at org.teiid.common.buffer.STree.find(STree.java:247)
> at org.teiid.common.buffer.STree.insert(STree.java:295)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.saveValues(WindowFunctionProjectNode.java:419)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.buildResults(WindowFunctionProjectNode.java:380)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.nextBatchDirect(WindowFunctionProjectNode.java:229)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirectInternal(UnionAllNode.java:165)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:138)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
> at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:207)
> at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:154)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5265) AssertionError: Batch not found in storage
by Bram Gadeyne (JIRA)
[ https://issues.jboss.org/browse/TEIID-5265?page=com.atlassian.jira.plugin... ]
Bram Gadeyne edited comment on TEIID-5265 at 4/12/18 7:19 AM:
--------------------------------------------------------------
[~shawkins],
Should this have also been fixed in 10.1.2 because I've encountered a similar exception now.
2018-04-12 13:09:10,310 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,939,978. It is a Batch of 247 rows of [Ljava.lang.String;@66b75174. The estimated size was 109,190, but the actual size was 7,207. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,317 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,013. It is a Batch of 230 rows of [Ljava.lang.String;@66b75174. The estimated size was 99,248, but the actual size was 7,207. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,336 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,225. It is a Batch of 131 rows of [Ljava.lang.String;@66b75174. The estimated size was 57,866, but the actual size was 4,120. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,346 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,343. It is a Batch of 189 rows of [Ljava.lang.String;@66b75174. The estimated size was 82,600, but the actual size was 5,149. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,367 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,550. It is a Batch of 221 rows of [Ljava.lang.String;@66b75174. The estimated size was 96,816, but the actual size was 6,178. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,389 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,797. It is a Batch of 144 rows of [Ljava.lang.String;@66b75174. The estimated size was 63,079, but the actual size was 4,120. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,395 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,863. It is a Batch of 158 rows of [Ljava.lang.String;@66b75174. The estimated size was 69,410, but the actual size was 4,120. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,396 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,883. It is a Batch of 141 rows of [Ljava.lang.String;@66b75174. The estimated size was 61,476, but the actual size was 4,120. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,402 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,940,955. It is a Batch of 167 rows of [Ljava.lang.String;@66b75174. The estimated size was 66,744, but the actual size was 5,149. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,406 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,941,002. It is a Batch of 198 rows of [Ljava.lang.String;@66b75174. The estimated size was 82,736, but the actual size was 6,178. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,416 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,941,115. It is a Batch of 151 rows of [Ljava.lang.String;@66b75174. The estimated size was 66,607, but the actual size was 4,120. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:10,424 ERROR [org.teiid.BUFFER_MGR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30001 Max block number exceeded by object 2,130 from group 1,941,210. It is a Batch of 170 rows of [Ljava.lang.String;@66b75174. The estimated size was 72,781, but the actual size was 5,149. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
2018-04-12 13:09:11,899 INFO [org.teiid.COMMAND_LOG] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE ERROR USER COMMAND: endTime=2018-04-12 13:09:11.899 requestID=79SKbczz2pkE.25 txID=Local transaction (delegate=TransactionImple < ac, BasicAction: 0:ffff7f000101:-4f775f74:5acdc46b:2308 status: ActionStatus.RUNNING >, owner=Local transaction context for provider JBoss JTA transaction provider) sessionID=79SKbczz2pkE principal=bram vdbName=vdb vdbVersion=1.0.3 finalRowCount=null
2018-04-12 13:09:11,899 ERROR [org.teiid.PROCESSOR] (Worker104_QueryProcessorQueue18940) 79SKbczz2pkE TEIID30019 Unexpected exception for request 79SKbczz2pkE.25: java.lang.AssertionError: Batch not found in storage 1940013
at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
at org.teiid.common.buffer.SPage.search(SPage.java:135)
at org.teiid.common.buffer.STree.find(STree.java:247)
at org.teiid.common.buffer.STree.find(STree.java:274)
at org.teiid.query.processor.relational.GroupingNode.groupSortPhase(GroupingNode.java:504)
at org.teiid.query.processor.relational.GroupingNode.nextBatchDirect(GroupingNode.java:379)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:142)
at org.teiid.query.processor.relational.SourceState.getTupleBuffer(SourceState.java:244)
at org.teiid.query.processor.relational.EnhancedSortMergeJoinStrategy.loadLeft(EnhancedSortMergeJoinStrategy.java:227)
at org.teiid.query.processor.relational.JoinNode.nextBatchDirectInternal(JoinNode.java:228)
at org.teiid.query.processor.relational.JoinNode.nextBatchDirect(JoinNode.java:200)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at org.teiid.query.processor.relational.ProjectIntoNode.nextBatchDirect(ProjectIntoNode.java:140)
at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:141)
at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:148)
at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:111)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:142)
at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:480)
at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:350)
at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47)
at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:276)
at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
was (Author: gadeyne.bram):
[~shawkins],
Should this have also been fixed in 10.1.2 because I've encountered a similar exception now.
> AssertionError: Batch not found in storage
> ------------------------------------------
>
> Key: TEIID-5265
> URL: https://issues.jboss.org/browse/TEIID-5265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.1
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 10.2
>
>
> While executing the following query:
> {code:sql}
> insert into rep149_cci(PatientID,age,Orig,Upd,agepointsO,agepointsU,AMI,CHF,PVD,CVD,DEM,CPD,PUD,MLD,SLD,DNC,DWC,HEM,RED,MAL,MST,HIV)
> select cci.patientid as patientid,cci.age as age,cci.orig as orig,cci.upd as upd,cci.agepointso as agepointso,cci.agepointsu as agepointsu,
> cci.charlson_ami as ami,cci.charlson_chf as chf,cci.charlson_pvd as pvd,cci.charlson_cvd as cvd,cci.charlson_dem as dem,cci.charlson_cpd as cpd,cci.charlson_pud as pud,
> cci.charlson_mld as mld,cci.charlson_sld as sld,cci.charlson_dnc as dnc,cci.charlson_dwc as dwc,cci.charlson_hem as hem,cci.charlson_red as red,cci.charlson_mal as mal,
> cci.charlson_mst as mst,cci.charlson_hiv as hiv
> from rep149_cohort gd
> join izisviews.pr_calculate_cci cci on
> cci.patientid_in = gd.patientid;
> {code}
> rep149_cci is defined as
> {code:sql}
> create foreign temporary table rep149_cci(
> PatientID integer not null,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PVD integer,
> CVD integer,
> DEM integer,
> CPD integer,
> PUD integer,
> MLD integer,
> SLD integer,
> DNC integer,
> DWC integer,
> HEM integer,
> RED integer,
> MAL integer,
> MST integer,
> HIV integer,
> primary key(patientid)
> )OPTIONS (UPDATABLE true) on tmptables;
> {code}
> pr_calculate_cci is a virtual procedure. (I can't however share this code for confidentiality reasons).
> {code:sql}
> CREATE VIRTUAL PROCEDURE pr_calculate_cci(patientid_in integer)
> RETURNS (
> PatientID integer,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PherVascDis integer,
> CerebVascDis integer,
> Dement integer,
> ChrPulmDis integer,
> PeptUlcer integer,
> MildLivDis integer,
> SevLivDis integer,
> DiabetesNoCompl integer,
> DiabetesWithCompl integer,
> HemiPara integer,
> RenalDis integer,
> Malign integer,
> Metastase integer,
> HIV_AIDS integer
> )
> AS
> BEGIN
> ...
> END
> {code}
> There are a few error reports like this one:
> 2018-02-23 08:33:05,478 ERROR [org.teiid.BUFFER_MGR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30001 Max block number exceeded by object 1,366,497 from group 5,068,016. It is a Batch of 1797 rows of [Ljava.lang.String;@10953478. The estimated size was 172,528, but the actual size was 14,410. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
> The final stack trace is:
> 2018-02-23 08:33:05,539 ERROR [org.teiid.PROCESSOR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30019 Unexpected exception for request mh0bsTIbs7qY.90: java.lang.AssertionError: Batch not found in storage 5067771
> at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
> at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
> at org.teiid.common.buffer.SPage.search(SPage.java:135)
> at org.teiid.common.buffer.STree.find(STree.java:247)
> at org.teiid.common.buffer.STree.insert(STree.java:295)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.saveValues(WindowFunctionProjectNode.java:419)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.buildResults(WindowFunctionProjectNode.java:380)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.nextBatchDirect(WindowFunctionProjectNode.java:229)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirectInternal(UnionAllNode.java:165)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:138)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
> at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:207)
> at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:154)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5265) AssertionError: Batch not found in storage
by Bram Gadeyne (JIRA)
[ https://issues.jboss.org/browse/TEIID-5265?page=com.atlassian.jira.plugin... ]
Bram Gadeyne commented on TEIID-5265:
-------------------------------------
[~shawkins],
Should this have also been fixed in 10.1.2 because I've encountered a similar exception now.
> AssertionError: Batch not found in storage
> ------------------------------------------
>
> Key: TEIID-5265
> URL: https://issues.jboss.org/browse/TEIID-5265
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 10.1
> Reporter: Bram Gadeyne
> Assignee: Steven Hawkins
> Fix For: 10.2
>
>
> While executing the following query:
> {code:sql}
> insert into rep149_cci(PatientID,age,Orig,Upd,agepointsO,agepointsU,AMI,CHF,PVD,CVD,DEM,CPD,PUD,MLD,SLD,DNC,DWC,HEM,RED,MAL,MST,HIV)
> select cci.patientid as patientid,cci.age as age,cci.orig as orig,cci.upd as upd,cci.agepointso as agepointso,cci.agepointsu as agepointsu,
> cci.charlson_ami as ami,cci.charlson_chf as chf,cci.charlson_pvd as pvd,cci.charlson_cvd as cvd,cci.charlson_dem as dem,cci.charlson_cpd as cpd,cci.charlson_pud as pud,
> cci.charlson_mld as mld,cci.charlson_sld as sld,cci.charlson_dnc as dnc,cci.charlson_dwc as dwc,cci.charlson_hem as hem,cci.charlson_red as red,cci.charlson_mal as mal,
> cci.charlson_mst as mst,cci.charlson_hiv as hiv
> from rep149_cohort gd
> join izisviews.pr_calculate_cci cci on
> cci.patientid_in = gd.patientid;
> {code}
> rep149_cci is defined as
> {code:sql}
> create foreign temporary table rep149_cci(
> PatientID integer not null,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PVD integer,
> CVD integer,
> DEM integer,
> CPD integer,
> PUD integer,
> MLD integer,
> SLD integer,
> DNC integer,
> DWC integer,
> HEM integer,
> RED integer,
> MAL integer,
> MST integer,
> HIV integer,
> primary key(patientid)
> )OPTIONS (UPDATABLE true) on tmptables;
> {code}
> pr_calculate_cci is a virtual procedure. (I can't however share this code for confidentiality reasons).
> {code:sql}
> CREATE VIRTUAL PROCEDURE pr_calculate_cci(patientid_in integer)
> RETURNS (
> PatientID integer,
> age bigdecimal,
> Orig long,
> Upd long,
> agepointsO integer,
> agepointsU integer,
> AMI integer,
> CHF integer,
> PherVascDis integer,
> CerebVascDis integer,
> Dement integer,
> ChrPulmDis integer,
> PeptUlcer integer,
> MildLivDis integer,
> SevLivDis integer,
> DiabetesNoCompl integer,
> DiabetesWithCompl integer,
> HemiPara integer,
> RenalDis integer,
> Malign integer,
> Metastase integer,
> HIV_AIDS integer
> )
> AS
> BEGIN
> ...
> END
> {code}
> There are a few error reports like this one:
> 2018-02-23 08:33:05,478 ERROR [org.teiid.BUFFER_MGR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30001 Max block number exceeded by object 1,366,497 from group 5,068,016. It is a Batch of 1797 rows of [Ljava.lang.String;@10953478. The estimated size was 172,528, but the actual size was 14,410. Increase the maxStorageObjectSize to support larger storage objects. Alternatively you could make the processor batch size smaller.
> The final stack trace is:
> 2018-02-23 08:33:05,539 ERROR [org.teiid.PROCESSOR] (Worker291_QueryProcessorQueue571476) mh0bsTIbs7qY TEIID30019 Unexpected exception for request mh0bsTIbs7qY.90: java.lang.AssertionError: Batch not found in storage 5067771
> at org.teiid.common.buffer.impl.BufferManagerImpl$BatchManagerImpl.getBatch(BufferManagerImpl.java:382)
> at org.teiid.common.buffer.SPage.getValues(SPage.java:234)
> at org.teiid.common.buffer.SPage.search(SPage.java:135)
> at org.teiid.common.buffer.STree.find(STree.java:247)
> at org.teiid.common.buffer.STree.insert(STree.java:295)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.saveValues(WindowFunctionProjectNode.java:419)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.buildResults(WindowFunctionProjectNode.java:380)
> at org.teiid.query.processor.relational.WindowFunctionProjectNode.nextBatchDirect(WindowFunctionProjectNode.java:229)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.ProjectNode.nextBatchDirect(ProjectNode.java:146)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirectInternal(UnionAllNode.java:165)
> at org.teiid.query.processor.relational.UnionAllNode.nextBatchDirect(UnionAllNode.java:138)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.relational.SelectNode.nextBatchDirect(SelectNode.java:100)
> at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:277)
> at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:160)
> at org.teiid.query.processor.relational.SourceState.prefetch(SourceState.java:207)
> at org.teiid.query.processor.relational.SourceState.rowCountLE(SourceState.java:154)
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5313) Oracle translator issue with mixing string types and general issues with non-ascii strings
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5313?page=com.atlassian.jira.plugin... ]
Steven Hawkins resolved TEIID-5313.
-----------------------------------
Resolution: Done
Added another commit to remove an errant assertion, address binding behavior, and correct conversion logic for sybase/sqlserver.
> Oracle translator issue with mixing string types and general issues with non-ascii strings
> ------------------------------------------------------------------------------------------
>
> Key: TEIID-5313
> URL: https://issues.jboss.org/browse/TEIID-5313
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 10.3, 10.1.3, 10.2.1
>
>
> Oracle produces an exception when internationalized and regular character strings are mixed via a union or case statement, for example:
> case when val = 'x' then 'x' else N'y' end
> The translator only puts the N literal prefix when a non-ascii character is present though.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5313) Oracle translator issue with mixing string types and general issues with non-ascii strings
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5313?page=com.atlassian.jira.plugin... ]
Steven Hawkins updated TEIID-5313:
----------------------------------
Summary: Oracle translator issue with mixing string types and general issues with non-ascii strings (was: Oracle translator issue with mixing string types)
> Oracle translator issue with mixing string types and general issues with non-ascii strings
> ------------------------------------------------------------------------------------------
>
> Key: TEIID-5313
> URL: https://issues.jboss.org/browse/TEIID-5313
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 10.3, 10.1.3, 10.2.1
>
>
> Oracle produces an exception when internationalized and regular character strings are mixed via a union or case statement, for example:
> case when val = 'x' then 'x' else N'y' end
> The translator only puts the N literal prefix when a non-ascii character is present though.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months
[JBoss JIRA] (TEIID-5313) Oracle translator issue with mixing string types
by Steven Hawkins (JIRA)
[ https://issues.jboss.org/browse/TEIID-5313?page=com.atlassian.jira.plugin... ]
Steven Hawkins reopened TEIID-5313:
-----------------------------------
There are still a few more cases to consider - cast to string (in particular an nchar), and parameters. Parameters are currently bound as char or clob - need to check if nchar and nclob are required.
> Oracle translator issue with mixing string types
> ------------------------------------------------
>
> Key: TEIID-5313
> URL: https://issues.jboss.org/browse/TEIID-5313
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Reporter: Steven Hawkins
> Assignee: Steven Hawkins
> Fix For: 10.3, 10.1.3, 10.2.1
>
>
> Oracle produces an exception when internationalized and regular character strings are mixed via a union or case statement, for example:
> case when val = 'x' then 'x' else N'y' end
> The translator only puts the N literal prefix when a non-ascii character is present though.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
6 years, 8 months