apache / seatunnel

SeaTunnel is a next-generation super high-performance, distributed, massive data integration tool.
https://seatunnel.apache.org/
Apache License 2.0
7.59k stars 1.67k forks source link

[Bug] [Module Name] Bug titleWhen synchronizing data with PostgreSQL CDC, if the field type is varchar (2) and the value is null, the insertion statement becomes' NULL:: character varying ' #6722

Open zys870135491 opened 2 months ago

zys870135491 commented 2 months ago

Search before asking

What happened

When synchronizing data with PostgreSQL CDC, if the field type is varchar (2) and the value is null, the insertion statement becomes' NULL:: character varying '

SeaTunnel Version

2.3.4

SeaTunnel Config

env {
  # You can set engine configuration here
  execution.parallelism = 1
  job.mode = "STREAMING"
  checkpoint.interval = 5000
  read_limit.bytes_per_second=7000000
  read_limit.rows_per_second=400
}

source {
  Postgres-CDC {
    base-url = "jdbc:postgresql://xxxx:5432/tenant_xj"
    username = "xxxx"
    password = "xxxx"
    database-names = "tenant_xj"
    schema-names = "public"
    table-names = "tenant_xj.public.fbr_ent_info_e"
    startup.mode = initial
  }
}

sink {
  jdbc {
        # if you would use json or jsonb type insert please add jdbc url stringtype=unspecified option
        url = "jdbc:postgresql://xxxx:5432/seatunnel_test"
        driver = "org.postgresql.Driver"
        user = "xxxx"
        password = "xxxx"

        generate_sink_sql = true
        # You need to configure both database and table
        database = "seatunnel_test"
        table = "public.fbr_ent_info_e_sync"
        primary_keys = ["sunway_id"]
    }
}

Running Command

./bin/seatunnel.sh --config ./config/pgsql_test_02.config -e local

Error Exception

