diff --git a/CHANGELOG.md b/CHANGELOG.md index bb61c87b..748a93f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## 8.1.15 - 2025-11-27 +### Changed +- When sending the events we hash based on db and table name. By default we are taking the newest table name. +We realised this could potentially break the order of operations because it will send the event to a different kafka partition. + ## 8.1.14 - 2025-11-25 ### Changed - Remove metric relocations for apiary-gluesync-listener because Spring doesn't find those in bean initialisation. diff --git a/apiary-metastore-events/apiary-hive-events/src/main/java/com/expediagroup/apiary/extensions/events/metastore/event/ApiaryAlterTableEvent.java b/apiary-metastore-events/apiary-hive-events/src/main/java/com/expediagroup/apiary/extensions/events/metastore/event/ApiaryAlterTableEvent.java index dcc378fd..d19678bc 100644 --- a/apiary-metastore-events/apiary-hive-events/src/main/java/com/expediagroup/apiary/extensions/events/metastore/event/ApiaryAlterTableEvent.java +++ b/apiary-metastore-events/apiary-hive-events/src/main/java/com/expediagroup/apiary/extensions/events/metastore/event/ApiaryAlterTableEvent.java @@ -21,6 +21,7 @@ import org.apache.hadoop.hive.metastore.events.AlterTableEvent; public class ApiaryAlterTableEvent extends ApiaryListenerEvent { + private static final long serialVersionUID = 1L; private Table oldTable; @@ -36,12 +37,12 @@ public ApiaryAlterTableEvent(AlterTableEvent event) { @Override public String getDatabaseName() { - return newTable.getDbName(); + return oldTable.getDbName(); } @Override public String getTableName() { - return newTable.getTableName(); + return oldTable.getTableName(); } public Table getOldTable() { @@ -63,5 +64,4 @@ public boolean equals(Object obj) { ApiaryAlterTableEvent other = (ApiaryAlterTableEvent) obj; return super.equals(other) && Objects.equals(oldTable, other.oldTable) && Objects.equals(newTable, other.newTable); } - } diff --git a/apiary-metastore-events/apiary-hive-events/src/test/java/com/expediagroup/apiary/extensions/events/metastore/event/SerializableAlterTableEventTest.java b/apiary-metastore-events/apiary-hive-events/src/test/java/com/expediagroup/apiary/extensions/events/metastore/event/SerializableAlterTableEventTest.java index 85ba4477..836e9347 100644 --- a/apiary-metastore-events/apiary-hive-events/src/test/java/com/expediagroup/apiary/extensions/events/metastore/event/SerializableAlterTableEventTest.java +++ b/apiary-metastore-events/apiary-hive-events/src/test/java/com/expediagroup/apiary/extensions/events/metastore/event/SerializableAlterTableEventTest.java @@ -29,8 +29,8 @@ @RunWith(MockitoJUnitRunner.class) public class SerializableAlterTableEventTest { - private static final String NEW_DATABASE = "new_db"; - private static final String NEW_TABLE = "new_tbl"; + private static final String OLD_DATABASE = "old_db"; + private static final String OLD_TABLE = "old_tbl"; private @Mock AlterTableEvent alterTableEvent; private @Mock Table newTable; @@ -40,8 +40,8 @@ public class SerializableAlterTableEventTest { @Before public void init() { - when(newTable.getDbName()).thenReturn(NEW_DATABASE); - when(newTable.getTableName()).thenReturn(NEW_TABLE); + when(oldTable.getDbName()).thenReturn(OLD_DATABASE); + when(oldTable.getTableName()).thenReturn(OLD_TABLE); when(alterTableEvent.getNewTable()).thenReturn(newTable); when(alterTableEvent.getOldTable()).thenReturn(oldTable); event = new ApiaryAlterTableEvent(alterTableEvent); @@ -49,12 +49,12 @@ public void init() { @Test public void databaseName() { - assertThat(event.getDatabaseName()).isEqualTo(NEW_DATABASE); + assertThat(event.getDatabaseName()).isEqualTo(OLD_DATABASE); } @Test public void tableName() { - assertThat(event.getTableName()).isEqualTo(NEW_TABLE); + assertThat(event.getTableName()).isEqualTo(OLD_TABLE); } @Test @@ -67,5 +67,4 @@ public void tables() { assertThat(event.getNewTable()).isSameAs(newTable); assertThat(event.getOldTable()).isSameAs(oldTable); } - }