Skip to content

Commit ab01e75

Browse files
committed
Move loop invariants out of loops inside batch storage statements
1 parent aed66e9 commit ab01e75

9 files changed

Lines changed: 15 additions & 25 deletions

File tree

Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/transactions/results/StorePlayerTableResultTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,9 @@ private void insertNewRows(Integer tableID, Integer afterRow, List<Object[]> row
132132
public void prepare(PreparedStatement statement) throws SQLException {
133133
int maxColumnSize = Math.min(table.getMaxColumnSize(), 4); // Limit to maximum 4 columns, or how many column names there are.
134134

135+
statement.setInt(1, tableID);
135136
for (int rowNumber = afterRow; rowNumber < rows.size(); rowNumber++) {
136137
Object[] row = rows.get(rowNumber);
137-
statement.setInt(1, tableID);
138138
statement.setString(2, playerUUID.toString());
139139
for (int i = 0; i < maxColumnSize; i++) {
140140
Object value = row[i];
@@ -167,6 +167,7 @@ private void updateRows(Integer tableID, Integer untilRow, List<Object[]> rows)
167167
public void prepare(PreparedStatement statement) throws SQLException {
168168
int maxColumnSize = Math.min(table.getMaxColumnSize(), 4); // Limit to maximum 4 columns, or how many column names there are.
169169

170+
statement.setInt(5, tableID);
170171
for (int rowNumber = 0; rowNumber < untilRow; rowNumber++) {
171172
Object[] row = rows.get(rowNumber);
172173

@@ -179,7 +180,6 @@ public void prepare(PreparedStatement statement) throws SQLException {
179180
statement.setNull(1 + valueIndex, Types.VARCHAR);
180181
}
181182

182-
statement.setInt(5, tableID);
183183
statement.setString(6, playerUUID.toString());
184184
statement.setInt(7, rowNumber);
185185

Plan/common/src/main/java/com/djrapitops/plan/extension/implementation/storage/transactions/results/StoreServerTableResultTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ private void insertNewRows(Integer tableID, Integer afterRow, List<Object[]> row
130130
public void prepare(PreparedStatement statement) throws SQLException {
131131
int maxColumnSize = Math.min(table.getMaxColumnSize(), 5); // Limit to maximum 5 columns, or how many column names there are.
132132

133+
statement.setInt(1, tableID);
133134
for (int rowNumber = afterRow; rowNumber < rows.size(); rowNumber++) {
134135
Object[] row = rows.get(rowNumber);
135-
statement.setInt(1, tableID);
136136
statement.setString(2, serverUUID.toString());
137137
for (int i = 0; i < maxColumnSize; i++) {
138138
Object value = row[i];
@@ -166,6 +166,7 @@ private void updateRows(Integer tableID, Integer untilRow, List<Object[]> rows)
166166
public void prepare(PreparedStatement statement) throws SQLException {
167167
int maxColumnSize = Math.min(table.getMaxColumnSize(), 5); // Limit to maximum 5 columns, or how many column names there are.
168168

169+
statement.setInt(6, tableID);
169170
for (int rowNumber = 0; rowNumber < untilRow; rowNumber++) {
170171
Object[] row = rows.get(rowNumber);
171172

@@ -178,7 +179,6 @@ public void prepare(PreparedStatement statement) throws SQLException {
178179
statement.setNull(1 + valueIndex, Types.VARCHAR);
179180
}
180181

181-
statement.setInt(6, tableID);
182182
statement.setString(7, serverUUID.toString());
183183
statement.setInt(8, rowNumber);
184184

Plan/common/src/main/java/com/djrapitops/plan/storage/database/queries/LargeStoreQueries.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ public static Executable storeAllPlanServerInformation(Collection<Server> server
157157
return new ExecBatchStatement(ServerTable.INSERT_STATEMENT) {
158158
@Override
159159
public void prepare(PreparedStatement statement) throws SQLException {
160+
statement.setBoolean(4, true);
160161
for (Server server : servers) {
161162
ServerUUID serverUUID = server.getUuid();
162163
if (serverUUID == null) {
@@ -166,7 +167,6 @@ public void prepare(PreparedStatement statement) throws SQLException {
166167
statement.setString(1, serverUUID.toString());
167168
statement.setString(2, server.getName());
168169
statement.setString(3, server.getWebAddress());
169-
statement.setBoolean(4, true);
170170
statement.setBoolean(5, server.isProxy());
171171
statement.setString(6, server.getPlanVersion());
172172
statement.addBatch();
@@ -478,8 +478,8 @@ public static Executable storeGroupPermissionRelations(Map<String, List<String>>
478478
public void prepare(PreparedStatement statement) throws SQLException {
479479
for (var permissionsOfGroup : groupPermissions.entrySet()) {
480480
String group = permissionsOfGroup.getKey();
481+
statement.setString(1, group);
481482
for (String permission : permissionsOfGroup.getValue()) {
482-
statement.setString(1, group);
483483
statement.setString(2, permission);
484484
statement.addBatch();
485485
}
@@ -501,8 +501,8 @@ public static Executable storeGroupPermissionIdRelations(Map<Integer, List<Integ
501501
public void prepare(PreparedStatement statement) throws SQLException {
502502
for (var permissionsOfGroup : groupPermissions.entrySet()) {
503503
Integer groupId = permissionsOfGroup.getKey();
504+
statement.setInt(1, groupId);
504505
for (Integer permissionId : permissionsOfGroup.getValue()) {
505-
statement.setInt(1, groupId);
506506
statement.setInt(2, permissionId);
507507
statement.addBatch();
508508
}

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/events/BatchBanStatusTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,14 @@ private Executable updateBanStatus() {
6161
return new ExecBatchStatement(sql) {
6262
@Override
6363
public void prepare(PreparedStatement statement) throws SQLException {
64+
statement.setBoolean(1, true);
6465
for (UUID bannedPlayerUUID : bannedPlayerUUIDs) {
65-
statement.setBoolean(1, true);
6666
statement.setString(2, bannedPlayerUUID.toString());
6767
statement.setString(3, serverUUID.toString());
6868
statement.addBatch();
6969
}
70+
statement.setBoolean(1, false);
7071
for (UUID unbannedPlayerUUID : unbannedPlayerUUIDs) {
71-
statement.setBoolean(1, false);
7272
statement.setString(2, unbannedPlayerUUID.toString());
7373
statement.setString(3, serverUUID.toString());
7474
statement.addBatch();

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/events/StorePluginVersionsTransaction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ protected void performOperations() {
5050
execute(new ExecBatchStatement(PluginVersionTable.INSERT_STATEMENT) {
5151
@Override
5252
public void prepare(PreparedStatement statement) throws SQLException {
53+
statement.setLong(4, time);
5354
for (PluginMetadata plugin : changeList) {
5455
statement.setString(1, serverUUID.toString());
5556
statement.setString(2, StringUtils.truncate(plugin.getName(), PluginVersionTable.MAX_NAME_LENGTH));
@@ -58,7 +59,6 @@ public void prepare(PreparedStatement statement) throws SQLException {
5859
} else {
5960
statement.setString(3, StringUtils.truncate(plugin.getVersion(), PluginVersionTable.MAX_VERSION_LENGTH));
6061
}
61-
statement.setLong(4, time);
6262
statement.addBatch();
6363
}
6464
}

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/init/RemoveOldExtensionsTransaction.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,7 @@ private void removeValues(int providerID) {
6666
ExtensionServerValueTable.TABLE_NAME,
6767
ExtensionGroupsTable.TABLE_NAME
6868
}) {
69-
execute(new ExecStatement(DELETE_FROM + table + WHERE + "provider_id=?") {
70-
@Override
71-
public void prepare(PreparedStatement statement) throws SQLException {
72-
statement.setInt(1, providerID);
73-
}
74-
});
69+
execute(DELETE_FROM + table + WHERE + "provider_id=" + providerID);
7570
}
7671
}
7772

@@ -80,12 +75,7 @@ private void removeTableValues(Integer providerID) {
8075
ExtensionPlayerTableValueTable.TABLE_NAME,
8176
ExtensionServerTableValueTable.TABLE_NAME
8277
}) {
83-
execute(new ExecStatement(DELETE_FROM + table + WHERE + "table_id=?") {
84-
@Override
85-
public void prepare(PreparedStatement statement) throws SQLException {
86-
statement.setInt(1, providerID);
87-
}
88-
});
78+
execute(DELETE_FROM + table + WHERE + "table_id=" + providerID);
8979
}
9080
}
9181

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/patches/NicknameLastSeenPatch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,11 +131,11 @@ public void prepare(PreparedStatement statement) throws SQLException {
131131
for (Map.Entry<Integer, Set<Nickname>> entry : nicknames.entrySet()) {
132132
Integer userId = entry.getKey();
133133
Set<Nickname> nicks = entry.getValue();
134+
statement.setInt(3, userId);
134135
for (Nickname nick : nicks) {
135136
Integer serverID = serverIDsByUUID.get(nick.getServerUUID());
136137
statement.setLong(1, nick.getDate());
137138
statement.setString(2, nick.getName());
138-
statement.setInt(3, userId);
139139
statement.setInt(4, serverID);
140140
statement.addBatch();
141141
}

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/webuser/GrantWebPermissionToGroupsWithPermissionTransaction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ protected void performOperations() {
6262
execute(new ExecBatchStatement(sql) {
6363
@Override
6464
public void prepare(PreparedStatement statement) throws SQLException {
65+
statement.setInt(2, permissionId);
6566
for (Integer groupId : groupIds) {
6667
statement.setInt(1, groupId);
67-
statement.setInt(2, permissionId);
6868
statement.addBatch();
6969
}
7070
}

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/webuser/StoreWebGroupTransaction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ private void insertPermissionIdsOfGroup(int id, List<Integer> permissionIds) {
8686
execute(new ExecBatchStatement(WebGroupToPermissionTable.INSERT_STATEMENT) {
8787
@Override
8888
public void prepare(PreparedStatement statement) throws SQLException {
89+
statement.setInt(1, id);
8990
for (Integer permissionId : permissionIds) {
90-
statement.setInt(1, id);
9191
statement.setInt(2, permissionId);
9292
statement.addBatch();
9393
}

0 commit comments

Comments
 (0)