From issues-return-6927-archive-asf-public=cust-asf.ponee.io@phoenix.apache.org Mon May 20 18:30:32 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 A7B5818076D for ; Mon, 20 May 2019 20:30:31 +0200 (CEST) Received: (qmail 15655 invoked by uid 500); 20 May 2019 18:30:31 -0000 Mailing-List: contact issues-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 issues@phoenix.apache.org Received: (qmail 15640 invoked by uid 99); 20 May 2019 18:30:31 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 20 May 2019 18:30:31 +0000 From: GitBox To: issues@phoenix.apache.org Subject: [GitHub] [phoenix] priyankporwal commented on a change in pull request #499: Phoenix-5272 ALTER INDEX REBUILD ALL Message-ID: <155837702779.11620.13509004842320525550.gitbox@gitbox.apache.org> Date: Mon, 20 May 2019 18:30:27 -0000 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit priyankporwal commented on a change in pull request #499: Phoenix-5272 ALTER INDEX REBUILD ALL URL: https://github.com/apache/phoenix/pull/499#discussion_r285713590 ########## File path: phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java ########## @@ -4362,18 +4370,40 @@ public MutationState alterIndex(AlterIndexStatement statement) throws SQLExcepti // Set so that we get the table below with the potentially modified rowKeyOrderOptimizable flag set indexRef.setTable(result.getTable()); if (newIndexState == PIndexState.BUILDING && isAsync) { - try { - tableUpsert = connection.prepareStatement(UPDATE_INDEX_REBUILD_ASYNC_STATE); - tableUpsert.setString(1, - connection.getTenantId() == null ? null : connection.getTenantId().getString()); - tableUpsert.setString(2, schemaName); - tableUpsert.setString(3, indexName); - tableUpsert.setLong(4, result.getTable().getTimeStamp()); - tableUpsert.execute(); - connection.commit(); - } finally { - if (tableUpsert != null) { - tableUpsert.close(); + if (isAll) { + List tasks = Task.queryTaskTable(connection, schemaName, tableName, PTable.TaskType.INDEX_REBUILD, + tenantId, indexName); + if (tasks == null || tasks.size() == 0) { + Timestamp ts = new Timestamp(EnvironmentEdgeManager.currentTimeMillis()); + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty(INDEX_NAME, indexName); + jsonObject.addProperty(REBUILD_ALL, true); + try { + Task.addTask(connection, PTable.TaskType.INDEX_REBUILD, + tenantId, schemaName, + dataTableName, PTable.TaskStatus.CREATED.toString(), + jsonObject.toString(), null, ts, null, true); + connection.commit(); + } catch (IOException e) { + throw new SQLException("Exception happened while adding a System.Task" + e.toString()); + } + } + } else { + try { + tableUpsert = connection.prepareStatement(UPDATE_INDEX_REBUILD_ASYNC_STATE); Review comment: Good idea @gjacoby126! But, I'd agree with @gokceni to not do it here. Perhaps another Jira or another PR. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: users@infra.apache.org With regards, Apache Git Services