[ https://issues.apache.org/jira/browse/FLINK-36372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tan Nguyen updated FLINK-36372: ------------------------------- Affects Version/s: 1.18.1 > 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 > Affects Versions: 1.18.1 > Reporter: Tan Nguyen > Priority: Major > 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 succeed > !image-2024-09-26-10-41-10-327.png! > +Note:+ The select query/ create temporary view are 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)