You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I am Ajay Boddeda, a GSoC 2026 applicant working on the DataFrames API proposal for Wayang.
I came across this issue while studying the codebase. This is directly related to the select() operation I am planning to implement in the DataFrame API — where users specify which columns they need and only those should be queried.
My understanding is that the fields array in WayangTableScan stores the projected column indices, but these are never passed down to the actual query execution. This means even when a user does df.select('name', 'age'), all columns are fetched which is inefficient.
I would love to investigate this further and potentially contribute a fix. Could anyone guide me on where the fields array should be used in the execution flow?
Activity
AjayBoddeda4 commentedon Mar 17, 2026
Hi, I am Ajay Boddeda, a GSoC 2026 applicant working on the DataFrames API proposal for Wayang.
I came across this issue while studying the codebase. This is directly related to the select() operation I am planning to implement in the DataFrame API — where users specify which columns they need and only those should be queried.
My understanding is that the fields array in WayangTableScan stores the projected column indices, but these are never passed down to the actual query execution. This means even when a user does df.select('name', 'age'), all columns are fetched which is inefficient.
I would love to investigate this further and potentially contribute a fix. Could anyone guide me on where the fields array should be used in the execution flow?
ekas-7 commentedon Oct 30, 2026
@zkaoudi Simple version of this change that will be fix in my humble opnion :
If the code says "read table
customer, columnsnameandage", we used to send:SELECT * FROM customer
Now we send:
SELECT name, age FROM customer
The table name still goes after FROM. Only the SELECT list changed.
If no columns are given, it is still SELECT *.
If a name is not a normal column, like ST_AsText(geom), it is still SELECT *.
I updated the Trino and Presto tests to expect the column list, but I could not run them here. They need a live Trino and Presto.
Associated PR : #864