Caused by: java.sql.BatchUpdateException: Batch entry 0 INSERT INTO "seatunnel_test"."public"."fbr_ent_info_e_sync" ("sunway_id", "sunway_fkid", "sunway_multilevelflag", "code", "ent_type_sub_id", "send_system", "remark", "company_id", "membership_group", "cert_no", "recent_former_name", "cert_type_id", "province_id", "city_id", "district_id", "country", "mgt_form_complete_status", "mgt_form_audit_status", "mgt_apply_classification", "mgt_form_audit", "brand_id", "busi_area", "opening_date", "staff_count", "seal_flag", "hosp_grade_id", "hosp_level_id", "hosp_belong_id", "clinic_ph_flag", "diagnosis_treatment_flag", "dual_ph_flag", "hosp_nearby_ph_flag", "ordinary_ph_flag", "profit_flag", "public_flag", "property_owned_flag", "dtp_sale_flag", "sino_ph_flag", "special_ph_flag", "ins_med_inst_flag", "ins_med_retail_ph_flag", "etl_batch_no", "dealer_prepare_1", "dealer_prepare_2", "dealer_prepare_3", "latest_modify_time", "drug_busi_lic_no", "pharmacist_count", "hash", "busi_form_id", "ph_mode_id", "ph_type_id", "other_1", "other_2", "other_3", "registered_capital", "monetary_unit_id", "manufacturer_prepare_1", "manufacturer_prepare_2", "manufacturer_prepare_3", "establish_date", "crm_type_id", "source_sys_record_pk", "source_sys", "ins_med_inst_no", "ins_med_retail_ph_no", "sy_type", "valid_flag", "superior_unit", "hosp_tml_cat_id", "hosp_tml_sub_cat_id", "unit_nature_id", "unified_soc_credit_no", "ph_prepare_1", "ph_prepare_2", "ph_prepare_3", "med_inst_prepare_2", "med_inst_prepare_1", "med_inst_prepare_3", "mgt_enable_share", "name", "ent_type_id", "area_id", "oper_id", "standard_id", "ratify_date", "sell_invoicing_id", "registered_address", "abc_id", "purchase_invoicing_id", "oper_code", "seller_id", "bi_sell_type_id", "biz_multicode", "update_by", "credit_days", "invoice_type_id", "settle_area", "stop_manage_id", "type_id", "intermediary_id", "pay_type_id", "incity_flag", "create_company_id", "trans_type_id", "create_by", "quality_file_no", "purchase_type_id", "create_time", "b2b_flag", "ent_invoice_type_id", "b2b_warehouse_code", "corporation", "b2b_warehouse_name", "stop_manage_flag", "batch_tolerance_id", "send_wms_flag", "owner_ent_type_id", "custodian_ent_flag", "related_ent_id", "producer_flag", "update_time", "invoice_prints", "follow_goods_documents", "bussiness_type_id", "licence", "manage_type_id", "market_no", "permit", "memo1", "memo2", "memo3", "ebs_inner_ent_flag", "ebs_inner_ent_code", "ebs_inner_ent_name", "delivery_address_id", "contac_address", "sunway_bgid", "sunway_mdmcode", "sunway_recordercode", "sunway_recordtime", "sunway_isbg", "sunway_categorycode", "sunway_categoryname", "sunway_auditflag", "sunway_securitylevelcode", "sunway_version", "sunway_maxfkid", "reject_ids", "fbz_status", "company_code", "area_code", "initiate_to", "delivery_address", "owner_name", "owner_code", "name_pinyin", "intermediary", "supplier_classify", "biz_multicode_flag", "ent_category_id", "contact_address", "ent_code", "b2b_warehouse_name_id", "b2b_warehouse_code_id", "incity_id", "sales_area", "credit_quota", "co_stop_manage_flag", "ar_stop_manage_flag", "first_biz_type_id", "area_node_complete", "audit_comment", "op_record_id", "cite", "ar_cite", "ar_record_id", "op_cite", "record_id", "co_change_flag", "ar_change_flag", "cstcode_qx", "cstcode_fx", "cstcode_ls", "ar_auto_audit_group", "co_auto_audit_group", "applicant", "customer_flag", "supplier_flag", "manufacturer_flag", "dept_workflowid") VALUES (1308075695400704, NULL, '0', 'GKCA00001403077', '10007833', '1100001,1100002,1100003', NULL, NULL, NULL, '123456', NULL, 10007705, 10000015, 10000168, 10019952, 10003396, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1000000058', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '123批发企业', 10007821, NULL, NULL, NULL, '2024-01-22 11:12:23.215+08'::timestamp, NULL, '11', NULL, NULL, 'KS00000062', NULL, NULL, 'NULL::character varying', '10000029', NULL, 1000000029, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '10000033', '111', 20000061, '2024-01-22 10:51:24+08'::timestamp, NULL, NULL, NULL, '李芳', NULL, NULL, NULL, 1, NULL, NULL, 1000000020, NULL, '2024-01-22 11:12:21+08'::timestamp, NULL, NULL, NULL, NULL, 20000242, NULL, NULL, NULL, '111', NULL, 0, '111', '111', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2', NULL, 0, NULL, NULL, 'passed', '10000478', '10001301', 'st', NULL, '国药控股新疆医疗器械有限公司', '1002', '123PFQY', '李芳', NULL, 1, 10007717, '111', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '杨彩蓉', NULL, NULL, NULL, NULL) ON CONFLICT ("sunway_id") DO UPDATE SET "sunway_id"=EXCLUDED."sunway_id", "sunway_fkid"=EXCLUDED."sunway_fkid", "sunway_multilevelflag"=EXCLUDED."sunway_multilevelflag", "code"=EXCLUDED."code", "ent_type_sub_id"=EXCLUDED."ent_type_sub_id", "send_system"=EXCLUDED."send_system", "remark"=EXCLUDED."remark", "company_id"=EXCLUDED."company_id", "membership_group"=EXCLUDED."membership_group", "cert_no"=EXCLUDED."cert_no", "recent_former_name"=EXCLUDED."recent_former_name", "cert_type_id"=EXCLUDED."cert_type_id", "province_id"=EXCLUDED."province_id", "city_id"=EXCLUDED."city_id", "district_id"=EXCLUDED."district_id", "country"=EXCLUDED."country", "mgt_form_complete_status"=EXCLUDED."mgt_form_complete_status", "mgt_form_audit_status"=EXCLUDED."mgt_form_audit_status", "mgt_apply_classification"=EXCLUDED."mgt_apply_classification", "mgt_form_audit"=EXCLUDED."mgt_form_audit", "brand_id"=EXCLUDED."brand_id", "busi_area"=EXCLUDED."busi_area", "opening_date"=EXCLUDED."opening_date", "staff_count"=EXCLUDED."staff_count", "seal_flag"=EXCLUDED."seal_flag", "hosp_grade_id"=EXCLUDED."hosp_grade_id", "hosp_level_id"=EXCLUDED."hosp_level_id", "hosp_belong_id"=EXCLUDED."hosp_belong_id", "clinic_ph_flag"=EXCLUDED."clinic_ph_flag", "diagnosis_treatment_flag"=EXCLUDED."diagnosis_treatment_flag", "dual_ph_flag"=EXCLUDED."dual_ph_flag", "hosp_nearby_ph_flag"=EXCLUDED."hosp_nearby_ph_flag", "ordinary_ph_flag"=EXCLUDED."ordinary_ph_flag", "profit_flag"=EXCLUDED."profit_flag", "public_flag"=EXCLUDED."public_flag", "property_owned_flag"=EXCLUDED."property_owned_flag", "dtp_sale_flag"=EXCLUDED."dtp_sale_flag", "sino_ph_flag"=EXCLUDED."sino_ph_flag", "special_ph_flag"=EXCLUDED."special_ph_flag", "ins_med_inst_flag"=EXCLUDED."ins_med_inst_flag", "ins_med_retail_ph_flag"=EXCLUDED."ins_med_retail_ph_flag", "etl_batch_no"=EXCLUDED."etl_batch_no", "dealer_prepare_1"=EXCLUDED."dealer_prepare_1", "dealer_prepare_2"=EXCLUDED."dealer_prepare_2", "dealer_prepare_3"=EXCLUDED."dealer_prepare_3", "latest_modify_time"=EXCLUDED."latest_modify_time", "drug_busi_lic_no"=EXCLUDED."drug_busi_lic_no", "pharmacist_count"=EXCLUDED."pharmacist_count", "hash"=EXCLUDED."hash", "busi_form_id"=EXCLUDED."busi_form_id", "ph_mode_id"=EXCLUDED."ph_mode_id", "ph_type_id"=EXCLUDED."ph_type_id", "other_1"=EXCLUDED."other_1", "other_2"=EXCLUDED."other_2", "other_3"=EXCLUDED."other_3", "registered_capital"=EXCLUDED."registered_capital", "monetary_unit_id"=EXCLUDED."monetary_unit_id", "manufacturer_prepare_1"=EXCLUDED."manufacturer_prepare_1", "manufacturer_prepare_2"=EXCLUDED."manufacturer_prepare_2", "manufacturer_prepare_3"=EXCLUDED."manufacturer_prepare_3", "establish_date"=EXCLUDED."establish_date", "crm_type_id"=EXCLUDED."crm_type_id", "source_sys_record_pk"=EXCLUDED."source_sys_record_pk", "source_sys"=EXCLUDED."source_sys", "ins_med_inst_no"=EXCLUDED."ins_med_inst_no", "ins_med_retail_ph_no"=EXCLUDED."ins_med_retail_ph_no", "sy_type"=EXCLUDED."sy_type", "valid_flag"=EXCLUDED."valid_flag", "superior_unit"=EXCLUDED."superior_unit", "hosp_tml_cat_id"=EXCLUDED."hosp_tml_cat_id", "hosp_tml_sub_cat_id"=EXCLUDED."hosp_tml_sub_cat_id", "unit_nature_id"=EXCLUDED."unit_nature_id", "unified_soc_credit_no"=EXCLUDED."unified_soc_credit_no", "ph_prepare_1"=EXCLUDED."ph_prepare_1", "ph_prepare_2"=EXCLUDED."ph_prepare_2", "ph_prepare_3"=EXCLUDED."ph_prepare_3", "med_inst_prepare_2"=EXCLUDED."med_inst_prepare_2", "med_inst_prepare_1"=EXCLUDED."med_inst_prepare_1", "med_inst_prepare_3"=EXCLUDED."med_inst_prepare_3", "mgt_enable_share"=EXCLUDED."mgt_enable_share", "name"=EXCLUDED."name", "ent_type_id"=EXCLUDED."ent_type_id", "area_id"=EXCLUDED."area_id", "oper_id"=EXCLUDED."oper_id", "standard_id"=EXCLUDED."standard_id", "ratify_date"=EXCLUDED."ratify_date", "sell_invoicing_id"=EXCLUDED."sell_invoicing_id", "registered_address"=EXCLUDED."registered_address", "abc_id"=EXCLUDED."abc_id", "purchase_invoicing_id"=EXCLUDED."purchase_invoicing_id", "oper_code"=EXCLUDED."oper_code", "seller_id"=EXCLUDED."seller_id", "bi_sell_type_id"=EXCLUDED."bi_sell_type_id", "biz_multicode"=EXCLUDED."biz_multicode", "update_by"=EXCLUDED."update_by", "credit_days"=EXCLUDED."credit_days", "invoice_type_id"=EXCLUDED."invoice_type_id", "settle_area"=EXCLUDED."settle_area", "stop_manage_id"=EXCLUDED."stop_manage_id", "type_id"=EXCLUDED."type_id", "intermediary_id"=EXCLUDED."intermediary_id", "pay_type_id"=EXCLUDED."pay_type_id", "incity_flag"=EXCLUDED."incity_flag", "create_company_id"=EXCLUDED."create_company_id", "trans_type_id"=EXCLUDED."trans_type_id", "create_by"=EXCLUDED."create_by", "quality_file_no"=EXCLUDED."quality_file_no", "purchase_type_id"=EXCLUDED."purchase_type_id", "create_time"=EXCLUDED."create_time", "b2b_flag"=EXCLUDED."b2b_flag", "ent_invoice_type_id"=EXCLUDED."ent_invoice_type_id", "b2b_warehouse_code"=EXCLUDED."b2b_warehouse_code", "corporation"=EXCLUDED."corporation", "b2b_warehouse_name"=EXCLUDED."b2b_warehouse_name", "stop_manage_flag"=EXCLUDED."stop_manage_flag", "batch_tolerance_id"=EXCLUDED."batch_tolerance_id", "send_wms_flag"=EXCLUDED."send_wms_flag", "owner_ent_type_id"=EXCLUDED."owner_ent_type_id", "custodian_ent_flag"=EXCLUDED."custodian_ent_flag", "related_ent_id"=EXCLUDED."related_ent_id", "producer_flag"=EXCLUDED."producer_flag", "update_time"=EXCLUDED."update_time", "invoice_prints"=EXCLUDED."invoice_prints", "follow_goods_documents"=EXCLUDED."follow_goods_documents", "bussiness_type_id"=EXCLUDED."bussiness_type_id", "licence"=EXCLUDED."licence", "manage_type_id"=EXCLUDED."manage_type_id", "market_no"=EXCLUDED."market_no", "permit"=EXCLUDED."permit", "memo1"=EXCLUDED."memo1", "memo2"=EXCLUDED."memo2", "memo3"=EXCLUDED."memo3", "ebs_inner_ent_flag"=EXCLUDED."ebs_inner_ent_flag", "ebs_inner_ent_code"=EXCLUDED."ebs_inner_ent_code", "ebs_inner_ent_name"=EXCLUDED."ebs_inner_ent_name", "delivery_address_id"=EXCLUDED."delivery_address_id", "contac_address"=EXCLUDED."contac_address", "sunway_bgid"=EXCLUDED."sunway_bgid", "sunway_mdmcode"=EXCLUDED."sunway_mdmcode", "sunway_recordercode"=EXCLUDED."sunway_recordercode", "sunway_recordtime"=EXCLUDED."sunway_recordtime", "sunway_isbg"=EXCLUDED."sunway_isbg", "sunway_categorycode"=EXCLUDED."sunway_categorycode", "sunway_categoryname"=EXCLUDED."sunway_categoryname", "sunway_auditflag"=EXCLUDED."sunway_auditflag", "sunway_securitylevelcode"=EXCLUDED."sunway_securitylevelcode", "sunway_version"=EXCLUDED."sunway_version", "sunway_maxfkid"=EXCLUDED."sunway_maxfkid", "reject_ids"=EXCLUDED."reject_ids", "fbz_status"=EXCLUDED."fbz_status", "company_code"=EXCLUDED."company_code", "area_code"=EXCLUDED."area_code", "initiate_to"=EXCLUDED."initiate_to", "delivery_address"=EXCLUDED."delivery_address", "owner_name"=EXCLUDED."owner_name", "owner_code"=EXCLUDED."owner_code", "name_pinyin"=EXCLUDED."name_pinyin", "intermediary"=EXCLUDED."intermediary", "supplier_classify"=EXCLUDED."supplier_classify", "biz_multicode_flag"=EXCLUDED."biz_multicode_flag", "ent_category_id"=EXCLUDED."ent_category_id", "contact_address"=EXCLUDED."contact_address", "ent_code"=EXCLUDED."ent_code", "b2b_warehouse_name_id"=EXCLUDED."b2b_warehouse_name_id", "b2b_warehouse_code_id"=EXCLUDED."b2b_warehouse_code_id", "incity_id"=EXCLUDED."incity_id", "sales_area"=EXCLUDED."sales_area", "credit_quota"=EXCLUDED."credit_quota", "co_stop_manage_flag"=EXCLUDED."co_stop_manage_flag", "ar_stop_manage_flag"=EXCLUDED."ar_stop_manage_flag", "first_biz_type_id"=EXCLUDED."first_biz_type_id", "area_node_complete"=EXCLUDED."area_node_complete", "audit_comment"=EXCLUDED."audit_comment", "op_record_id"=EXCLUDED."op_record_id", "cite"=EXCLUDED."cite", "ar_cite"=EXCLUDED."ar_cite", "ar_record_id"=EXCLUDED."ar_record_id", "op_cite"=EXCLUDED."op_cite", "record_id"=EXCLUDED."record_id", "co_change_flag"=EXCLUDED."co_change_flag", "ar_change_flag"=EXCLUDED."ar_change_flag", "cstcode_qx"=EXCLUDED."cstcode_qx", "cstcode_fx"=EXCLUDED."cstcode_fx", "cstcode_ls"=EXCLUDED."cstcode_ls", "ar_auto_audit_group"=EXCLUDED."ar_auto_audit_group", "co_auto_audit_group"=EXCLUDED."co_auto_audit_group", "applicant"=EXCLUDED."applicant", "customer_flag"=EXCLUDED."customer_flag", "supplier_flag"=EXCLUDED."supplier_flag", "manufacturer_flag"=EXCLUDED."manufacturer_flag", "dept_workflowid"=EXCLUDED."dept_workflowid" was aborted: ERROR: value too long for type character varying(2)  Call getNextException to see other errors in the batch.
        at org.postgresql.jdbc.BatchResultHandler.handleCompletion(BatchResultHandler.java:186) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:571) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:893) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:916) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1684) ~[postgresql-42.5.0.jar:42.5.0]
        at org.apache.seatunnel.shade.com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127) ~[?:?]
        at org.apache.seatunnel.shade.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor.FieldNamedPreparedStatement.executeBatch(FieldNamedPreparedStatement.java:533) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor.SimpleBatchStatementExecutor.executeBatch(SimpleBatchStatementExecutor.java:51) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor.BufferReducedBatchStatementExecutor.executeBatch(BufferReducedBatchStatementExecutor.java:89) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.JdbcOutputFormat.attemptFlush(JdbcOutputFormat.java:167) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.JdbcOutputFormat.flush(JdbcOutputFormat.java:131) ~[?:?]
        ... 14 more
