prafulla-kiran opened a new issue, #1267:
URL: https://github.com/apache/iceberg-go/issues/1267
### Apache Iceberg version
main (development)
### Summary
`Catalog.convertGlueToIceberg` in `catalog/glue/glue.go` compares the Glue
`table_type` parameter against the string `"ICEBERG"` with a strict `!=`. This
regresses the case-insensitive behaviour added in #480, and reproduces the
original failure mode from #479 for any Glue table whose `table_type` parameter
is the lowercase `"iceberg"` value emitted by PyIceberg and the AWS Glue
Iceberg REST endpoint.
This was already flagged by @tommika in a comment on #479 but no follow-up
landed; filing a fresh issue so it doesn't fall off the radar.
### Where
`catalog/glue/glue.go`, line 703 on `main`:
```go
if glueTable.Parameters[tableParamTableType] != glueTypeIceberg {
return nil, fmt.Errorf("table %s.%s is not an iceberg table", database,
tableName)
}
```
The other two call sites in the same file already use `strings.EqualFold`
(lines 676 and 770), so this is the only remaining case-sensitive check.
### How it regressed
- #480 (commit `ad83ccd`) made the two original call sites case-insensitive
and closed #479.
- #537 (commit `1aa2a52`, "optimistic locking and skip-archive support")
later added a new call site, `convertGlueToIceberg`, using a strict `!=`
comparison.
### Reproduction
`LoadTable` first calls `getTable` (case-insensitive after #480), then
`convertGlueToIceberg`. On a Glue table written by PyIceberg or via the Glue
Iceberg REST endpoint, both of which write `table_type=iceberg` (lowercase),
the first check passes but the second rejects the table with `table X.Y is not
an iceberg table`. Same symptom as #479.
### Expected behaviour
`convertGlueToIceberg` should match the case-insensitive semantics of the
other two call sites in this file, and of the PyIceberg and Java Glue
implementations.
### Proposed fix
Replace the `!=` with `!strings.EqualFold(...)` to align with the other two
sites. I have a one-line patch with a parallel unit test
(`TestGlueConvertGlueToIcebergCaseInsensitive`, mirroring the existing
`TestGlueGetTableCaseInsensitive`); PR to follow.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]