Skip to content

Add a helper to look up sample type row ids by name - #3193

Merged
labkey-jeckels merged 7 commits into
developfrom
fb_simpleTranslatorOptimization
Sep 30, 2026
Merged

labkey-jeckels merged 7 commits into
developfrom
fb_simpleTranslatorOptimization

Conversation

@labkey-jeckels

@labkey-jeckels labkey-jeckels commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Rationale

Adds the API helper that the cross-type sample import test needs to manufacture a rowId/name collision against the real value the server assigned, rather than a hardcoded number that collides only when the sequence cooperates

Related Pull Requests

Changes

  • New helper method
  • Attempt to fix flakiness in TimeChartDateBasedTest

@labkey-jeckels labkey-jeckels self-assigned this Sep 13, 2026
@labkey-jeckels
labkey-jeckels requested review from a team and labkey-danield and removed request for a team September 29, 2026 14:47
@labkey-jeckels
labkey-jeckels merged commit d699ae2 into develop Sep 30, 2026
6 checks passed
@labkey-jeckels
labkey-jeckels deleted the fb_simpleTranslatorOptimization branch September 30, 2026 00:22
labkey-jeckels added a commit to LabKey/platform that referenced this pull request Sep 30, 2026
## Rationale
Speed up imports with lookup columns by resolving each distinct lookup
value once per import instead of once per row. #8020 made this change
but was reverted in #8028: a cached miss let an integer key fall through
to title-column matching, so a RowId could resolve to a different row
whose name was that number. This version keeps the caching and leaves
lookup resolution exactly as it was before #8020. On a large sample
import, the per-row lookups accounted for about 1.5M queries and 17
minutes of database time.

## Related Pull Requests
- LabKey/limsModules#2476
- LabKey/testAutomation#3193

## Changes
- Resolved lookups and String-keyed misses stay cached for the whole
import instead of being discarded on every row
- Each lookup cache is capped so a very large import can't grow it
without bound
- A value already typed as a primary key still never reaches name
matching, as before the caching
- Tests for cache retention, the cap, and that resolution behavior

## Tasks
- [x] Claude Code Review
- [x] Manual Testing - not needed
- [x] Test Automation
- [x] Check test results
  - [x] [Daily Postgres](https://teamcity.labkey.org/build/4194033)
- [x] [Nightly SM/FM
postgres](https://teamcity.labkey.org/build/4194049)
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