[teiid-issues] [JBoss JIRA] (TEIID-4967) Couchbase - incorrect data returned from VIEW if one value is NULL

RH Bugzilla Integration (JIRA) issues at jboss.org
Fri Jul 14 08:12:00 EDT 2017


    [ https://issues.jboss.org/browse/TEIID-4967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13435873#comment-13435873 ] 

RH Bugzilla Integration commented on TEIID-4967:
------------------------------------------------

Van Halbert <vhalbert at redhat.com> changed the Status of [bug 1466151|https://bugzilla.redhat.com/show_bug.cgi?id=1466151] from NEW to MODIFIED

> Couchbase - incorrect data returned from VIEW if one value is NULL
> ------------------------------------------------------------------
>
>                 Key: TEIID-4967
>                 URL: https://issues.jboss.org/browse/TEIID-4967
>             Project: Teiid
>          Issue Type: Bug
>          Components: Misc. Connectors
>    Affects Versions: 8.12.x-6.4
>            Reporter: Juraj Duráni
>            Assignee: Steven Hawkins
>            Priority: Blocker
>             Fix For: 10.0, 8.12.x-6.4, 9.3.1
>
>
> I have a source model with FOREIGN TABLE and view model with VIEW which extracts subset of columns defined in FOREIGN TABLE.
> If one value in document is missing (i.e. from Teiid's point of view it's NULL), Teiid returns incorrect data from VIEW.
> In some cases, it returns NULL values for multiple columns (even if there is only one column with NULL).
> In other cases it shifts values - value from column c contains value of column c+1, column c+1 contains value of c+2 etc.
> For Source model, I tried both NATIVE and DDL metadata.
> If you need, I can provide you access to testing environment.
> *Query:* SELECT * FROM couchbase_small.smalla WHERE intkey = 5;
> *Result*
> ||documentID||FloatNum||IntKey||BigIntegerValue||StringKey||CharValue||LongNum||type||DoubleNum||ObjectValue||ShortValue||BigDecimalValue||DateValue||BooleanValue||TimestampValue||ByteNum||StringNum||TimeValue||IntNum||
> |smalla_5|-19|5|-19|5|0|-19|SmallA|-19|-19|-32763|-19|2000-01-06|true|2000-01-01 00:00:05.0|<null>|-19|05:00:00|-19|
> *Query:* SELECT * FROM bqt1.smalla WHERE intkey = 5;
> *Result:*
> ||IntKey||StringKey||IntNum||StringNum||FloatNum||LongNum||DoubleNum||ByteNum||DateValue||TimeValue||TimestampValue||BooleanValue||CharValue||ShortValue||BigIntegerValue||BigDecimalValue||ObjectValue||
> |5|5|-19|-19|-19|-19|-19|<null>|<null>|<null>|<null>|true|<null>|<null>|<null>|<null>|<null>|
> *Query:* SELECT * FROM bqt1.smalla WHERE intkey = 0;
> *Result:* Error: TEIID10074 Invalid Byte format in String: 2000-01-01
> *Stack trace:*
> {code:plain}
> 12:55:05,263 WARN  [org.teiid.CONNECTOR] (Worker15_QueryProcessorQueue279) Connector worker process failed for atomic-request=5x16wQN8Jjck.15.0.61: org.teiid.core.types.TransformationException: TEIID10074 Invalid Byte format in String: 2000-01-01
> 	at org.teiid.core.types.basic.StringToByteTransform.transformDirect(StringToByteTransform.java:43) [teiid-common-core-8.12.11.6_4-redhat-64-4.jar:8.12.11.6_4-redhat-64-4]
> 	at org.teiid.core.types.Transform.transform(Transform.java:47) [teiid-common-core-8.12.11.6_4-redhat-64-4.jar:8.12.11.6_4-redhat-64-4]
> 	at org.teiid.core.types.DataTypeManager.transformValue(DataTypeManager.java:942) [teiid-common-core-8.12.11.6_4-redhat-64-4.jar:8.12.11.6_4-redhat-64-4]
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.correctTypes(ConnectorWorkItem.java:593)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.handleBatch(ConnectorWorkItem.java:446)
> 	at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.more(ConnectorWorkItem.java:236)
> 	at sun.reflect.GeneratedMethodAccessor88.invoke(Unknown Source) [:1.8.0-internal]
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0-internal]
> 	at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0-internal]
> 	at org.teiid.dqp.internal.datamgr.ConnectorManager$1.invoke(ConnectorManager.java:211)
> 	at com.sun.proxy.$Proxy45.more(Unknown Source)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:309)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:112)
> 	at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:108)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0-internal]
> 	at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:65)
> 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:280)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
> 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0-internal]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0-internal]
> 	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0-internal]
> {code}
> *Query:* SELECT IntKey, IntNum, FloatNum FROM Couchbase_small.SmallA
> *Result:*
> ||IntKey||IntNum||FloatNum||
> |0|<null>|-24|
> |1|-23|-23|
> |10|-14|-14|
> |...|...|...|
> *Query:* SELECT IntKey, IntNum, FloatNum FROM BQT1.SmallA
> *Result:*
> ||IntKey||IntNum||FloatNum||
> |0|-24|<null>|
> |1|-23|-23|
> |10|-14|-14|
> |...|...|...|
> {code:xml|title=VDB}
> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <vdb name="couchbase" version="1">
>   <model name="Couchbase_small" type="PHYSICAL" visible="false">
>     <source name="couchbase_small" connection-jndi-name="java:/couchbase_small" translator-name="couchbase"/>
>     <metadata type="DDL">
>       SET NAMESPACE 'http://www.teiid.org/translator/couchbase/2017' AS teiid_couchbase;
>     CREATE FOREIGN TABLE SmallA (
>       documentID string,
>       FloatNum integer OPTIONS (NAMEINSOURCE '`FloatNum`'),
>       IntKey integer PRIMARY KEY OPTIONS (NAMEINSOURCE '`IntKey`'),
>       BigIntegerValue integer OPTIONS (NAMEINSOURCE '`BigIntegerValue`'),
>       StringKey string OPTIONS (NAMEINSOURCE '`StringKey`'),
>       CharValue string OPTIONS (NAMEINSOURCE '`CharValue`'),
>       LongNum integer OPTIONS (NAMEINSOURCE '`LongNum`'),
>       type string OPTIONS (NAMEINSOURCE '`type`'),
>       DoubleNum integer OPTIONS (NAMEINSOURCE '`DoubleNum`'),
>       ObjectValue string OPTIONS (NAMEINSOURCE '`ObjectValue`'),
>       ShortValue integer OPTIONS (NAMEINSOURCE '`ShortValue`'),
>       BigDecimalValue integer OPTIONS (NAMEINSOURCE '`BigDecimalValue`'),
>       DateValue string OPTIONS (NAMEINSOURCE '`DateValue`'),
>       BooleanValue boolean OPTIONS (NAMEINSOURCE '`BooleanValue`'),
>       TimestampValue string OPTIONS (NAMEINSOURCE '`TimestampValue`'),
>       ByteNum integer OPTIONS (NAMEINSOURCE '`ByteNum`'),
>       StringNum string OPTIONS (NAMEINSOURCE '`StringNum`'),
>       TimeValue string OPTIONS (NAMEINSOURCE '`TimeValue`'),
>       IntNum integer OPTIONS (NAMEINSOURCE '`IntNum`')
>     ) OPTIONS (NAMEINSOURCE '`dvqe_small`', UPDATABLE FALSE, "teiid_couchbase:ISARRAYTABLE" 'false', "teiid_couchbase:NAMEDTYPEPAIR" '`type`:''SmallA''');
>     </metadata>
>   </model>
>   <model name="BQT1" type="VIRTUAL">
>     <metadata type="DDL">
>       CREATE VIEW SmallA (
>       IntKey integer PRIMARY KEY,
>       StringKey string,
>       IntNum integer,
>       StringNum string,
>       FloatNum float,
>       LongNum long,
>       DoubleNum double,
>       ByteNum byte,
>       DateValue date,
>       TimeValue time,
>       TimestampValue timestamp,
>       BooleanValue boolean,
>       CharValue char(1),
>       ShortValue short,
>       BigIntegerValue biginteger,
>       BigDecimalValue bigdecimal,
>       ObjectValue object)
>     AS
>       SELECT
>         IntKey, StringKey, IntNum, StringNum, convert(FloatNum, float) AS FloatNum, convert(LongNum, long) AS LongNum,
>         convert(DoubleNum, double) AS DoubleNum, convert(ByteNum, byte) AS ByteNum, convert(DateValue, date) AS DateValue,
>         convert(TimeValue, time) AS TimeValue, convert(TimestampValue, timestamp) AS TimestampValue, BooleanValue,
>         convert(CharValue, char) AS CharValue, convert(ShortValue, short) AS ShortValue, convert(BigIntegerValue, biginteger) AS BigIntegerValue,
>         convert(BigDecimalValue, bigdecimal) AS BigDecimalValue, convert(ObjectValue, object) AS ObjectValue
>       FROM
>         Couchbase_small.SmallA;
>     </metadata>
>   </model>
> </vdb>
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)



More information about the teiid-issues mailing list