private void alterPartitionForTruncate(RawStore ms, String catName, String dbName, String tableName, Table table, Partition partition, String validWriteIds, long writeId) throws Exception { EnvironmentContext environmentContext = new EnvironmentContext(); updateStatsForTruncate(partition.getParameters(), environmentContext); if (!transactionalListeners.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(transactionalListeners, EventType.ALTER_PARTITION, new AlterPartitionEvent(partition, partition, table, true, true, writeId, this)); } if (!listeners.isEmpty()) { MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ALTER_PARTITION, new AlterPartitionEvent(partition, partition, table, true, true, writeId, this)); } if (writeId > 0) { partition.setWriteId(writeId); } alterHandler.alterPartition(ms, wh, catName, dbName, tableName, null, partition, environmentContext, this, validWriteIds); }
@Override public void onAlterPartition(AlterPartitionEvent ape) throws MetaException { if (ape.getStatus()) { Partition before = ape.getOldPartition(); Partition after = ape.getNewPartition(); String topicName = getTopicName(ape.getTable()); send(messageFactory.buildAlterPartitionMessage(ape.getTable(),before, after, ape.getWriteId()), topicName); } }
/** * @param partitionEvent partition event * @throws MetaException */ @Override public void onAlterPartition(AlterPartitionEvent partitionEvent) throws MetaException { Partition before = partitionEvent.getOldPartition(); Partition after = partitionEvent.getNewPartition(); AlterPartitionMessage msg = MessageBuilder.getInstance() .buildAlterPartitionMessage(partitionEvent.getTable(), before, after, partitionEvent.getIsTruncateOp(), partitionEvent.getWriteId()); NotificationEvent event = new NotificationEvent(0, now(), EventType.ALTER_PARTITION.toString(), msgEncoder.getSerializer().serialize(msg)); event.setCatName(before.isSetCatName() ? before.getCatName() : DEFAULT_CATALOG_NAME); event.setDbName(before.getDbName()); event.setTableName(before.getTableName()); process(event, partitionEvent); }
@Override public void onAlterPartition(AlterPartitionEvent partitionEvent) throws MetaException { if (!TxnUtils.isTransactionalTable(partitionEvent.getTable())) { return; } Partition oldPart = partitionEvent.getOldPartition(); Partition newPart = partitionEvent.getNewPartition(); Table t = partitionEvent.getTable(); String oldPartName = Warehouse.makePartName(t.getPartitionKeys(), oldPart.getValues()); String newPartName = Warehouse.makePartName(t.getPartitionKeys(), newPart.getValues()); if(!oldPartName.equals(newPartName)) { txnHandler = getTxnHandler(); txnHandler.onRename(t.getCatName(), t.getDbName(), t.getTableName(), oldPartName, t.getCatName(), t.getDbName(), t.getTableName(), newPartName); } } @Override
Assert.assertTrue(alterPartEvent.getStatus()); validateAlterPartition(origP, origP, alterPartEvent.getOldPartition().getDbName(), alterPartEvent.getOldPartition().getTableName(), alterPartEvent.getOldPartition().getValues(), alterPartEvent.getNewPartition());
event.getHandler().get_table( event.getOldPartition().getDbName(), event.getOldPartition().getTableName() new Partition(table, event.getOldPartition()) new Partition(table, event.getNewPartition()), WriteType.INSERT
new AlterPartitionEvent(oldPart, new_part, true, this); alterPartitionEvent.setEnvironmentContext(envContext); listener.onAlterPartition(alterPartitionEvent);
/** * @param partitionEvent partition event * @throws MetaException */ public void onAlterPartition (AlterPartitionEvent partitionEvent) throws MetaException { Partition before = partitionEvent.getOldPartition(); Partition after = partitionEvent.getNewPartition(); NotificationEvent event = new NotificationEvent(0, now(), HCatConstants.HCAT_ALTER_PARTITION_EVENT, msgFactory.buildAlterPartitionMessage(partitionEvent.getTable(),before, after).toString()); event.setDbName(before.getDbName()); event.setTableName(before.getTableName()); enqueue(event); }
/** * @param partitionEvent partition event * @throws MetaException */ @Override public void onAlterPartition(AlterPartitionEvent partitionEvent) throws MetaException { Partition before = partitionEvent.getOldPartition(); Partition after = partitionEvent.getNewPartition(); NotificationEvent event = new NotificationEvent(0, now(), EventType.ALTER_PARTITION.toString(), msgFactory .buildAlterPartitionMessage(partitionEvent.getTable(), before, after, partitionEvent.getIsTruncateOp()).toString()); event.setCatName(before.isSetCatName() ? before.getCatName() : DEFAULT_CATALOG_NAME); event.setDbName(before.getDbName()); event.setTableName(before.getTableName()); process(event, partitionEvent); }
@Override public void onAlterPartition(AlterPartitionEvent partitionEvent) throws MetaException { // don't sync privileges if the operation has failed if (!partitionEvent.getStatus()) { LOGGER.debug("Skip syncing privileges with Sentry server for onAlterPartition event," + " since the operation failed. \n"); return; } String oldLoc = null, newLoc = null; if (partitionEvent.getOldPartition() != null) { oldLoc = partitionEvent.getOldPartition().getSd().getLocation(); } if (partitionEvent.getNewPartition() != null) { newLoc = partitionEvent.getNewPartition().getSd().getLocation(); } if (oldLoc != null && newLoc != null && !oldLoc.equals(newLoc)) { String authzObj = partitionEvent.getOldPartition().getDbName() + "." + partitionEvent.getOldPartition().getTableName(); for (SentryMetastoreListenerPlugin plugin : sentryPlugins) { plugin.renameAuthzObject(authzObj, oldLoc, authzObj, newLoc); } } }
event.getHandler().get_table( event.getOldPartition().getDbName(), event.getOldPartition().getTableName() new Partition(table, event.getOldPartition()) new Partition(table, event.getNewPartition()), WriteType.INSERT
new AlterPartitionEvent(oldPart, new_part, table, true, this); alterPartitionEvent.setEnvironmentContext(envContext); listener.onAlterPartition(alterPartitionEvent);
@Override public void onAlterPartition(AlterPartitionEvent ape) throws MetaException { if (ape.getStatus()) { Partition before = ape.getOldPartition(); Partition after = ape.getNewPartition(); String topicName = getTopicName(ape.getTable()); send(messageFactory.buildAlterPartitionMessage(ape.getTable(),before, after), topicName); } }
/** * @param partitionEvent partition event * @throws MetaException */ public void onAlterPartition (AlterPartitionEvent partitionEvent) throws MetaException { Partition before = partitionEvent.getOldPartition(); Partition after = partitionEvent.getNewPartition(); NotificationEvent event = new NotificationEvent(0, now(), HCatConstants.HCAT_ALTER_PARTITION_EVENT, msgFactory.buildAlterPartitionMessage(partitionEvent.getTable(),before, after).toString()); event.setDbName(before.getDbName()); event.setTableName(before.getTableName()); enqueue(event); }
new AlterPartitionEvent(oldPart, newPart, tbl, false, true, newPart.getWriteId(), handler), environmentContext);
new AlterPartitionEvent(oldPart, new_part, table, true, this); alterPartitionEvent.setEnvironmentContext(envContext); listener.onAlterPartition(alterPartitionEvent);
@Override public void onAlterPartition(AlterPartitionEvent ape) throws MetaException { if (ape.getStatus()) { Partition before = ape.getOldPartition(); Partition after = ape.getNewPartition(); String topicName = getTopicName(ape.getTable()); send(messageFactory.buildAlterPartitionMessage(ape.getTable(),before, after), topicName); } }
new AlterPartitionEvent(oldPart, new_part, table, false, true, new_part.getWriteId(), this), envContext);
@Override public void onAlterPartition(AlterPartitionEvent ape) throws MetaException { if (ape.getStatus()) { Partition before = ape.getOldPartition(); Partition after = ape.getNewPartition(); String topicName = getTopicName(ape.getTable()); send(messageFactory.buildAlterPartitionMessage(ape.getTable(),before, after), topicName); } }
MetaStoreListenerNotifier.notifyEvent(listeners, EventType.ALTER_PARTITION, new AlterPartitionEvent(oldTmpPart, tmpPart, table, false, true, writeId, this));