Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize: optimize escape character for case of columnNames #5678

Merged
merged 3 commits into from
Jun 28, 2023

Conversation

slievrly
Copy link
Member

@slievrly slievrly commented Jun 27, 2023

  • I have registered the PR changes.

Ⅰ. Describe what this PR did

optimize escape character for case of columnNames

规则:

  1. 优先取用户SQL的update原始字段
  2. 对于关注全列在SQL中不存在的字段去tableMeta

TODO: check primaryKey case sensitive

Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?

Ⅳ. Describe how to verify it

CREATE TABLE "CPS_BPM_INSTANCE_TASK" ( "ID" VARCHAR2(50BYTE) NOT NULL, "FLOW_TEMPLATE_ID" VARCHAR2(50BYTE) NOT NULL, "PROCESS_INSTANCE_ID" VARCHAR2(50BYTE) NOT NULL, "DEF_TASK_ID" VARCHAR2(50BYTE) NOT NULL, "SPEC_DATE" DATE, "SUPPOSE_CYCLE" NUMBER(3,0), "TASK_STATUS" VARCHAR2(10BYTE) NOT NULL, "LAST_SUPPOSE_TIME" DATE, "CREATED_BY" VARCHAR2(32BYTE) NOT NULL, "CREATION_DATE" DATE NOT NULL, "LAST_UPDATED_BY" VARCHAR2(32BYTE) NOT NULL, "LAST_UPDATE_DATE" DATE NOT NULL, "LAST_UPDATE_IP" VARCHAR2(20BYTE) NOT NULL, "VERSION" NUMBER(16,0) NOT NULL, "ORG_IDENTITY" VARCHAR2(32BYTE) NOT NULL);
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."ID" IS '主键';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."FLOW_TEMPLATE_ID" IS '流程模板ID';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."PROCESS_INSTANCE_ID" IS '流程实例ID';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."DEF_TASK_ID" IS '流程节点ID';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."SPEC_DATE" IS '应完时间';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."SUPPOSE_CYCLE" IS '响应周期';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."TASK_STATUS" IS '节点状态,0:未到,1:当前,2:已完,3:被跳过;4:退回 5暂停';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."LAST_SUPPOSE_TIME" IS '最后响应时间';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."CREATED_BY" IS '创建人';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."CREATION_DATE" IS '创建时间';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."LAST_UPDATED_BY" IS '最后修改人';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."LAST_UPDATE_DATE" IS '最后修时间';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."LAST_UPDATE_IP" IS '最后更新ID';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."VERSION" IS '版本';
COMMENT ON COLUMN "CPS_BPM_INSTANCE_TASK"."ORG_IDENTITY" IS '组织标示';


-- Primary key structure for table CPS_BPM_INSTANCE_TASK


ALTER TABLE "C##TEST"."CPS_BPM_INSTANCE_TASK" ADD CONSTRAINT "PK_CPS_BPM_INSTANCE_TASK" PRIMARY KEY("ID");


-- Checks structure for table CPS_BPM_INSTANCE_TASK


ALTER TABLE "C##TEST"."CPS_BPM_INSTANCE_TASK" ADD CONSTRAINT "SYS_C0010446" CHECK ("ID" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010447" CHECK ("FLOW_TEMPLATE_ID" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010448" CHECK ("PROCESS_INSTANCE_ID" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010449" CHECK ("DEF_TASK_ID" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010450" CHECK ("TASK_STATUS" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010451" CHECK ("CREATED_BY" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010452" CHECK ("CREATION_DATE" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010453" CHECK ("LAST_UPDATED_BY" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010454" CHECK ("LAST_UPDATE_DATE" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010455" CHECK ("LAST_UPDATE_IP" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010456" CHECK ("VERSION" IS NOT NULL) ENABLE ADD CONSTRAINT "SYS_C0010457" CHECK ("ORG_IDENTITY" IS NOT NULL) ENABLE;


-- Comment for table CPS_BPM_INSTANCE_TASK


COMMENT ON TABLE "C##TEST"."CPS_BPM_INSTANCE_TASK" IS '流程实例节点设置';


public void testOracleSQLLower(){
String sql = "update cps_bpm_instance_task set flow_template_id='ww' where id=?";
jdbcTemplate.update(sql,new Object[]{"1"});
}


PR前:
image

PR后:
前镜像:
SELECT cps_bpm_instance_task.ID, flow_template_id FROM cps_bpm_instance_task WHERE id = ? FOR UPDATE

后镜像:
SELECT cps_bpm_instance_task.ID, flow_template_id FROM cps_bpm_instance_task WHERE (ID) in ( (?) )

Ⅴ. Special notes for reviews

Signed-off-by: slievrly <slievrly@163.com>
Copy link
Contributor

@funky-eyes funky-eyes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Signed-off-by: slievrly <slievrly@163.com>
@slievrly slievrly added this to the 1.7.0 milestone Jun 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants