Skip to content

Conversation

@labkey-nicka
Copy link
Contributor

@labkey-nicka labkey-nicka commented Oct 27, 2025

Rationale

This addresses Issue 53567 by refactoring the "Alias" column for data classes and sample types away from the traditional multi-value foreign key (MVFK) to an inline join on the values.

Related Pull Requests

Changes

  • Alias column is now an array of string values.
  • Alias is no longer a lookup column.
  • Introduce ColumnInfo.isMultiValued() to allow columns to declare they are multi-value. Formerly, everything needed to be an instance of MultiValueForeignKey.
  • Refactor group concat sql generation for postgres to use string_agg() and ::text. Reduces per item processing.
  • Consolidate duplicated logic for coercing type values in query update services.
  • Migrate regression test for Issue 43241.

Tasks

  • Manual Testing (needs volunteer) 📍
  • Needs Automation
  • Verify Fix

}
}
return sb.toString();
return String.join(", ", (List) value);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see this isn't new, but I really don't like it. This should be a robustly round-trippable format. In https://docs.google.com/document/d/1oXkzxDD7hIQy9bSp3KQ9pjG69kdcoCoRPRHT4y759fo/edit?tab=t.0#heading=h.xa25n05t4ysx I proposed using the same format Google Sheets uses for multi-choice fields. The closest thing we have is PageFlowUtil.joinValuesToStrin()/splitStringToValues(). But it is not Sheets compatible. We should write a new method maybe PageFlowUtil.joinValuesForExport()/splitValuesForImport().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants