[RDataFrame] Code that transforms `#var` alias to `R_rdf_sizeof_var` does not respect string literals
I maintainer di solito rispondono entro 1 giorno
@vepadulano ci sta già lavorando.
Dal 22/10/2026.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 71/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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
- Lingua principale
- C++
- Stelle
- 3.3k
- Fork
- 1.6k
- Merge medio
- 2g 16h
- PR unite (30g)
- 194
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di root-project/root
-
thisroot.sh: wrong ROOTSYS in zsh when the shell's command line has a newlineForse già presa @dpiparo l’ha presa 3 giorni fa. Apertabug in:Build System
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
root-project/root#23746 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[tmva][sofie] Inputs of unsupported type (e.g. float16) give code that does not compile instead of an errorForse già presa @lmoneta l’ha presa 13 giorni fa. ApertaAI-Assisted bug in:SOFIE
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
root-project/root#23655 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
TDataMember::GetOffset interfers to TDataMember::GetOffsetCintForse già presa @pcanal l’ha presa oggi. Apertabug in:Core Libraries
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
root-project/root#23777 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
`TChain::GetEntries` internal caching ineffective?Forse già presa @pcanal l’ha presa 6 giorni fa. Apertaimprovement in:TTree
root-project/root#23738 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
[PyROOT] Segfault at exit deleting a branch with a Cling-generated collection destructor after cppyy instantiated a templateForse già presa @guitargeek l’ha presa 6 giorni fa. Apertabug in:Python Interface test wit cppjit
Difficoltà 5/5 Più di una settimana Idoneità per principianti 12/100
root-project/root#23728 · 9 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di root-project/root
Issue simili
-
bug topic:shaders
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
godotengine/godot#124800 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
swiftlang/indexstore-db#306 ·
-
Python PointcloudAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ArduCAM/Arducam_tof_camera#125 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
maplibre/maplibre-native#4822 ·
I maintainer di solito rispondono entro 1 giorno
-
bug-unconfirmed
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno