From dev-return-57799-archive-asf-public=cust-asf.ponee.io@phoenix.apache.org Thu Aug 8 22:16:03 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [207.244.88.153]) by mx-eu-01.ponee.io (Postfix) with SMTP id E2260180642 for ; Fri, 9 Aug 2019 00:16:02 +0200 (CEST) Received: (qmail 8344 invoked by uid 500); 8 Aug 2019 22:16:01 -0000 Mailing-List: contact dev-help@phoenix.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@phoenix.apache.org Delivered-To: mailing list dev@phoenix.apache.org Received: (qmail 8333 invoked by uid 99); 8 Aug 2019 22:16:01 -0000 Received: from mailrelay1-us-west.apache.org (HELO mailrelay1-us-west.apache.org) (209.188.14.139) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Aug 2019 22:16:01 +0000 Received: from jira-lw-us.apache.org (unknown [207.244.88.139]) by mailrelay1-us-west.apache.org (ASF Mail Server at mailrelay1-us-west.apache.org) with ESMTP id C29ACE2FE2 for ; Thu, 8 Aug 2019 22:16:00 +0000 (UTC) Received: from jira-lw-us.apache.org (localhost [127.0.0.1]) by jira-lw-us.apache.org (ASF Mail Server at jira-lw-us.apache.org) with ESMTP id 37AAC2666F for ; Thu, 8 Aug 2019 22:16:00 +0000 (UTC) Date: Thu, 8 Aug 2019 22:16:00 +0000 (UTC) From: "Swaroopa Kadam (JIRA)" To: dev@phoenix.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Resolved] (PHOENIX-5434) IndexTool rebuild doesn't work if # of rows in base table/view > index table MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/PHOENIX-5434?page=3Dcom.atlass= ian.jira.plugin.system.issuetabpanels:all-tabpanel ] Swaroopa Kadam resolved PHOENIX-5434. ------------------------------------- Resolution: Not A Bug Need to set the index unusable before rebuilding the index.=C2=A0 > IndexTool rebuild doesn't work if # of rows in base table/view > index ta= ble > -------------------------------------------------------------------------= --- > > Key: PHOENIX-5434 > URL: https://issues.apache.org/jira/browse/PHOENIX-5434 > Project: Phoenix > Issue Type: Bug > Affects Versions: 5.0.0, 4.14.2 > Reporter: Swaroopa Kadam > Assignee: Swaroopa Kadam > Priority: Blocker > > {code:java} > @Test > public void testIndexRebuildWithNoIndexRows() throws Throwable { > String baseTable =3D generateUniqueName(); > String viewName =3D generateUniqueName(); > Connection conn =3D null; > try { > conn =3D DriverManager.getConnection(getUrl()); > conn.setAutoCommit(true); > String ddlFormat =3D > "CREATE TABLE IF NOT EXISTS " + baseTable + " (" > + " PK2 VARCHAR NOT NULL, V1 VARCHAR, V2 VARCHAR = " > + " CONSTRAINT NAME_PK PRIMARY KEY (PK2) )"; > conn.createStatement().execute(ddlFormat); > // Create a view > String viewDDL =3D "CREATE VIEW " + viewName + " AS SELECT * FROM= " + baseTable; > conn.createStatement().execute(viewDDL); > // Create index > String indexName =3D generateUniqueName(); > String idxSDDL =3D String.format("CREATE INDEX %s ON %s (V1)", in= dexName, viewName); > conn.createStatement().execute(idxSDDL); > // Insert rows > int numOfValues =3D 1000; > for (int i=3D0; i < numOfValues; i++){ > conn.createStatement().execute( > String.format("UPSERT INTO %s VALUES('%s', '%s', '%s'= )", viewName, String.valueOf(i), "y", > "z")); > } > for (int i=3DnumOfValues; i < numOfValues*2; i++){ > conn.createStatement().execute( > String.format("UPSERT INTO %s VALUES('%s', '%s', '%s'= )", viewName, String.valueOf(i), "x", > "y")); > } > conn.createStatement().execute("DELETE FROM "+indexName+" WHERE \= "0:V1\" =3D 'x'"); > String viewIndexTableName =3D MetaDataUtil.getViewIndexPhysicalNa= me(baseTable); > ConnectionQueryServices queryServices =3D conn.unwrap(PhoenixConn= ection.class).getQueryServices(); > int count =3D getUtility().countRows(queryServices.getTable(Bytes= .toBytes(viewIndexTableName))); > assertTrue(count =3D=3D numOfValues); > count =3D getUtility().countRows(queryServices.getTable(Bytes.toB= ytes(baseTable))); > assertTrue(count =3D=3D 2*numOfValues); > IndexToolIT.runIndexTool(true, false, "", viewName, indexName); > // See that index is rebuilt and confirm index has rows > Table htable=3D queryServices.getTable(Bytes.toBytes(viewIndexTab= leName)); > count =3D getUtility().countRows(htable); > assertEquals(numOfValues*2, count); //fails here > } finally { > if (conn !=3D null) { > conn.commit(); > conn.close(); > } > } > } > {code} -- This message was sent by Atlassian JIRA (v7.6.14#76016)