You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Swaroopa Kadam (Jira)" <ji...@apache.org> on 2021/05/03 22:02:00 UTC

[jira] [Updated] (PHOENIX-6460) Improve the optimizer to consider all plans and prefer regular over reverse scans

     [ https://issues.apache.org/jira/browse/PHOENIX-6460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Swaroopa Kadam updated PHOENIX-6460:
------------------------------------
    Description: 
In QueryOptimizerTest, following test fails, as it uses IDX over view

 
{code:java}
@Test
 public void testChooseIndexOverTable_diffOrder() throws Exception
{ 
Connection conn = DriverManager.getConnection(getUrl());
 conn.createStatement().execute("CREATE TABLE t (k INTEGER NOT NULL, v1 VARCHAR NOT NULL, v2 VARCHAR CONSTRAINT" + " PK PRIMARY KEY (k, v1)) IMMUTABLE_ROWS=true"); conn.createStatement().execute("CREATE VIEW v(v4 VARCHAR) AS SELECT * FROM t"); conn.createStatement().execute("CREATE INDEX idx ON v(v1 DESC) INCLUDE (v4)");
 PhoenixStatement stmt = conn.createStatement().unwrap(PhoenixStatement.class);
 QueryPlan plan = stmt.optimizeQuery("SELECT v1 FROM v ORDER BY v1");
 assertEquals("V", plan.getTableRef().getTable().getTableName().getString());
 }
{code}
 

  was:
In QueryOptimizerTest, following test fails, as it uses IDX over view

@Test
public void testChooseIndexOverTable_diffOrder() throws Exception {
 Connection conn = DriverManager.getConnection(getUrl());
 conn.createStatement().execute("CREATE TABLE t (k INTEGER NOT NULL, v1 VARCHAR NOT NULL, v2 VARCHAR CONSTRAINT"
 + " PK PRIMARY KEY (k, v1)) IMMUTABLE_ROWS=true");
 conn.createStatement().execute("CREATE VIEW v(v4 VARCHAR) AS SELECT * FROM t");

 conn.createStatement().execute("CREATE INDEX idx ON v(v1 DESC) INCLUDE (v4)");
 PhoenixStatement stmt = conn.createStatement().unwrap(PhoenixStatement.class);
 QueryPlan plan = stmt.optimizeQuery("SELECT v1 FROM v ORDER BY v1");
 assertEquals("V", plan.getTableRef().getTable().getTableName().getString());
}


> Improve the optimizer to consider all plans and prefer regular over reverse scans
> ---------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6460
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6460
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Swaroopa Kadam
>            Priority: Major
>             Fix For: 5.1.1, 4.17.0
>
>
> In QueryOptimizerTest, following test fails, as it uses IDX over view
>  
> {code:java}
> @Test
>  public void testChooseIndexOverTable_diffOrder() throws Exception
> { 
> Connection conn = DriverManager.getConnection(getUrl());
>  conn.createStatement().execute("CREATE TABLE t (k INTEGER NOT NULL, v1 VARCHAR NOT NULL, v2 VARCHAR CONSTRAINT" + " PK PRIMARY KEY (k, v1)) IMMUTABLE_ROWS=true"); conn.createStatement().execute("CREATE VIEW v(v4 VARCHAR) AS SELECT * FROM t"); conn.createStatement().execute("CREATE INDEX idx ON v(v1 DESC) INCLUDE (v4)");
>  PhoenixStatement stmt = conn.createStatement().unwrap(PhoenixStatement.class);
>  QueryPlan plan = stmt.optimizeQuery("SELECT v1 FROM v ORDER BY v1");
>  assertEquals("V", plan.getTableRef().getTable().getTableName().getString());
>  }
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)