Visitor and evaluator edge cases can over-prune files or mishandle nulls
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- data, testing-qa
Direção de pesquisa
Comece por _StrictMetricsEvaluator.visit_not_equal, visit_not_in e eval; depois, inspecione os métodos de comparação e visit_not_nan em ResidualVisitor. Execute os testes existentes para stats, nullable partitions e o comportamento de NotNaN; considera-se concluído quando os casos de borda tiverem semântica consistente, sem pruning inseguro nem erros no tratamento de valores nulos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Several visitor/evaluator edge cases appear unsafe or inconsistent:
-
_StrictMetricsEvaluator.visit_not_equal/visit_not_inreturnROWS_MUST_MATCHwhen a file can contain nulls or NaNs. Example stats with[null, 5]or[NaN, 5.0]and lower/upper bounds both5return true forNotEqualTo("x", 5)/NotIn("x", {5}), even though one row does not match. This can incorrectly mark whole files deleted. -
_StrictMetricsEvaluator.evalreturnsROWS_MUST_MATCHforrecord_count <= 0.record_count=0is vacuously true, butrecord_count=-1is unknown per the local comment; evenAlwaysFalse()returns true. -
ResidualVisitorcomparison methods directly compare partition values to literals. A nullable identity partition value ofNonewithLessThan("x", 1)raisesTypeError, while row evaluation returns false. -
ResidualVisitor.visit_not_nan(None)returnsAlwaysFalse, while expression evaluation treatsNotNaN(None)as true. Existing tests encode both behaviors, so the semantics are inconsistent.
Validated against the current tree; examples use stats/partition shapes already supported by the repo tests.
- Linguagem predominante
- Python
- Estrelas
- 1.1k
- Forks
- 589
- Merge médio
- 2d 11h
- PRs com merge (30d)
- 67
Preparar o ambiente
Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/iceberg-python
-
asf-allowlist-check fails on every PR: the pinned setup-uv ref expired from the ASF allowlistAbertakind:bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
apache/iceberg-python#4026 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
apache/iceberg-python#4010 · 3 comentários · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/iceberg-python#3996 ·
Mantenedores costumam responder em até 1 dia
-
Deletion vector bitmap count is read from the blob and used as a loop bound without validationAbertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
apache/iceberg-python#3979 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
apache/iceberg-python#3885 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de apache/iceberg-python
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
PedestrianDynamics/pyFDS-Evac#343 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
theskumar/python-dotenv#708 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 2 dias
-
Docs Timedelta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
pandas-dev/pandas#69919 ·
Mantenedores costumam responder em até 1 dia
-
API documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
zephyrproject-rtos/west#1009 · 2 comentários ·
Mantenedores costumam responder em até 3 dias