Hi > Is col1 just converted to a StringArray before anything is evalulated? No
> Is 'foo' converted to a key using the Dictionary before the filter is performed? DataFusion uses the arrow-rs kernels, so I believe in this case the filter is applied on the dictionary values to find the matching entries, though I may be mistaken. The code is [1]. > Is col1 evaluated in the group by as keys and then converted to the value just before the results are returned? I hope so , but I am not sure if we have implemented that optimization yet. [1] https://github.com/apache/arrow-rs/blob/f24afc8c57141734a14a9c46d6b8dc1610f936f3/arrow-ord/src/comparison.rs#L1893 On Fri, Apr 14, 2023 at 7:22 PM Olo Sawyerr <[email protected]> wrote: > Hi there, > > Hope you're well. A couple of questions: > > In the query below, if col1 is a DictionaryArray: > > select count(*), col1 from some_table > where col1 = 'foo' > group by col1 > > > - Is 'foo' converted to a key using the Dictionary before the filter > is performed? > - Is col1 evaluated in the group by as *keys* and then converted to > the *value* just before the results are returned? > > OR > > - Is col1 just converted to a StringArray before anything is > evalulated? > > > Regards, > > > Olo > > >
