[
https://issues.apache.org/jira/browse/PHOENIX-2613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
chenglei updated PHOENIX-2613:
------------------------------
Description:
In pheonix 4.6,any column of multi-part primary key can be null.If a table has
one row which has a column of multi-part primary key is null, when I do a
query,the Skip Scan may cause RegionServer scan indefinite loop,just like the
following unit test:
{code:title=TestNullInfiniteLoop.java|borderStyle=solid}
@Test
public void testNullInfiniteLoop() throws Exception
{
this.jdbcTemplate.update("drop table if exists NULL_TEST ");
this.jdbcTemplate.update(
"create table NULL_TEST"+
"("+
"CREATETIME VARCHAR,"+
"ACCOUNTID VARCHAR,"+
"SERVICENAME VARCHAR,"+
"SPAN.APPID VARCHAR,"+
"CONSTRAINT pk PRIMARY KEY(CREATETIME,ACCOUNTID,SERVICENAME)"+
")");
this.jdbcTemplate.update("upsert into
NULL_TEST(CREATETIME,SERVICENAME,SPAN.APPID)
values('20160116141006','servlet','android')");
this.jdbcTemplate.update("upsert into
NULL_TEST(CREATETIME,ACCOUNTID,SERVICENAME,SPAN.APPID)
values('20160116151006','2404787','jdbc','ios')");
this.jdbcTemplate.queryForList("select * from NULL_TEST where
CREATETIME>='20160116121006' and CREATETIME<='20160116181006' and
ACCOUNTID='2404787'");
}
{code}
was:
In pheonix 4.6,any column of multi-part primary key can be null.If a table has
one row which has a column of multi-part primary key is null, when I do a
query,the Skip Scan may cause RegionServer scan indefinite loop,just like the
following unit test:
{code:title=TestNullInfiniteLoop.java|borderStyle=solid}
public void testNullInfiniteLoop() throws Exception
{
this.jdbcTemplate.update("drop table if exists NULL_TEST ");
this.jdbcTemplate.update(
"create table NULL_TEST"+
"("+
"CREATETIME VARCHAR,"+
"ACCOUNTID VARCHAR,"+
"SERVICENAME VARCHAR,"+
"SPAN.APPID VARCHAR,"+
"CONSTRAINT pk PRIMARY KEY(CREATETIME,ACCOUNTID,SERVICENAME)"+
")");
this.jdbcTemplate.update("upsert into
NULL_TEST(CREATETIME,SERVICENAME,SPAN.APPID)
values('20160116141006','servlet','android')");
this.jdbcTemplate.update("upsert into
NULL_TEST(CREATETIME,ACCOUNTID,SERVICENAME,SPAN.APPID)
values('20160116151006','2404787','jdbc','ios')");
this.jdbcTemplate.queryForList("select * from NULL_TEST where
CREATETIME>='20160116121006' and CREATETIME<='20160116181006' and
ACCOUNTID='2404787'");
}
{code}
> if any column of multi-part primary key is null, the Skip Scan may cause
> RegionServer scan indefinite loop
> ----------------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-2613
> URL: https://issues.apache.org/jira/browse/PHOENIX-2613
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.6.0
> Environment: HBase 0.98.6-cdh5.3.2, Phoenix 4.6.0-HBase-0.98
> Reporter: chenglei
>
> In pheonix 4.6,any column of multi-part primary key can be null.If a table
> has one row which has a column of multi-part primary key is null, when I do a
> query,the Skip Scan may cause RegionServer scan indefinite loop,just like the
> following unit test:
> {code:title=TestNullInfiniteLoop.java|borderStyle=solid}
> @Test
> public void testNullInfiniteLoop() throws Exception
> {
> this.jdbcTemplate.update("drop table if exists NULL_TEST ");
>
> this.jdbcTemplate.update(
> "create table NULL_TEST"+
> "("+
> "CREATETIME VARCHAR,"+
> "ACCOUNTID VARCHAR,"+
> "SERVICENAME VARCHAR,"+
> "SPAN.APPID VARCHAR,"+
> "CONSTRAINT pk PRIMARY
> KEY(CREATETIME,ACCOUNTID,SERVICENAME)"+
> ")");
>
> this.jdbcTemplate.update("upsert into
> NULL_TEST(CREATETIME,SERVICENAME,SPAN.APPID)
> values('20160116141006','servlet','android')");
> this.jdbcTemplate.update("upsert into
> NULL_TEST(CREATETIME,ACCOUNTID,SERVICENAME,SPAN.APPID)
> values('20160116151006','2404787','jdbc','ios')");
> this.jdbcTemplate.queryForList("select * from NULL_TEST where
> CREATETIME>='20160116121006' and CREATETIME<='20160116181006' and
> ACCOUNTID='2404787'");
>
>
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)