apache / apache/iceberg-python
Add `CAST` to `parser.py`
- Vorherrschende Sprache
- Python
- Sterne
- 1.1k
- Forks
- 581
- Ø Merge
- 1 T. 17 Std.
- Gemergte PRs (30 T.)
- 78
Beschreibung
### Feature Request / Improvement
I think I have somewhat of an idea on how to do this, so far have added the following to `parser.py`:
```py
CAST = CaselessKeyword("cast")
cast_expression = (CAST + "(" + column + "as" + identifier + Suppress(")")).set_results_name("cast")
# would need something special for the set_parse_action
```
I am wondering a couple of things:
Do we need a new class `CastableReference` or something? Worth expanding on the `Reference` class? And once that is done, how would we propagate the new type (Im assuming we need some way to go from a string to an `IcebergType` of the string the user has put into the cast operation) into the scan?
This was spawned from https://github.com/apache/iceberg-python/issues/170
Happy to work on this, just would be awesome to get some context
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit parser.py und dem Kontext in issue 170. Verfolge die bestehende Reference-Klasse und die Parse-Aktionen, und verfolge dann, wie geparste Ausdrücke den Scan erreichen und wie Zeichenketten zu IcebergType-Werten werden. Fertig ist die Aufgabe, wenn die CAST-Syntax geparst wird und ihr Zieltyp an den Scan weitergegeben wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- databases
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100