summaryrefslogtreecommitdiffstats
path: root/cps-ri/src/main/java
diff options
context:
space:
mode:
authordanielhanrahan <daniel.hanrahan@est.tech>2023-03-02 23:27:09 +0000
committerDaniel Hanrahan <daniel.hanrahan@est.tech>2023-03-07 15:15:20 +0000
commit29b493f8859f1ce0eeadaba75462006499f6f26d (patch)
treeb067f76614053d92c8238318b49b834bf58a7e38 /cps-ri/src/main/java
parentf0f4fd810c9a249d78def4c2f10356fceb864b1f (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/main/java')
-rw-r--r--cps-ri/src/main/java/org/onap/cps/spi/repository/TempTableCreator.java3
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 338b0b1c64..d798932c02 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,