[RDataFrame] Code that transforms `#var` alias to `R_rdf_sizeof_var` does not respect string literals
Los mantenedores suelen responder en 1 día
@vepadulano ya está trabajando en esto.
Desde el 22/10/2026.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 71/100
Línea de trabajo
Start with the alias transformation near line 183 of tree/dataframe/src/RDFInterfaceUtils.cxx and reproduce the problem with the provided RDataFrame example. Check how the transformation handles string literals containing #; done means the example prints and stores the original strings, and relevant tests cover this behavior.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Check duplicate issues.
- Checked for duplicates
Description
The code before
https://github.com/root-project/root/blob/72f8ef3b95285bb0bb61bc8310701021ab52fad8/tree/dataframe/src/RDFInterfaceUtils.cxx#L183
fails when the RDataFrame expression preProcessedExpr contains string literals that contain # characters. In this case, the string literal is wrongly modified altering data used in the expression.
Reproducer
#!/usr/bin/env python3
import ROOT
CPP_CODE = """
std::string
printString(const std::string& s)
{
std::cout << s << std::endl;
return s;
}
"""
ROOT.gInterpreter.Declare(CPP_CODE)
ROOT.RDataFrame(1) \
.Define("col", 'printString("#a")') \
.Filter('printString("#b"); return true') \
.Display(("col", )).Print()
# should print "#a" and "#b" to the console and `col` should contain "#a"
# instead, it prints "R_rdf_sizeof_b" and "R_rdf_sizeof_a" to the console and `col` contains "R_rdf_sizeof_a"
ROOT version
This was introduced by 819a3829cc350bc69386a201ee59340f61c35342 and affects all ROOT versions since 6.25.02. Verified using 6.32.20 and 6.40.04.
Installation method
built from source
Operating system
AlmaLinux 9.8
Additional context
No response
- Lenguaje dominante
- C++
- Estrellas
- 3.3k
- Forks
- 1.6k
- Merge medio
- 2 d 17 h
- PR fusionados (30 d)
- 188
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de root-project/root
-
thisroot.sh: wrong ROOTSYS in zsh when the shell's command line has a newlinePosiblemente ocupada @dpiparo la tomó hace 4 días. Abiertobug in:Build System
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
root-project/root#23746 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[tmva][sofie] Inputs of unsupported type (e.g. float16) give code that does not compile instead of an errorPosiblemente ocupada @lmoneta la tomó hace 14 días. AbiertoAI-Assisted bug in:SOFIE
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
root-project/root#23655 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
TDataMember::GetOffset interfers to TDataMember::GetOffsetCintPosiblemente ocupada @pcanal la tomó hace 1 día. Abiertobug in:Core Libraries
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
root-project/root#23777 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
`TChain::GetEntries` internal caching ineffective?Posiblemente ocupada @pcanal la tomó hace 7 días. Abiertoimprovement in:TTree
root-project/root#23738 · 2 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[PyROOT] Segfault at exit deleting a branch with a Cling-generated collection destructor after cppyy instantiated a templatePosiblemente ocupada @guitargeek la tomó hace 7 días. Abiertobug in:Python Interface test wit cppjit
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
root-project/root#23728 · 9 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de root-project/root
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
foxglove/mcap#1907 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
telegramdesktop/tdesktop#31505 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
ll-builder shell completions omit existing lockfile commands and --lockedPosiblemente ocupada @project-nju-learner la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
OpenAtom-Linyaps/linyaps#2291 ·
Los mantenedores suelen responder en 1 día