Repository navigation
Conversation
|
@zkaoudi PR is up for your review. |
|
Thanks for the contribution. Pls always add regression tests.
Reproduced both with focused Java 17 checks. Preserve identifier lookup semantics & handle dialect-specific names. |
908cf6c to
76fecd5
Compare
|
@novatechflow I have addressed both issues and added regression tests covering both case folding and BigQuery formats. Verified on Java 17 |
|
Two small things, reproduced on Java 17:
I think the quoting utility needs per-segment quote handling and locale-independent folding before approval. Thoughts? |
76fecd5 to
d928af5
Compare
|
Thanks for the review @novatechflow . Addressed both issues and added regression tests:
|
|
Ran a short test together with the other review, also great progress. Mixed quoting is fixed; the locale bug remains: the code still uses parameterless |
d928af5 to
a36bac8
Compare
|
@novatechflow Thanks for the review and catching the locale issue!
|
novatechflow
left a comment
There was a problem hiding this comment.
Java 17 verification passes:
- Turkish-locale HSQLDB lookup now uses "INPUT_TABLE" correctly.
- Mixed quoting, append/overwrite, and BigQuery validation still pass.
- All 22 identifier/type utility tests pass.
thanks @AliRana30 for the contribution!
Key Changes
wayang-basicto strictly validate single-part and multipart table/column identifiers using regex patterns (^[a-zA-Z_][a-zA-Z0-9_$]*(?:\.[a-zA-Z_][a-zA-Z0-9_$]*)*$) and escape/quote identifiers according to database dialect.IllegalArgumentException.DROP TABLE IF EXISTS,CREATE TABLE ... AS, andINSERT INTOclauses. Multipart identifiers (such as Trinocatalog.schema.table) are quoted segment-by-segment ("catalog"."schema"."table").SqlIdentifierUtilsfor safe identifier quoting.SqlIdentifierUtilsTestand updatedJdbcTableSinkExecutorTestto assert proper quoting and rejection of SQL injection payloads.Fixes : #836.
Verification
SqlIdentifierUtilsTest(10 tests passed)JdbcTableSinkExecutorTest(8 tests passed)JavaTableSinkTest(7 tests passed)SparkTableSinkTest(10 tests passed)apache-rat:check(0 unapproved licenses)