Caused by: org.postgresql.util.PSQLException: ERROR: value too long for type character varying(2)
        at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2676) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2366) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2099) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.core.v3.QueryExecutorImpl.flushIfDeadlockRisk(QueryExecutorImpl.java:1456) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.core.v3.QueryExecutorImpl.sendQuery(QueryExecutorImpl.java:1481) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:546) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:893) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:916) ~[postgresql-42.5.0.jar:42.5.0]
        at org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1684) ~[postgresql-42.5.0.jar:42.5.0]
        at org.apache.seatunnel.shade.com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127) ~[?:?]
        at org.apache.seatunnel.shade.com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor.FieldNamedPreparedStatement.executeBatch(FieldNamedPreparedStatement.java:533) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor.SimpleBatchStatementExecutor.executeBatch(SimpleBatchStatementExecutor.java:51) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.executor.BufferReducedBatchStatementExecutor.executeBatch(BufferReducedBatchStatementExecutor.java:89) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.JdbcOutputFormat.attemptFlush(JdbcOutputFormat.java:167) ~[?:?]
        at org.apache.seatunnel.connectors.seatunnel.jdbc.internal.JdbcOutputFormat.flush(JdbcOutputFormat.java:131) ~[?:?]
        ... 14 more

Zeta or Flink or Spark Version

No response

Java or Scala Version

No response

Screenshots

No response

Are you willing to submit PR?

Code of Conduct

github-actions[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity for 30 days. It will be closed in next 7 days if no further activity occurs.