ALTER TABLE OF accepts object tables without ROWID and breaks REF
Les mainteneurs répondent en général sous 1 jour
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 25/100
Piste de recherche
The issue describes a narrow guard and regression coverage, but names no source or test files. Start by inspecting linked PR #2936 to find the affected ALTER TABLE conversion path and regression tests. Done means rejecting conversion without ROWID while leaving the table unchanged, permitting conversion after adding ROWID, preserving REF/DEREF behavior, and allowing ordinary composite conversion without ROWID.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What happened?
ALTER TABLE ... OF accepts a table without ROWID when the target is an Oracle object type. It records the table as an object table, but every REF() expression then fails with REF requires an object table with ROWID (42809). The creation path already requires ROWID for object tables.
What did you expect to happen?
The conversion should enforce the same ROWID requirement as object-table creation and reject an unsupported conversion before changing the table's type. Adding ROWID first, in Oracle compatibility mode, should permit the conversion. Ordinary composite typed tables should continue to support tables without ROWID.
How can we reproduce it (as minimally and precisely as possible)?
SET ivorysql.compatible_mode = oracle;
CREATE TYPE converted_person AS OBJECT (id integer);
CREATE TABLE no_rowids (id integer) WITHOUT ROWID;
INSERT INTO no_rowids VALUES (11);
SET ivorysql.compatible_mode = pg;
ALTER TABLE no_rowids OF converted_person; -- succeeds incorrectly
SELECT relhasrowid, reloftype = 'converted_person'::regtype
FROM pg_class WHERE oid = 'no_rowids'::regclass;
-- f | t
SET ivorysql.compatible_mode = oracle;
SELECT REF(p) FROM no_rowids p;
-- ERROR: REF requires an object table with ROWID
IvorySQL version
Upstream master at 2c5e8dd6676c443571549b801543e6590a260246, reproduced on 2026-10-26 with a debug/cassert build.
Compatible mode
Both: Oracle for ROWID DDL and REF; PG for the type conversion.
Server encoding
UTF8.
OS version
Linux/x86_64, GCC 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04.1); assertion-enabled debug build.
Anything else we need to know?
A narrow guard and regression coverage have been validated independently. The tests check rejection and unchanged state, adding ROWID to existing rows before conversion, REF/DEREF of existing and new rows, and ordinary composite conversion without ROWID. This is separate from #2004's implicit ROWID-index maintenance issue.
Before submitting
- I confirmed the problem still happens on current
master. - I searched existing issues and found no duplicate in the saved results.
Assisted-by: Codex:GPT-6
Percentage of AI-generated code: 100%
- Langage dominant
- C
- Étoiles
- 1.1k
- Forks
- 232
- Merge moyen
- 2 j 3 h
- PR mergées (30 j)
- 8
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de IvorySQL/IvorySQL
-
PostgreSQL::Version rejects documented full psql version outputPeut-être pris @feitiansiyan l’a pris il y a 1 jour. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
IvorySQL/IvorySQL#2999 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
UTL_FILE.NEW_LINE silently ignores negative line countsPeut-être pris @X-LightYear l’a pris il y a 9 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
IvorySQL/IvorySQL#2634 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Character function regression assumes normal identifier case on default interchange clustersPeut-être pris @zhouxj52 l’a pris il y a 16 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
IvorySQL/IvorySQL#2470 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
xml2 no-libxslt expected files do not match PG/Oracle input scriptsPeut-être pris @zhouxj52 l’a pris il y a 16 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
IvorySQL/IvorySQL#2468 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Title: Build failure in DBMS_SCHEDULER due to incorrect placement of pg_noreturnPeut-être pris @darshan-s-44 l’a pris il y a 23 jours. Ouvertebug good first issue
Difficulté 1/5 Moins d'une heure Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de IvorySQL/IvorySQL
Issues similaires
-
bug core p3
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
RunanywhereAI/runanywhere-sdks#1258 ·
Les mainteneurs répondent en général sous 1 jour
-
Plugin mapper: latency_samples is 0 for eight UAD 11.8.3 plug-ins that delay by 55-56 samplesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
rolotrealanis98/open-apollo#126 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
cython/cython#8110 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
onehumanbeing/esp32-iphone-agent#62 ·
Les mainteneurs répondent en général sous 1 jour
-
ai-driven-fuzzing bug claude Minor
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
linagora/open-bastion#425 ·
Les mainteneurs répondent en général sous 1 jour