Skip to content

Commit

Permalink
fix: querying refback with files. closes #4703 (#4713)
Browse files Browse the repository at this point in the history
  • Loading branch information
mswertz authored Feb 14, 2025
1 parent 190844a commit ad8ad61
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,22 +158,22 @@ private List<Field<?>> rowSelectFields(
if (column.isFile()) {
// check what they want to get, contents, mimetype, size, filename and/or extension
if (select.getSubselect().isEmpty() || select.has("id")) {
fields.add(field(name(column.getName())));
fields.add(field(name(alias(tableAlias), column.getName())));
}
if (select.has("contents")) {
fields.add(field(name(column.getName() + "_contents")));
fields.add(field(name(alias(tableAlias), column.getName() + "_contents")));
}
if (select.has("size")) {
fields.add(field(name(column.getName() + "_size")));
fields.add(field(name(alias(tableAlias), column.getName() + "_size")));
}
if (select.has("mimetype")) {
fields.add(field(name(column.getName() + "_mimetype")));
fields.add(field(name(alias(tableAlias), column.getName() + "_mimetype")));
}
if (select.has("filename")) {
fields.add(field(name(column.getName() + "_filename")));
fields.add(field(name(alias(tableAlias), column.getName() + "_filename")));
}
if (select.has("extension")) {
fields.add(field(name(column.getName() + "_extension")));
fields.add(field(name(alias(tableAlias), column.getName() + "_extension")));
}
} else if (column.isReference()
// if subselection, then we will add it as subselect
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -239,4 +239,26 @@ public void testRefBackUsingSubclasses() {
schema.getTable("subject").insert(row("id", "s1"));
schema.getTable("treatmentxyz").insert(row("id", "t1"));
}

@Test
void testRefBackAndFile_fix4703() {
Table test =
schema.create(
table(
"test4703",
column("id").setPkey(),
column("ref").setType(REF).setRefTable("test4703"),
column("refback").setType(REFBACK).setRefTable("test4703").setRefBack("ref"),
column("file").setType(FILE)));

assertDoesNotThrow(
() ->
test.query()
.select(
s("id"),
s("ref"),
s("refback", s("ref")),
s("file", s("id"), s("filename"), s("mimetype")))
.retrieveRows());
}
}

0 comments on commit ad8ad61

Please sign in to comment.