Compiler plugin sometimes renders `ValueColumn` as frame column
- Dominant language
- Kotlin
- Stars
- 1.1k
- Forks
- 83
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 30
Description
In operations like `update` `.withNull()`
a `FrameColumn` can turn into a `ValueColumn?>` (because nullable framecolumns are not allowed). This is not reflected in the schema produced by the compiler plugin, even though the column is correctly recognized as a nullable dataframe-value column:
A similar problem can occur for `ValueColumn>`, such as with `convert` `asColumn`, `DataColumn.createValueColumn(dataframes)`, or [`toDataFrame { preserve(DataFrame::class) }`](https://github.com/Kotlin/dataframe/issues/1852).
(Though, I might like the idea of blocking any creation of `ValueColumn>`, pushing users to `FrameColumn`)
There may be more cases where this happens, let's find and gather them here
Contributor guide
Research direction
Start by reproducing the schema mismatch in the operations named here: update withNull(), convert asColumn, DataColumn.createValueColumn(dataframes), and toDataFrame { preserve(DataFrame::class) }. Trace the compiler plugin's handling of FrameColumn and ValueColumn> and gather other cases. Done means the affected schemas accurately reflect the resulting nullable dataframe-value columns, with regression coverage for the reproduced cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100