Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUGFIX] Ensure working AvalexConfigurationRepository->findByRootPageUid() #47

Merged

Conversation

sbuerk
Copy link
Contributor

@sbuerk sbuerk commented Jan 3, 2025

  • [TASK] Use correct TYPO3 v13 LTS version as minimal constraint
    Enforce TYPO3 13.4.0 LTS as minimmal version and additionally
    ensure PHP versions.

    Used command(s):

    composer require \
      "typo3/cms-core":"^13.4" \
      "php":"^8.2"
  • [TASK] Align php version support of Build/Scripts/runTests.sh
    This change aligns the PHP version support for the
    Build/Scripts/runTests.sh dispatcher script to
    the version range of supported TYPO3 versions and
    set 8.2 as new default PHP version.

    Github action workflow file is adjusted along the
    way.

  • [BUGFIX] Ensure working AvalexConfigurationRepository->findByRootPageUid()
    Repository method AvalexConfigurationRepository->findByRootPageUid()
    builds a conditinal based query using inSet() or a direct value
    filtering and requires a prioritized ordering to retrieve the wanted
    record as first record.

    Different database vendors has different requirements which requires
    to compose sql queries precisly and in a deterministic way.

    This change ...

    • Avoids named parameters for the inSet() filter, which does not
      work properly for all database vendors by using the value direct.
    • Reuse the inSet() filter as first sorting criteria (1st level) to
      reflect the matched state as highes priority records, keeping the
      global ordering as second level.
    • Adds uid as last sorting criteria (3rd) level to take care of a
      deterministic sorting in case 1st and 2nd level produces multiple
      records to avoid randomized query result retrieval.

sbuerk added 3 commits January 3, 2025 18:35
Enforce TYPO3 13.4.0 LTS as minimmal version and additionally
ensure PHP versions.

Used command(s):

```shell
composer require \
  "typo3/cms-core":"^13.4" \
  "php":"^8.2"
```
This change aligns the PHP version support for the
`Build/Scripts/runTests.sh` dispatcher script to
the version range of supported TYPO3 versions and
set `8.2` as new default PHP version.

Github action workflow file is adjusted along the
way.
…eUid()`

Repository method `AvalexConfigurationRepository->findByRootPageUid()`
builds a conditinal based query using `inSet()` or a direct value
filtering and requires a prioritized ordering to retrieve the wanted
record as first record.

Different database vendors has different requirements which requires
to compose sql queries precisly and in a deterministic way.

This change ...

*   Avoids `named parameters` for the `inSet()` filter, which does not
    work properly for all database vendors by using the value direct.
*   Reuse the `inSet()` filter as first sorting criteria (1st level) to
    reflect the matched state as highes priority records, keeping the
    `global` ordering as second level.
*   Adds `uid` as last sorting criteria (3rd) level to take care of a
    deterministic sorting in case 1st and 2nd level produces multiple
    records to avoid randomized query result retrieval.
@sfroemkenjw sfroemkenjw merged commit 978ae5a into jweiland-net:typo3_13_compatibility Jan 7, 2025
0 of 3 checks passed
@sbuerk sbuerk deleted the v13-postgres-fix branch January 7, 2025 11:20
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