[Bug] Batch DELETE is a silent no-op on partial-update tables with remove-record-on-sequence-group
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 68/100
Piste de recherche
Commencez par exécuter la reproduction Spark SQL de l’issue et inspectez validatePKUpsertDeletable et retractWithSequenceGroup pour retracer la façon dont batch DELETE gère le champ de groupe de séquence. Comparez la sémantique de suppression attendue aux lignes -D observées, puis faites en sorte que le comportement supprime les lignes correspondantes ou rejette explicitement le cas non pris en charge, avec un test de régression pour la reproduction.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Search before asking
- I searched in the issues and found nothing similar.
Paimon version
master
Compute Engine
Spark
Minimal reproduce step
CREATE TABLE t (id INT, g INT, v BIGINT) TBLPROPERTIES (
'primary-key' = 'id',
'bucket' = '2',
'merge-engine' = 'partial-update',
'fields.g.sequence-group' = 'v',
'partial-update.remove-record-on-sequence-group' = 'g');
INSERT INTO t VALUES (1, 1, 10), (2, 1, 20);
DELETE FROM t WHERE id = 1;
SELECT * FROM t;
-- both rows are still there, the DELETE silently has no effect
What doesn't meet your expectations?
validatePKUpsertDeletable allows batch DELETE when partial-update.remove-record-on-sequence-group is set, so the statement goes through the pk-upsert delete path (scan matching rows, mark them with -D and write back). The -D rows carry the real field values including the sequence-group field, so I'd expect retractWithSequenceGroup to set currentDeleteRow and remove the row — but nothing is deleted and no error is raised.
Not sure whether this is a bug or expected (e.g. the delete row is required to carry a larger sequence value than the current one?). If it is expected, maybe validatePKUpsertDeletable should reject this case or the behavior should be documented, since a silently no-op DELETE is quite surprising.
Noticed while working on #8837 (the fast path there is gated to DEDUPLICATE, so it's unrelated to that change — reproducible on vanilla master).
Anything else?
No response
Are you willing to submit a PR?
- I'm willing to submit a PR!
- Langage dominant
- Java
- Étoiles
- 3.4k
- Forks
- 1.4k
- Merge moyen
- 1 j 14 h
- PR mergées (30 j)
- 468
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
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 apache/paimon
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
[Bug] [Hive] IndexOutOfBoundsException when converting an unavailable dynamic BETWEEN predicate Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Toutes les issues de apache/paimon
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
infinispan/infinispan#18150 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
-
untriaged
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
opensearch-project/k-NN#3597 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100