Skip to content

Commit ee457cc

Browse files
committed
change to NewSqliteStorageSupplier
since early MC versions don't support upsert by default
1 parent 3973c35 commit ee457cc

File tree

3 files changed

+28
-28
lines changed

3 files changed

+28
-28
lines changed

agent/storage-simple/src/main/java/me/hsgamer/topper/agent/storage/simple/builder/DataStorageBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public DataStorageBuilder(
2727
this.defaultSupplier = () -> new FlatStorageSupplier<>(holderBaseFolder, flatEntryConverter);
2828
register(defaultSupplier, "flat", "properties", "");
2929
register(v -> new SqliteStorageSupplier<>(databaseSettingSupplier.get(), holderBaseFolder, sqlEntryConverter), "sqlite", "sqlite3");
30-
register(v -> new OldSqliteStorageSupplier<>(databaseSettingSupplier.get(), holderBaseFolder, sqlEntryConverter), "old-sqlite");
30+
register(v -> new NewSqliteStorageSupplier<>(databaseSettingSupplier.get(), holderBaseFolder, sqlEntryConverter), "new-sqlite", "new-sqlite3");
3131
register(v -> new MySqlStorageSupplier<>(databaseSettingSupplier.get(), sqlEntryConverter), "mysql", "mysql-connector-java", "mysql-connector");
3232
}
3333

agent/storage-simple/src/main/java/me/hsgamer/topper/agent/storage/simple/supplier/OldSqliteStorageSupplier.java renamed to agent/storage-simple/src/main/java/me/hsgamer/topper/agent/storage/simple/supplier/NewSqliteStorageSupplier.java

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
import java.io.File;
77

8-
public class OldSqliteStorageSupplier<K, V> extends SqliteStorageSupplier<K, V> {
9-
public OldSqliteStorageSupplier(DatabaseSetting databaseSetting, File holderBaseFolder, SqlEntryConverter<K, V> converter) {
8+
public class NewSqliteStorageSupplier<K, V> extends SqliteStorageSupplier<K, V> {
9+
public NewSqliteStorageSupplier(DatabaseSetting databaseSetting, File holderBaseFolder, SqlEntryConverter<K, V> converter) {
1010
super(databaseSetting, holderBaseFolder, converter);
1111
}
1212

1313
@Override
1414
protected String toSaveStatement(String name, String[] keyColumns, String[] valueColumns) {
15-
StringBuilder statement = new StringBuilder("INSERT OR REPLACE INTO `")
15+
StringBuilder statement = new StringBuilder("INSERT INTO `")
1616
.append(name)
1717
.append("` (");
1818
for (int i = 0; i < keyColumns.length + valueColumns.length; i++) {
@@ -30,7 +30,28 @@ protected String toSaveStatement(String name, String[] keyColumns, String[] valu
3030
statement.append(", ");
3131
}
3232
}
33-
statement.append(");");
33+
statement.append(")");
34+
statement.append(" ON CONFLICT (");
35+
for (int i = 0; i < keyColumns.length; i++) {
36+
statement.append("`")
37+
.append(keyColumns[i])
38+
.append("`");
39+
if (i != keyColumns.length - 1) {
40+
statement.append(", ");
41+
}
42+
}
43+
statement.append(") DO UPDATE SET ");
44+
for (int i = 0; i < valueColumns.length; i++) {
45+
statement.append("`")
46+
.append(valueColumns[i])
47+
.append("` = EXCLUDED.`")
48+
.append(valueColumns[i])
49+
.append("`");
50+
if (i != valueColumns.length - 1) {
51+
statement.append(", ");
52+
}
53+
}
54+
statement.append(";");
3455
return statement.toString();
3556
}
3657
}

agent/storage-simple/src/main/java/me/hsgamer/topper/agent/storage/simple/supplier/SqliteStorageSupplier.java

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ protected void flushConnection(Connection connection) {
4343

4444
@Override
4545
protected String toSaveStatement(String name, String[] keyColumns, String[] valueColumns) {
46-
StringBuilder statement = new StringBuilder("INSERT INTO `")
46+
StringBuilder statement = new StringBuilder("INSERT OR REPLACE INTO `")
4747
.append(name)
4848
.append("` (");
4949
for (int i = 0; i < keyColumns.length + valueColumns.length; i++) {
@@ -61,28 +61,7 @@ protected String toSaveStatement(String name, String[] keyColumns, String[] valu
6161
statement.append(", ");
6262
}
6363
}
64-
statement.append(")");
65-
statement.append(" ON CONFLICT (");
66-
for (int i = 0; i < keyColumns.length; i++) {
67-
statement.append("`")
68-
.append(keyColumns[i])
69-
.append("`");
70-
if (i != keyColumns.length - 1) {
71-
statement.append(", ");
72-
}
73-
}
74-
statement.append(") DO UPDATE SET ");
75-
for (int i = 0; i < valueColumns.length; i++) {
76-
statement.append("`")
77-
.append(valueColumns[i])
78-
.append("` = EXCLUDED.`")
79-
.append(valueColumns[i])
80-
.append("`");
81-
if (i != valueColumns.length - 1) {
82-
statement.append(", ");
83-
}
84-
}
85-
statement.append(";");
64+
statement.append(");");
8665
return statement.toString();
8766
}
8867

0 commit comments

Comments
 (0)