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)

Reply via email to