Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 9 additions & 12 deletions wiki/src/org/labkey/wiki/WikiCollections.java
Original file line number Diff line number Diff line change
Expand Up @@ -66,17 +66,6 @@ public class WikiCollections
private final List<NavTree> _adminNavTree;
private final List<NavTree> _nonAdminNavTree;

private static final StringBuilder SQL = new StringBuilder();

static
{
SQL.append("SELECT pages.RowId, Name, Parent, Title FROM ");
SQL.append(CommSchema.getInstance().getTableInfoPages());
SQL.append(" pages LEFT OUTER JOIN ");
SQL.append(CommSchema.getInstance().getTableInfoPageVersions());
SQL.append(" versions ON pages.PageVersionId = versions.RowId WHERE Container = ? ORDER BY pages.DisplayOrder, pages.Rowid");
}

// For each wiki:
// Name
// Title
Expand All @@ -94,7 +83,15 @@ public WikiCollections(Container c)

treesByRowId.put(_root.getRowId(), _root);

new SqlSelector(CommSchema.getInstance().getSchema(), new SQLFragment(SQL, c)).forEach(rs -> {
SQLFragment sql = new SQLFragment()
.SELECT().unsafeAppend("pages.RowId, Name, Parent, Title")
.FROM().append(CommSchema.getInstance().getTableInfoPages(), "pages")
.LEFT_OUTER_JOIN().append(CommSchema.getInstance().getTableInfoPageVersions(), "versions")
.ON().unsafeAppend("pages.PageVersionId = versions.RowId")
.WHERE().unsafeAppend("Container = ?").add(c)
.ORDER_BY().unsafeAppend("pages.DisplayOrder, pages.Rowid");

new SqlSelector(CommSchema.getInstance().getSchema(), sql).forEach(rs -> {
int rowId = rs.getInt(1);
String name = rs.getString(2);
Integer parentId = rs.getInt(3);
Expand Down
20 changes: 9 additions & 11 deletions wiki/src/org/labkey/wiki/WikiManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -331,17 +331,15 @@ public void addAliases(Wiki wiki, @NotNull Collection<String> aliases, @Nullable
// Table.insert() provides no way to conditionalize the insert, resulting in constraint violation exceptions
// that kill the current transaction on PostgreSQL. We want "best effort" inserts here, so execute custom
// INSERT SQL instead.
SQLFragment sql = new SQLFragment("INSERT INTO ")
.append(CommSchema.getInstance().getTableInfoPageAliases())
.unsafeAppend(" (Container, Alias, PageRowId) SELECT ?, ?, ?\n")
.add(wiki.getContainerId())
.add(alias)
.add(wiki.getRowId())
.unsafeAppend("WHERE NOT EXISTS (SELECT * FROM ")
.append(CommSchema.getInstance().getTableInfoPageAliases())
.unsafeAppend(" WHERE Container = ? AND LOWER(Alias) = LOWER(?))")
.add(wiki.getContainerId())
.add(alias);
SQLFragment sql = new SQLFragment()
.INSERT_INTO().append(CommSchema.getInstance().getTableInfoPageAliases()).unsafeAppend(" (Container, Alias, PageRowId)")
.SELECT().unsafeAppend("?, ?, ?").add(wiki.getContainerId()).add(alias).add(wiki.getRowId())
.WHERE().unsafeAppend("NOT EXISTS (")
.SELECT().unsafeAppend("*")
.FROM().append(CommSchema.getInstance().getTableInfoPageAliases())
.WHERE().unsafeAppend("Container = ?").add(wiki.getContainerId())
.AND().unsafeAppend("LOWER(Alias) = LOWER(?)").add(alias)
.unsafeAppend(")");
int rows = executor.execute(sql);

if (0 == rows)
Expand Down
2 changes: 1 addition & 1 deletion wiki/src/org/labkey/wiki/model/WikiType.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,6 @@ public static AttachmentParentType get()
@Override
public @NotNull SQLFragment getSelectEntityIdAndDescriptionSql()
{
return new SQLFragment("SELECT EntityId, Name AS Description FROM ").append(CommSchema.getInstance().getTableInfoPages(), "pages");
return SQLFragment.unsafe("SELECT EntityId, Name AS Description FROM ").append(CommSchema.getInstance().getTableInfoPages(), "pages");
}
}
Loading