You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Samarth Jain (JIRA)" <ji...@apache.org> on 2014/07/11 22:55:05 UTC

[jira] [Updated] (PHOENIX-1077) Bugs when executing an IN list of Row Value Constructors.

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

Samarth Jain updated PHOENIX-1077:
----------------------------------

    Assignee: James Taylor  (was: Eli Levine)
     Summary: Bugs when executing an IN list of Row Value Constructors.  (was: IN list of row value constructors doesn't work for tenant specific views)

> Bugs when executing an IN list of Row Value Constructors.
> ---------------------------------------------------------
>
>                 Key: PHOENIX-1077
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1077
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 4.0.0, 5.0.0
>            Reporter: Samarth Jain
>            Assignee: James Taylor
>
> IN list of row value constructors doesn't work when queried against tenant views for multi-tenant phoenix tables. Consider this test (added in TenantSpecificTablesDMLIT.java)
> {code}
> public void testRVCOnTenantSpecificTable() throws Exception {
>         Connection conn = nextConnection(PHOENIX_JDBC_TENANT_SPECIFIC_URL);
>         try {
>             conn.setAutoCommit(true);
>             conn.createStatement().executeUpdate("upsert into " + TENANT_TABLE_NAME + " (id, user) values (1, 'BonA')");
>             conn.createStatement().executeUpdate("upsert into " + TENANT_TABLE_NAME + " (id, user) values (2, 'BonB')");
>             conn.createStatement().executeUpdate("upsert into " + TENANT_TABLE_NAME + " (id, user) values (3, 'BonC')");
>             conn.close();
>             conn = nextConnection(PHOENIX_JDBC_TENANT_SPECIFIC_URL);
>             PreparedStatement stmt = conn.prepareStatement("select id from " + TENANT_TABLE_NAME + " WHERE (id, user) IN ((?, ?), (?, ?), (?, ?))");
>             stmt.setInt(1, 1);
>             stmt.setString(2, "BonA");
>             stmt.setInt(3, 2);
>             stmt.setString(4, "BonB");
>             stmt.setInt(5, 3);
>             stmt.setString(6, "BonC");
>             ResultSet rs = stmt.executeQuery();
>             assertTrue(rs.next());
>             assertEquals(1, rs.getInt(1));
>             assertTrue(rs.next());
>             assertEquals(2, rs.getInt(1));
>             assertTrue(rs.next());
>             assertEquals(3, rs.getInt(1));
>             assertFalse(rs.next());
>         }
>         finally {
>             conn.close();
>         }
>     }
> {code}
> Replacing TENANT_TABLE_NAME with PARENT_TABLE_NAME (that is the base table), the test works fine.



--
This message was sent by Atlassian JIRA
(v6.2#6252)