Kotlin / Kotlin/dataframe

Compiler plugin sometimes renders `ValueColumn` as frame column

Open
#1,854 1 comment 0 reactions 0 assignees View on GitHub
bug Compiler plugin
Dominant language
Kotlin
Stars
1.1k
Forks
83
Avg merge
4d 12h
Merged PRs (30d)
30

Description

In operations like `update` `.withNull()`
Image

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:

Image

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).

Image

(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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.