All Extension tables now displayed

Original query used an odd inner join which caused some tables to
not be displayed at all, in some cases no tables were displayed at all.
The inner join was joining the value table, which is lower in the table hierarchy.

Changed the query to instead inner join upwards in the table hierarchy, joining the
plugin table.

Affects issues:
- #1260
This commit is contained in:
Rsl1122 2020-01-13 15:47:25 +02:00
parent 5908c6f41b
commit d6e3817c71

View File

@ -61,11 +61,12 @@ public class ExtensionServerTablesQuery implements Query<Map<Integer, ExtensionD
@Override
public Map<Integer, ExtensionData.Builder> executeQuery(SQLDB db) {
QueriedTables tablesWithValues = db.query(queryTableValues(db.query(queryTableProviders())));
QueriedTables tables = db.query(tableProviders());
QueriedTables tablesWithValues = db.query(tableValues(tables));
return tablesWithValues.toQueriedTabs().toExtensionDataByPluginID();
}
private Query<QueriedTables> queryTableValues(QueriedTables tables) {
private Query<QueriedTables> tableValues(QueriedTables tables) {
String selectTableValues = SELECT +
ExtensionTableProviderTable.PLUGIN_ID + ',' +
ExtensionServerTableValueTable.TABLE_ID + ',' +
@ -111,7 +112,7 @@ public class ExtensionServerTablesQuery implements Query<Map<Integer, ExtensionD
return row.toArray(new Object[0]);
}
private Query<QueriedTables> queryTableProviders() {
private Query<QueriedTables> tableProviders() {
String selectTables = SELECT +
"p1." + ExtensionTableProviderTable.ID + " as table_id," +
"p1." + ExtensionTableProviderTable.PLUGIN_ID + " as plugin_id," +
@ -144,7 +145,7 @@ public class ExtensionServerTablesQuery implements Query<Map<Integer, ExtensionD
"i6." + ExtensionIconTable.FAMILY + " as tab_icon_family," +
"i6." + ExtensionIconTable.COLOR + " as tab_icon_color" +
FROM + ExtensionTableProviderTable.TABLE_NAME + " p1" +
INNER_JOIN + ExtensionServerTableValueTable.TABLE_NAME + " v1 on v1." + ExtensionServerTableValueTable.TABLE_ID + "=p1." + ExtensionTableProviderTable.ID +
INNER_JOIN + ExtensionPluginTable.TABLE_NAME + " p2 on p2." + ExtensionPluginTable.ID + "=p1." + ExtensionTableProviderTable.PLUGIN_ID +
LEFT_JOIN + ExtensionTabTable.TABLE_NAME + " t1 on t1." + ExtensionTabTable.ID + "=p1." + ExtensionTableProviderTable.TAB_ID +
LEFT_JOIN + ExtensionIconTable.TABLE_NAME + " i1 on i1." + ExtensionIconTable.ID + "=p1." + ExtensionTableProviderTable.ICON_1_ID +
LEFT_JOIN + ExtensionIconTable.TABLE_NAME + " i2 on i2." + ExtensionIconTable.ID + "=p1." + ExtensionTableProviderTable.ICON_2_ID +
@ -152,7 +153,7 @@ public class ExtensionServerTablesQuery implements Query<Map<Integer, ExtensionD
LEFT_JOIN + ExtensionIconTable.TABLE_NAME + " i4 on i4." + ExtensionIconTable.ID + "=p1." + ExtensionTableProviderTable.ICON_4_ID +
LEFT_JOIN + ExtensionIconTable.TABLE_NAME + " i5 on i5." + ExtensionIconTable.ID + "=p1." + ExtensionTableProviderTable.ICON_5_ID +
LEFT_JOIN + ExtensionIconTable.TABLE_NAME + " i6 on i6." + ExtensionIconTable.ID + "=t1." + ExtensionTabTable.ICON_ID +
WHERE + "v1." + ExtensionServerTableValueTable.SERVER_UUID + "=?";
WHERE + "p2." + ExtensionPluginTable.SERVER_UUID + "=?";
return new QueryStatement<QueriedTables>(selectTables, 100) {
@Override