Skip to content

Revert support for case insensitive sample/data names#6868

Merged
XingY merged 3 commits intodevelopfrom
fb_revertSampleNameCase
Jul 24, 2025
Merged

Revert support for case insensitive sample/data names#6868
XingY merged 3 commits intodevelopfrom
fb_revertSampleNameCase

Conversation

@XingY
Copy link
Contributor

@XingY XingY commented Jul 23, 2025

Rationale

There was a set of PRs that got merged to disallow insert/update of case insensitive sample/data names. However, this has resulted in performance degradation of sample imports. Furthermore, this is more of a half way solution that treats name as case insensitive at insert/rename time, but requires exact match at update time. For those reasons, we have decided to revert the previous PRs for now. An alternative database level collation approach will be explored at a future time.

Minor: there was a client side change to show exact case as user provided instead of lower-case when generating duplicate error on the editable grid. This improvement is not included in the revert.

Related Pull Requests

Original Pull Requests that added support for case insensitive names

Pull Requests attempts to improve import performance (never merged)

Changes

# Conflicts:
#	api/src/org/labkey/api/query/AbstractQueryUpdateService.java
#	experiment/src/client/test/integration/DataClassCrud.ispec.ts
}, { ...topFolderOptions, ...editorUserOptions }).expect((result) => {
errorResp = JSON.parse(result.text);
expect(errorResp.exception.indexOf('already exists') > -1).toBeTruthy();
expect(errorResp.exception.indexOf('duplicate key') > -1).toBeTruthy();
Copy link
Contributor

Choose a reason for hiding this comment

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

Looks like a change to BOGUS_KEY_UPDATE_ERROR (above) did not get reverted.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yep, fixed. Thanks for catching it.

dialect.appendInClauseSql(sql, sampleIds);

Map<Integer, Pair<Integer, String>> sampleAliquotCounts = new TreeMap<>(); // Order sample by rowId to reduce probability of deadlock with search indexer
Map<Integer, Pair<Integer, String>> sampleAliquotCounts = new HashMap<>();
Copy link
Contributor

Choose a reason for hiding this comment

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

This change seems like it was rather unrelated to the issue fix. I'm ok with reverting this too, but just wanted to check that it is intentional

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good point. Changes added back.

@XingY XingY merged commit ed8a8aa into develop Jul 24, 2025
13 checks passed
@XingY XingY deleted the fb_revertSampleNameCase branch July 24, 2025 16:35
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.

2 participants