You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Rajeshbabu Chintaguntla (JIRA)" <ji...@apache.org> on 2016/05/22 02:56:12 UTC

[jira] [Updated] (PHOENIX-2925) CsvBulkloadTool not working properly if there are multiple local indexes to the same table(After PHOENIX-1973)

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

Rajeshbabu Chintaguntla updated PHOENIX-2925:
---------------------------------------------
    Attachment: PHOENIX-2925.patch

Here is the patch fixes it. In the patch mapping the index mutations to logical table name after generating those and make use of physical table name while writing to hfiles. Need to go by this approach because mapping multiple index table columns to same physical table is difficult with the current code.
[~jamestaylor] [~sergey.soldatov] pls review. 

> CsvBulkloadTool not working properly if there are multiple local indexes to the same table(After PHOENIX-1973)
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-2925
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2925
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.7.0
>            Reporter: Rajeshbabu Chintaguntla
>            Assignee: Rajeshbabu Chintaguntla
>             Fix For: 4.8.0
>
>         Attachments: PHOENIX-2925.patch, PHOENIX-2925.patch
>
>
> When there are multiple local indexes then only for first index data is getting generated properly and other indexes doesn't have any data. Changing testImportWithLocalIndex test as below is failing. ping [~sergey.soldatov]?
> {noformat}
>     @Test
>     public void testImportWithLocalIndex() throws Exception {
>         Statement stmt = conn.createStatement();
>         stmt.execute("CREATE TABLE TABLE6 (ID INTEGER NOT NULL PRIMARY KEY, " +
>                 "FIRST_NAME VARCHAR, LAST_NAME VARCHAR) SPLIt ON (1,2)");
>         String ddl = "CREATE LOCAL INDEX TABLE6_IDX ON TABLE6 "
>                 + " (FIRST_NAME ASC)";
>         stmt.execute(ddl);
>         ddl = "CREATE LOCAL INDEX TABLE6_IDX2 ON TABLE6 " + " (LAST_NAME ASC)";
>         stmt.execute(ddl);
>         FileSystem fs = FileSystem.get(getUtility().getConfiguration());
>         FSDataOutputStream outputStream = fs.create(new Path("/tmp/input3.csv"));
>         PrintWriter printWriter = new PrintWriter(outputStream);
>         printWriter.println("1,FirstName 1,LastName 1");
>         printWriter.println("2,FirstName 2,LastName 2");
>         printWriter.close();
>         CsvBulkLoadTool csvBulkLoadTool = new CsvBulkLoadTool();
>         csvBulkLoadTool.setConf(getUtility().getConfiguration());
>         int exitCode = csvBulkLoadTool.run(new String[] {
>                 "--input", "/tmp/input3.csv",
>                 "--table", "table6",
>                 "--zookeeper", zkQuorum});
>         assertEquals(0, exitCode);
>         ResultSet rs = stmt.executeQuery("SELECT id, FIRST_NAME FROM TABLE6 where first_name='FirstName 2'");
>         assertTrue(rs.next());
>         assertEquals(2, rs.getInt(1));
>         assertEquals("FirstName 2", rs.getString(2));
>         rs = stmt.executeQuery("SELECT LAST_NAME FROM TABLE6  where last_name='LastName 1'");
>         assertTrue(rs.next());
>         assertEquals("LastName 1", rs.getString(1));
>         rs.close();
>         stmt.close();
>     }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)