The Wire · Showcase
Django's GIS fights Oracle's geometry surprise
By RepoJournal · Filed · About Django
Oracle 23.9's new behavior is breaking Django's LayerMapping, and the fix is to skip the tests.
A subtle Oracle shift is forcing Django's GIS layer to adapt: Oracle 23.9 now unpack 1-element GeometryCollections, so `LayerMapping` receives a bare `Polygon` and crashes with `AttributeError: 'Polygon' object has no attribute 'add'` [1]. The immediate response is to skip those tests on this Oracle version [1] rather than patch the saving logic. In parallel, Django documents a long-standing error when default ordering fields are missing from combined queries, closing ticket #37258 with thanks to Adam Johnson [2]. Meanwhile, the Django code-of-conduct repo streamlines its housekeeping: auto-generated changelog PRs now get an `expedited` label so they can skip the standard 30-day public review, because "Changelog updates are routine and shouldn't wait" [3][4]. It's a quiet period overall, with 4 commits and 3 PRs across two repos, but the Oracle fix matters if you run GIS on that version.
One email a day. Unsubscribe in one click.
Keep up with Django in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → If you run Django GIS with Oracle 23.9, track PR #21802 and prepare to skip the 1-element GeometryCollection tests django/django [plan]
- → Review your combined queries for missing default ordering fields and check docs once the fix lands django/django [monitor]
- → No action needed on the changelog expedited label, but expect faster routine PR merges in code-of-conduct django/code-of-conduct [monitor]
References
- [1] Skipped tests involving 1-element GeometryCollections on Oracle 23.9. django/django
- [2] Fixed #37258, Refs #36644 -- Documented error when default ordering fields are missing in combined queries. django/django
- [3] Merge pull request #116 from django/add-expedited-label-to-changelog-pr django/code-of-conduct
- [4] Add expedited label to auto-generated changelog PRs django/code-of-conduct