diff options
author | 2023-03-02 23:27:09 +0000 | |
---|---|---|
committer | 2023-03-07 15:15:20 +0000 | |
commit | 29b493f8859f1ce0eeadaba75462006499f6f26d (patch) | |
tree | b067f76614053d92c8238318b49b834bf58a7e38 /cps-ri/src | |
parent | f0f4fd810c9a249d78def4c2f10356fceb864b1f (diff) |
Drop temp table when transaction finishes
By default, temp tables are persisted until the end of the session.
This causes "Out of shared memory" errors in the database, which then
auto-vacuums the orphaned temp tables to free memory. To fix this, we
drop temp tables when the transaction finishes, using ON COMMIT DROP.
Issue-ID: CPS-1533
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: Iac47d85e9621531a4a95b99c4becc8cc95242721
Diffstat (limited to 'cps-ri/src')
-rw-r--r-- | cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java b/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java index 338b0b1c6..d798932c0 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java @@ -60,6 +60,7 @@ public class TempTableCreator { final StringBuilder sqlStringBuilder = new StringBuilder("CREATE TEMPORARY TABLE "); sqlStringBuilder.append(tempTableName); defineColumns(sqlStringBuilder, columnNames); + sqlStringBuilder.append(" ON COMMIT DROP;"); insertData(sqlStringBuilder, tempTableName, columnNames, sqlData); entityManager.createNativeQuery(sqlStringBuilder.toString()).executeUpdate(); return tempTableName; @@ -95,7 +96,7 @@ public class TempTableCreator { sqlStringBuilder.append(","); } } - sqlStringBuilder.append(");"); + sqlStringBuilder.append(")"); } private static void insertData(final StringBuilder sqlStringBuilder, |