Skip to content

Commit

Permalink
## 2017年12月20日
Browse files Browse the repository at this point in the history
- 修复公告中数据修复中表名小写以及只有表名没有模式名的问题
- 修复CHAR\CHARACTER互相转换
- 修复TIMESTAMP\DATE\INTEGER\SMALLINT\TIME\BIGINT长度精度不同的问题
- 版本2.7
  • Loading branch information
ruhengChen committed Dec 20, 2017
1 parent 0a77871 commit 0fa5ef1
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 18 deletions.
36 changes: 21 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,36 @@
# ODS_DEP
## 2017年11月14日
### 新增对MCBS 微粒贷的处理逻辑
### 发布第一个版本2.0
- 新增对MCBS 微粒贷的处理逻辑
- 发布第一个版本2.0


## 2017年11月16日
### 修复数据修复失效 2.1
- 修复数据修复失效 2.1

## 2017年11月17日
### 修复停止下发表bug
### 初始化新增调度修改
### 版本2.2
- 修复停止下发表bug
- 初始化新增调度修改
- 版本2.2

## 2017年11月22日
### 修复初始化调度
### 版本2.3
- 修复初始化调度
- 版本2.3

## 2017年11月22日
### 修复execute_table更新字段错误的bug
### 版本2.4
- 修复execute_table更新字段错误的bug
- 版本2.4

## 2017年11月23日
### 修复主键类型变更的问题,YATOPUPDAE少分号的问题,config全量检查默认改为False
### 版本2.5
- 修复主键类型变更的问题,YATOPUPDAE少分号的问题,config全量检查默认改为False
- 版本2.5

## 2017年11月24日
### 修复主键类型变更没有DROP DELTA的问题
### 修复全量编码不对的问题
### 版本2.6
- 修复主键类型变更没有DROP DELTA的问题
- 修复全量编码不对的问题
- 版本2.6

## 2017年12月20日
- 修复公告中数据修复中表名小写以及只有表名没有模式名的问题
- 修复CHAR\CHARACTER互相转换
- 修复TIMESTAMP\DATE\INTEGER\SMALLINT\TIME\BIGINT长度精度不同的问题
- 版本2.7
20 changes: 17 additions & 3 deletions compare_generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -1502,15 +1502,29 @@ def is_change_column_property(self, table, olddate, newdate):

sql = '''
SELECT A.FIELD_CODE, A.DATA_TP NEW_TP, B.DATA_TP OLD_TP, A.LENGTH NEW_LENGTH, B.LENGTH OLD_LENGTH, A.PRECSN NEW_PRECSN, B.PRECSN OLD_PRECSN, A.PRIMARY_FLAG FROM
(SELECT TRIM(FIELD_CODE) FIELD_CODE, TRIM(DATA_TP) DATA_TP, TRIM(LENGTH) LENGTH, TRIM(PRECSN) PRECSN, CASE WHEN PRIMARY_KEY_FLAG='' THEN 'N' ELSE 'Y' END PRIMARY_FLAG
(SELECT TRIM(FIELD_CODE) FIELD_CODE, CASE WHEN TRIM(DATA_TP) = 'CHARACTER' THEN 'CHAR' ELSE TRIM(DATA_TP) END DATA_TP, TRIM(LENGTH) LENGTH, TRIM(PRECSN) PRECSN, CASE WHEN PRIMARY_KEY_FLAG='' THEN 'N' ELSE 'Y' END PRIMARY_FLAG
FROM DSA.ORGIN_TABLE_DETAIL
WHERE change_date = '{newdate}' AND TRIM(SRC_STM_ID) = '{syscode}' AND TRIM(TAB_CODE) = '{tablenm}')A
LEFT JOIN
(SELECT TRIM(FIELD_CODE) FIELD_CODE, TRIM(DATA_TP) DATA_TP, TRIM(LENGTH) LENGTH, TRIM(PRECSN) PRECSN, CASE WHEN PRIMARY_KEY_FLAG='' THEN 'N' ELSE 'Y' END PRIMARY_FLAG
(SELECT TRIM(FIELD_CODE) FIELD_CODE, CASE WHEN TRIM(DATA_TP) = 'CHARACTER' THEN 'CHAR' ELSE TRIM(DATA_TP) END DATA_TP, TRIM(LENGTH) LENGTH, TRIM(PRECSN) PRECSN, CASE WHEN PRIMARY_KEY_FLAG='' THEN 'N' ELSE 'Y' END PRIMARY_FLAG
FROM DSA.ORGIN_TABLE_DETAIL
WHERE change_date = '{olddate}' AND TRIM(SRC_STM_ID) = '{syscode}' AND TRIM(TAB_CODE) = '{tablenm}')B
ON A.FIELD_CODE = B.FIELD_CODE AND A.PRIMARY_FLAG = B.PRIMARY_FLAG
WHERE (A.DATA_TP <> B.DATA_TP OR A.LENGTH <> B.LENGTH OR A.PRECSN <> B.PRECSN )
AND (A.DATA_TP <> 'TIMESTAMP' AND A.DATA_TP <> 'DATE' AND A.DATA_TP <> 'INTEGER' AND A.DATA_TP <> 'SMALLINT' AND A.DATA_TP <> 'TIME' AND A.DATA_TP <> 'BIGINT')
UNION ALL
SELECT A.FIELD_CODE, A.DATA_TP NEW_TP, B.DATA_TP OLD_TP, A.LENGTH NEW_LENGTH, B.LENGTH OLD_LENGTH, A.PRECSN NEW_PRECSN, B.PRECSN OLD_PRECSN, A.PRIMARY_FLAG FROM
(SELECT TRIM(FIELD_CODE) FIELD_CODE, TRIM(DATA_TP) AS DATA_TP, TRIM(LENGTH) LENGTH, TRIM(PRECSN) PRECSN, CASE WHEN PRIMARY_KEY_FLAG='' THEN 'N' ELSE 'Y' END PRIMARY_FLAG
FROM DSA.ORGIN_TABLE_DETAIL
WHERE change_date = '{newdate}' AND TRIM(SRC_STM_ID) = '{syscode}' AND TRIM(TAB_CODE) = '{tablenm}')A
LEFT JOIN
(SELECT TRIM(FIELD_CODE) FIELD_CODE, TRIM(DATA_TP) AS DATA_TP, TRIM(LENGTH) LENGTH, TRIM(PRECSN) PRECSN, CASE WHEN PRIMARY_KEY_FLAG='' THEN 'N' ELSE 'Y' END PRIMARY_FLAG
FROM DSA.ORGIN_TABLE_DETAIL
WHERE change_date = '{olddate}' AND TRIM(SRC_STM_ID) = '{syscode}' AND TRIM(TAB_CODE) = '{tablenm}')B
ON A.FIELD_CODE = B.FIELD_CODE AND A.PRIMARY_FLAG = B.PRIMARY_FLAG
WHERE A.DATA_TP <> B.DATA_TP OR A.LENGTH <> B.LENGTH OR A.PRECSN <> B.PRECSN
WHERE (A.DATA_TP <> B.DATA_TP )
AND (A.DATA_TP = 'TIMESTAMP' OR A.DATA_TP = 'DATE' OR A.DATA_TP = 'INTEGER' OR A.DATA_TP = 'SMALLINT' OR A.DATA_TP = 'TIME' OR A.DATA_TP = 'BIGINT')
'''.format(olddate=olddate, newdate=newdate, syscode=syscode, tablenm=tablenm)

rows = self._getResultList(sql)
Expand Down
Binary file modified compare_generate.so
Binary file not shown.

0 comments on commit 0fa5ef1

Please sign in to comment.