wangxiaojing opened a new issue, #13746:
URL: https://github.com/apache/gravitino/issues/13746
### Version
main branch
### Describe what's wrong
When using a Flink Gravitino-backed catalog, a table can be created
successfully with a quoted option value containing the character #, but the
option value is truncated when the table is read back during query execution.
The downstream connector or table implementation then receives an incorrect
value.
This is not limited to JDBC or CDC tables; it can affect any table whose
options contain #. The JDBC/CDC password case is one observed example.
Expected: all table option values are stored and returned losslessly; #
inside a quoted value is treated as data.
Actual: the value returned from Gravitino is truncated at #.
### Error message and/or stacktrace
Observed in one JDBC/CDC example:
java.sql.SQLException: Access denied for user 'dip_sched3_repl'@'10.59.8.67'
(using password: YES)
The exception is raised while the Flink CDC MySQL connector initializes its
Hikari connection pool after reading the table options. The underlying issue is
the corrupted option value returned by Gravitino.
### How to reproduce
1. Create any Flink table through a Gravitino-backed catalog with a quoted
option value containing #. For example, a JDBC/CDC table may use password =
'<password containing #>'.
2. CREATE TABLE succeeds.
3. Execute a query that reads the table and causes its options to be loaded.
4. The downstream connector or table implementation receives an option value
truncated at # and may fail.
The issue is reproducible with table options in general, not only with
JDBC/CDC options.
### Additional context
Environment:
- Apache Flink: 1.20.3
- Catalog: Gravitino-backed Flink catalog
- Observed connector: Flink CDC MySQL connector
The issue appears when Gravitino stores or returns table options. No real
credentials are included in this report.
Relevant SQL pattern:
CREATE TABLE ... WITH ('some-option' = '<value containing #>', ...);
The table creation succeeds, but the later option lookup during query
execution returns a corrupted value.
--
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]