From 1a19ec85f6fa8b466dd1a82c4fe7074b863bef78 Mon Sep 17 00:00:00 2001 From: Risto Lahtela <24460436+AuroraLS3@users.noreply.github.com> Date: Tue, 20 Apr 2021 10:34:10 +0300 Subject: [PATCH] Hide player tables from server page with a special field - values_for differentiates between different table server and player tables It is an INT field because Groups might get their tables at some point. 0 for player 1 for server (2 for group) Affects issues: - Fixed #1722 --- .../queries/ExtensionServerTablesQuery.java | 3 +- .../StoreTableProviderTransaction.java | 22 +++++--- .../plan/storage/database/SQLDB.java | 3 +- .../tables/ExtensionTableProviderTable.java | 5 ++ .../ExtensionTableProviderValuesForPatch.java | 52 +++++++++++++++++++ 5 files changed, 76 insertions(+), 9 deletions(-) create mode 100644 Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/patches/ExtensionTableProviderValuesForPatch.java diff --git a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerTablesQuery.java b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerTablesQuery.java index 6c38610ab..62836833a 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerTablesQuery.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/queries/ExtensionServerTablesQuery.java @@ -153,7 +153,8 @@ public class ExtensionServerTablesQuery implements Query. + */ +package com.djrapitops.plan.storage.database.transactions.patches; + +import com.djrapitops.plan.storage.database.sql.building.Sql; +import com.djrapitops.plan.storage.database.sql.tables.ExtensionServerTableValueTable; +import com.djrapitops.plan.storage.database.sql.tables.ExtensionTableProviderTable; + +import static com.djrapitops.plan.storage.database.sql.building.Sql.*; +import static com.djrapitops.plan.storage.database.sql.tables.ExtensionTableProviderTable.*; + +/** + * Adds values_for field to plan_extension_tables + */ +public class ExtensionTableProviderValuesForPatch extends Patch { + + @Override + public boolean hasBeenApplied() { + return hasColumn( + TABLE_NAME, + VALUES_FOR + ); + } + + @Override + protected void applyPatch() { + addColumn(TABLE_NAME, VALUES_FOR + " " + Sql.INT + " DEFAULT " + VALUES_FOR_PLAYER); + + String selectServerTableIDs = SELECT + DISTINCT + + ExtensionServerTableValueTable.TABLE_ID + + FROM + ExtensionServerTableValueTable.TABLE_NAME; + + String updateSql = "UPDATE " + TABLE_NAME + " SET " + VALUES_FOR + "=" + VALUES_FOR_SERVER + + WHERE + ExtensionTableProviderTable.ID + " IN (" + selectServerTableIDs + ")"; + + execute(updateSql); + } +}