Tan Nguyen created FLINK-36372: ---------------------------------- Summary: Can not insert data to sink with reserved keywords column name Key: FLINK-36372 URL: https://issues.apache.org/jira/browse/FLINK-36372 Project: Flink Issue Type: Bug Reporter: Tan Nguyen Attachments: image-2024-09-26-10-33-37-134.png, image-2024-09-26-10-40-07-605.png, image-2024-09-26-10-41-10-327.png, image-2024-09-26-10-48-11-315.png
Hi teams, I created a flink application running as batch mode, we read data from kafka then we run the query transform data from sql file. Finally execute insert query from sql file to sink data. Here the insert query: !image-2024-09-26-10-33-37-134.png! Even I use the backticks to escape the reserved keywords, still failed, here the error: {code:java} // code placeholder java.lang.RuntimeException: Writing records to JDBC failed.at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.close(JdbcOutputFormat.java:265)at org.apache.flink.connector.jdbc.internal.GenericJdbcSinkFunction.close(GenericJdbcSinkFunction.java:70)at org.apache.flink.api.common.functions.util.FunctionUtils.closeFunction(FunctionUtils.java:41)at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.close(AbstractUdfStreamOperator.java:115)at org.apache.flink.streaming.runtime.tasks.StreamOperatorWrapper.close(StreamOperatorWrapper.java:163)at org.apache.flink.streaming.runtime.tasks.RegularOperatorChain.closeAllOperators(RegularOperatorChain.java:125)at org.apache.flink.streaming.runtime.tasks.StreamTask.closeAllOperators(StreamTask.java:1062)at org.apache.flink.streaming.runtime.tasks.StreamTask.afterInvoke(StreamTask.java:930)at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:813)at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:955)at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:934)at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:748)at org.apache.flink.runtime.taskmanager.Task.run(Task.java:564)at java.base/java.lang.Thread.run(Thread.java:829)Caused by: java.io.IOException: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO native_program_domain.member_program_aux_data(id, member_program_id, program_provider_id, enrollment_event_type, cancellation_reason, member_start_date, house_hold_id, enrollment_source, plan_contract_id, protocol, enrollment_priority, member_disenroll_date, pbp, hras_needed, hra_due_date, completion_status, hra_completion_method, hra_completion_description, enrollment_lob, clock_start_date, csp_group_id, csp_plan_id, group, segment_id, division, created_by, created_date, last_modified_by, last_modified_date) VALUES (('3319eb7d-e247-4eec-9c3e-e0ba9ee5b7aa'), ('5e4fd136-2b14-3b63-9b9c-e3c1af424c55'), (NULL), ('R'), (NULL), ('20140608'), (NULL), (NULL), ('CONT-00008'), ('PR01'), (NULL), (NULL), ('PBP-0008'), ('FALSE'::boolean), (NULL), (NULL), (NULL), ('NextGen'), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL)) ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, member_program_id=EXCLUDED.member_program_id, program_provider_id=EXCLUDED.program_provider_id, enrollment_event_type=EXCLUDED.enrollment_event_type, cancellation_reason=EXCLUDED.cancellation_reason, member_start_date=EXCLUDED.member_start_date, house_hold_id=EXCLUDED.house_hold_id, enrollment_source=EXCLUDED.enrollment_source, plan_contract_id=EXCLUDED.plan_contract_id, protocol=EXCLUDED.protocol, enrollment_priority=EXCLUDED.enrollment_priority, member_disenroll_date=EXCLUDED.member_disenroll_date, pbp=EXCLUDED.pbp, hras_needed=EXCLUDED.hras_needed, hra_due_date=EXCLUDED.hra_due_date, completion_status=EXCLUDED.completion_status, hra_completion_method=EXCLUDED.hra_completion_method, hra_completion_description=EXCLUDED.hra_completion_description, enrollment_lob=EXCLUDED.enrollment_lob, clock_start_date=EXCLUDED.clock_start_date, csp_group_id=EXCLUDED.csp_group_id, csp_plan_id=EXCLUDED.csp_plan_id, group=EXCLUDED.group, segment_id=EXCLUDED.segment_id, division=EXCLUDED.division, created_by=EXCLUDED.created_by, created_date=EXCLUDED.created_date, last_modified_by=EXCLUDED.last_modified_by, last_modified_date=EXCLUDED.last_modified_date was aborted: ERROR: syntax error at or near "group"Position: 435 Call getNextException to see other errors in the batch.at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.flush(JdbcOutputFormat.java:222)at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.close(JdbcOutputFormat.java:262)... 13 moreCaused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO native_program_domain.member_program_aux_data(id, member_program_id, program_provider_id, enrollment_event_type, cancellation_reason, member_start_date, house_hold_id, enrollment_source, plan_contract_id, protocol, enrollment_priority, member_disenroll_date, pbp, hras_needed, hra_due_date, completion_status, hra_completion_method, hra_completion_description, enrollment_lob, clock_start_date, csp_group_id, csp_plan_id, group, segment_id, division, created_by, created_date, last_modified_by, last_modified_date) VALUES (('3319eb7d-e247-4eec-9c3e-e0ba9ee5b7aa'), ('5e4fd136-2b14-3b63-9b9c-e3c1af424c55'), (NULL), ('R'), (NULL), ('20140608'), (NULL), (NULL), ('CONT-00008'), ('PR01'), (NULL), (NULL), ('PBP-0008'), ('FALSE'::boolean), (NULL), (NULL), (NULL), ('NextGen'), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL), (NULL)) ON CONFLICT (id) DO UPDATE SET id=EXCLUDED.id, member_program_id=EXCLUDED.member_program_id, program_provider_id=EXCLUDED.program_provider_id, enrollment_event_type=EXCLUDED.enrollment_event_type, cancellation_reason=EXCLUDED.cancellation_reason, member_start_date=EXCLUDED.member_start_date, house_hold_id=EXCLUDED.house_hold_id, enrollment_source=EXCLUDED.enrollment_source, plan_contract_id=EXCLUDED.plan_contract_id, protocol=EXCLUDED.protocol, enrollment_priority=EXCLUDED.enrollment_priority, member_disenroll_date=EXCLUDED.member_disenroll_date, pbp=EXCLUDED.pbp, hras_needed=EXCLUDED.hras_needed, hra_due_date=EXCLUDED.hra_due_date, completion_status=EXCLUDED.completion_status, hra_completion_method=EXCLUDED.hra_completion_method, hra_completion_description=EXCLUDED.hra_completion_description, enrollment_lob=EXCLUDED.enrollment_lob, clock_start_date=EXCLUDED.clock_start_date, csp_group_id=EXCLUDED.csp_group_id, csp_plan_id=EXCLUDED.csp_plan_id, group=EXCLUDED.group, segment_id=EXCLUDED.segment_id, division=EXCLUDED.division, created_by=EXCLUDED.created_by, created_date=EXCLUDED.created_date, last_modified_by=EXCLUDED.last_modified_by, last_modified_date=EXCLUDED.last_modified_date was aborted: ERROR: syntax error at or near "group"Position: 435 Call getNextException to see other errors in the batch.at org.postgresql.jdbc.BatchResultHandler.handleCompletion(BatchResultHandler.java:186)at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:585)at org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)at org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)at org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)at org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatementImpl.executeBatch(FieldNamedPreparedStatementImpl.java:65)at org.apache.flink.connector.jdbc.internal.executor.TableSimpleStatementExecutor.executeBatch(TableSimpleStatementExecutor.java:64)at org.apache.flink.connector.jdbc.internal.executor.TableBufferReducedStatementExecutor.executeBatch(TableBufferReducedStatementExecutor.java:101)at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.attemptFlush(JdbcOutputFormat.java:246)at org.apache.flink.connector.jdbc.internal.JdbcOutputFormat.flush(JdbcOutputFormat.java:216)... 14 moreCaused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "group"Position: 435at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)... 22 more {code} I try to remove backticks and other syntax like: `"group"`, ``group``, `'group'`, etc, still failed. I also copy the insert query from the log and execute in SQL Server, the same error happen. But when I change group to "group" the query ran success !image-2024-09-26-10-41-10-327.png! +Note:+ The select query working fine with the backticks, but the insert failed. Here is my insert code !image-2024-09-26-10-48-11-315.png! I hope the teams could take a look this issue, thanks! -- This message was sent by Atlassian Jira (v8.20.10#820010)