[teiid-issues] [JBoss JIRA] (TEIID-5571) If set null as argument to replace function, the column of all records becomes null
Steven Hawkins (Jira)
issues at jboss.org
Thu Dec 13 08:00:05 EST 2018
[ https://issues.jboss.org/browse/TEIID-5571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steven Hawkins resolved TEIID-5571.
-----------------------------------
Resolution: Rejected
Most sql functions have null on null behavior - that is if any argument is null, then the result is null. You can confirm this behavior with postgresql as well - issue select replace('a', 'b', null)
> If set null as argument to replace function, the column of all records becomes null
> -----------------------------------------------------------------------------------
>
> Key: TEIID-5571
> URL: https://issues.jboss.org/browse/TEIID-5571
> Project: Teiid
> Issue Type: Bug
> Components: Query Engine
> Affects Versions: 8.12.16.6_4
> Environment: jdv6.4.5
> Reporter: Hiroki Daicho
> Assignee: Steven Hawkins
> Priority: Major
> Attachments: Client.java, logs.zip, oraclevdb-vdb.xml
>
>
> When argument of replace function set to null, all records of the column are set null value.
> - Query
> select num, replace(name, 'a', null) from TEST01
> Results
> 1: 0, null
> 2: 1, null
> 3: 2, null
> 4: 3, null
> Results (Expected)
> 1: 0, null
> 2: 1, b
> 3: 2, c
> 4: 3, d
> {code}
> 14:03:17,019 INFO [org.teiid.COMMAND_LOG] (New I/O worker #2) MH/yC1t35aMa START USER COMMAND: startTime=2018-12-13 14:03:17.019 requestID=MH/yC1t35aMa.0 txID=null sessionID=MH/yC1t35aMa applicationName=JDBC principal=teiidUser at teiid-security vdbName=oraclevdb vdbVersion=1 sql=select num, replace(name, 'a', null) from TEST01
> 14:03:17,309 DEBUG [org.teiid.COMMAND_LOG] (Worker1_QueryProcessorQueue1) MH/yC1t35aMa START DATA SRC COMMAND: startTime=2018-12-13 14:03:17.309 requestID=MH/yC1t35aMa.0 sourceCommandID=0 executionID=0 txID=null modelName=oracle translatorName=oracle sessionID=MH/yC1t35aMa principal=teiidUser at teiid-security sql=SELECT g_0.NUM FROM oracle.TEST01 AS g_0
> 14:03:17,314 DEBUG [org.teiid.COMMAND_LOG] (Worker1_QueryProcessorQueue1) MH/yC1t35aMa SOURCE SRC COMMAND: endTime=2018-12-13 14:03:17.314 requestID=MH/yC1t35aMa.0 sourceCommandID=0 executionID=0 txID=null modelName=oracle translatorName=oracle sessionID=MH/yC1t35aMa principal=teiidUser at teiid-security sourceCommand=[SELECT g_0."NUM" FROM "TESTDB"."TEST01" g_0]
> 14:03:17,440 DEBUG [org.teiid.COMMAND_LOG] (Worker0_QueryProcessorQueue2) MH/yC1t35aMa END SRC COMMAND: endTime=2018-12-13 14:03:17.44 requestID=MH/yC1t35aMa.0 sourceCommandID=0 executionID=0 txID=null modelName=oracle translatorName=oracle sessionID=MH/yC1t35aMa principal=teiidUser at teiid-security finalRowCount=4 cpuTime(ns)=121768769
> 14:03:17,481 INFO [org.teiid.COMMAND_LOG] (Worker0_QueryProcessorQueue3) MH/yC1t35aMa END USER COMMAND: endTime=2018-12-13 14:03:17.481 requestID=MH/yC1t35aMa.0 txID=null sessionID=MH/yC1t35aMa principal=teiidUser at teiid-security vdbName=oraclevdb vdbVersion=1 finalRowCount=4
> {code}
> This query is also same result.
> select num, replace(name, null, 'a') from TEST01
> When the replace function is in view model as follows, the result is same as the above.
> {code}
> <model name="oracle_view" type="VIRTUAL">
> <property name="imports" value="oracle"/>
> <metadata type="DDL"><![CDATA[
> CREATE VIEW V_TEST01 (
> NUM bigdecimal(38) NOT NULL OPTIONS(NAMEINSOURCE '"NUM"', NATIVE_TYPE 'NUMBER', UPDATABLE 'FALSE', FIXED_LENGTH 'TRUE'),
> NAME string(20) OPTIONS(NAMEINSOURCE '"NAME"', NATIVE_TYPE 'VARCHAR2', UPDATABLE 'FALSE'),
> CONSTRAINT PK_NUM PRIMARY KEY(NUM) OPTIONS(NAMEINSOURCE '"PK_NUM"')
> ) OPTIONS(NAMEINSOURCE '"TESTDB"."TEST01"')
> AS
> SELECT
> t.NUM, replace(t.NAME, 'a', null) AS name
> FROM
> oracle.TEST01 AS t;
> ]]></metadata>
> </model>
> {code}
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the teiid-issues
mailing list