Uploaded image for project: 'phpBB'
  1. phpBB
  2. PHPBB-17766

Oracle table deletion leaves identity sequence behind and prevents recreation

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Major Major
    • None
    • 4.0.0-b1
    • None
    • PHP 8.4.26; phpBB 4.0.0-a3-dev; Oracle AI Database 26ai Free release 23.26.3.0.0; Linux disposable containers.

      Codex reproduced an Oracle failure when purging and reinstalling an extension
      on phpBB 4.0. The Doctrine-backed DB tools drop the extension's table but leave
      its identity sequence behind. Recreating the table then fails with
      `ORA-00955: name is already used by an existing object`.

      Reproduction:

      1. On phpBB 4.0 with Oracle, create a table through DB tools with a single
      integer primary key using `auto_increment`.
      2. Drop it through `sql_table_drop()` or an extension's schema-revert migration.
      3. Recreate the same table through DB tools.
      4. Observe ORA-00955 because the existing table identity sequence was not removed.

      Expected: dropping the table removes its identity sequence so that the table
      can be recreated. Unrelated sequences must remain intact.

      Oracle introspection returns uppercase identifiers and does not mark the
      trigger-backed identity column as autoincrement. Cleanup therefore needs to
      recognize the matching sequence under those conditions as well as remove it
      from the schema before generating the drop statements.

      Codex added two focused schema regression cases that preserve an unrelated
      sequence. Both passed. On a disposable phpBB 4.0.0-a3-dev board with PHP 8.4.26
      and Oracle AI Database 26ai Free release 23.26.3, Codex reproduced the original
      purge/reinstall failure, then verified disable/re-enable preservation, purge,
      and clean reinstall after applying the correction.

      Patch and regression tests: https://github.com/bonelifer/phpbb/pull/3

      —

      Investigated and written by [Codex](https://openai.com/codex/) on behalf of William Jacoby ([bonelifer](https://github.com/bonelifer)).

            Unassigned Unassigned
            bonelifer bonelifer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: