-
Notifications
You must be signed in to change notification settings - Fork 48
Closed
Labels
Description
This doesn't work, but should:
julia> using Query
julia> using DataFrames
julia> df = DataFrame(a=[1,2,3])
3×1 DataFrame
│ Row │ a │
│ │ Int64 │
├─────┼───────┤
│ 1 │ 1 │
│ 2 │ 2 │
│ 3 │ 3 │
julia> d = Dict(1=>:A, 2=>:B, 3=>:C)
Dict{Int64,Symbol} with 3 entries:
2 => :B
3 => :C
1 => :A
julia> df |> @mutate(foo = d[_.a])
3-element query resultError showing value of type QueryOperators.EnumerableMap{Any,QueryOperators.EnumerableIterable{NamedTuple{(:a,),Tuple{Int64}},Tables.DataValueRowIterator{NamedTuple{(:a,),Tuple{Int64}},Array{NamedTuple{(:a,),Tuple{Int64}},1}}},getfield(Main, Symbol("##4#6"))}:
ERROR: UndefVarError: d not defined
Stacktrace:
[1] (::getfield(Main, Symbol("##4#6")))(::NamedTuple{(:a,),Tuple{Int64}}) at C:\Users\david\.julia\packages\Query\UeHfO\src\query_translation.jl:58
[2] iterate at C:\Users\david\.julia\packages\QueryOperators\OFi0k\src\enumerable\enumerable_map.jl:25 [inlined]
[3] printsequence(::IOContext{REPL.Terminals.TTYTerminal}, ::QueryOperators.EnumerableMap{Any,QueryOperators.EnumerableIterable{NamedTuple{(:a,),Tuple{Int64}},Tables.DataValueRowIterator{NamedTuple{(:a,),Tuple{Int64}},Array{NamedTuple{(:a,),Tuple{Int64}},1}}},getfield(Main, Symbol("##4#6"))}) at C:\Users\david\.julia\
packages\QueryOperators\OFi0k\src\enumerable\show.jl:10
[4] show at C:\Users\david\.julia\packages\QueryOperators\OFi0k\src\enumerable\show.jl:37 [inlined]
[5] show(::IOContext{REPL.Terminals.TTYTerminal}, ::MIME{Symbol("text/plain")}, ::QueryOperators.EnumerableMap{Any,QueryOperators.EnumerableIterable{NamedTuple{(:a,),Tuple{Int64}},Tables.DataValueRowIterator{NamedTuple{(:a,),Tuple{Int64}},Array{NamedTuple{(:a,),Tuple{Int64}},1}}},getfield(Main, Symbol("##4#6"))}) at .
\sysimg.jl:194
[6] display(::REPL.REPLDisplay, ::MIME{Symbol("text/plain")}, ::Any) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:131
[7] display(::REPL.REPLDisplay, ::Any) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:135
[8] display(::Any) at .\multimedia.jl:287
[9] #invokelatest#1 at .\essentials.jl:697 [inlined]
[10] invokelatest at .\essentials.jl:696 [inlined]
[11] print_response(::IO, ::Any, ::Any, ::Bool, ::Bool, ::Any) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:154
[12] print_response(::REPL.AbstractREPL, ::Any, ::Any, ::Bool, ::Bool) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:139
[13] (::getfield(REPL, Symbol("#do_respond#40")){Bool,getfield(REPL, Symbol("##50#59")){REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::Any, ::Any, ::Any) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:713
[14] #invokelatest#1 at .\essentials.jl:697 [inlined]
[15] invokelatest at .\essentials.jl:696 [inlined]
[16] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\LineEdit.jl:2273
[17] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:1034
[18] run_repl(::REPL.AbstractREPL, ::Any) at C:\cygwin\home\Administrator\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.0\REPL\src\REPL.jl:191
[19] (::getfield(Base, Symbol("##718#720")){Bool,Bool,Bool,Bool})(::Module) at .\client.jl:355
[20] #invokelatest#1 at .\essentials.jl:697 [inlined]
[21] invokelatest at .\essentials.jl:696 [inlined]
[22] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at .\client.jl:339
[23] exec_options(::Base.JLOptions) at .\client.jl:277
[24] _start() at .\client.jl:425 I suspect that something is wrong with the escaping...