[OB_LOCKS] fix bug when sql_mode is only_full_group_by
This commit is contained in:
@ -2160,7 +2160,7 @@ int ObInnerTableSchema::gv_ob_locks_schema(ObTableSchema &table_schema)
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, CASE WHEN TYPE = 1 THEN 'TR' WHEN TYPE = 2 THEN 'TX' WHEN TYPE = 3 THEN 'TM' ELSE 'UNDEFINED' END AS TYPE, CASE WHEN TYPE = 1 THEN TABLET_ID WHEN TYPE = 2 THEN HOLDER_TRANS_ID WHEN TYPE = 3 THEN (SELECT DISTINCT OBJ_ID FROM oceanbase.__ALL_VIRTUAL_OBJ_LOCK WHERE oceanbase.__ALL_VIRTUAL_OBJ_LOCK.LOCK_ID = oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT.ROWKEY) ELSE -1 END AS ID1, CASE WHEN TYPE = 1 THEN CONCAT(CONCAT(HOLDER_TRANS_ID, '-'), ROWKEY) WHEN TYPE = 2 OR TYPE = 3 THEN NULL ELSE 'ERROR' END AS ID2, 'NONE' AS LMODE, LOCK_MODE AS REQUEST, TIME_AFTER_RECV AS CTIME, 1 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TX' AS TYPE, HOLDER_TRANS_ID AS ID1, NULL AS ID2, 'NONE' AS LMODE, LOCK_MODE AS REQUEST, TIME_AFTER_RECV AS CTIME, 1 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT WHERE TYPE = 1 UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TR' AS TYPE, TABLET_ID AS ID1, CONCAT(CONCAT(HOLDER_TRANS_ID, '-'), ROWKEY) AS ID2, 'NONE' AS LMODE, LOCK_MODE AS REQUEST, TIME_AFTER_RECV AS CTIME, 1 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT WHERE TYPE = 2 UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TR' AS TYPE, TABLET_ID AS ID1, CONCAT(CONCAT(TRANS_ID, '-'), ROWKEY) AS ID2, 'X' AS LMODE, 'NONE' AS REQUEST, TIME_AFTER_RECV AS CTIME, 0 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_TRANS_LOCK_STAT WHERE ROWKEY IS NOT NULL AND ROWKEY <> '' UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TX' AS TYPE, TRANS_ID AS ID1, NULL AS ID2, 'X' AS LMODE, 'NONE' AS REQUEST, MIN(TIME_AFTER_RECV) AS CTIME, 0 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_TRANS_LOCK_STAT GROUP BY (TRANS_ID) UNION ALL SELECT OBJ_LOCK.SVR_IP AS SVR_IP, OBJ_LOCK.SVR_PORT AS SVR_PORT, OBJ_LOCK.TENANT_ID AS TENANT_ID, OBJ_LOCK.CREATE_TRANS_ID AS TRANS_ID, CASE WHEN OBJ_LOCK.OBJ_TYPE IN ('TABLE', 'TABLET') THEN 'TM' WHEN OBJ_LOCK.OBJ_TYPE = 'DBMS_LOCK' THEN 'UL' ELSE 'UNKONWN' END AS TYPE, OBJ_LOCK.OBJ_ID AS ID1, NULL AS ID2, OBJ_LOCK.LOCK_MODE AS LMODE, 'NONE' AS REQUEST, OBJ_LOCK.TIME_AFTER_CREATE AS CTIME, 0 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_OBJ_LOCK AS OBJ_LOCK INNER JOIN oceanbase.__ALL_VIRTUAL_LS_INFO AS LS_INFO ON OBJ_LOCK.SVR_IP = LS_INFO.SVR_IP AND OBJ_LOCK.SVR_PORT = LS_INFO.SVR_PORT AND OBJ_LOCK.TENANT_ID = LS_INFO.TENANT_ID AND OBJ_LOCK.LS_ID = LS_INFO.LS_ID WHERE OBJ_LOCK.OBJ_TYPE IN ('TABLE', 'TABLET', 'DBMS_LOCK') AND OBJ_LOCK.EXTRA_INFO LIKE '%tx_ctx%' AND LS_INFO.LS_STATE = 'LEADER' )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, CASE WHEN TYPE = 1 THEN 'TR' WHEN TYPE = 2 THEN 'TX' WHEN TYPE = 3 THEN 'TM' ELSE 'UNDEFINED' END AS TYPE, CASE WHEN TYPE = 1 THEN TABLET_ID WHEN TYPE = 2 THEN HOLDER_TRANS_ID WHEN TYPE = 3 THEN (SELECT DISTINCT OBJ_ID FROM oceanbase.__ALL_VIRTUAL_OBJ_LOCK WHERE oceanbase.__ALL_VIRTUAL_OBJ_LOCK.LOCK_ID = oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT.ROWKEY) ELSE -1 END AS ID1, CASE WHEN TYPE = 1 THEN CONCAT(CONCAT(HOLDER_TRANS_ID, '-'), ROWKEY) WHEN TYPE = 2 OR TYPE = 3 THEN NULL ELSE 'ERROR' END AS ID2, 'NONE' AS LMODE, LOCK_MODE AS REQUEST, TIME_AFTER_RECV AS CTIME, 1 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TX' AS TYPE, HOLDER_TRANS_ID AS ID1, NULL AS ID2, 'NONE' AS LMODE, LOCK_MODE AS REQUEST, TIME_AFTER_RECV AS CTIME, 1 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT WHERE TYPE = 1 UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TR' AS TYPE, TABLET_ID AS ID1, CONCAT(CONCAT(HOLDER_TRANS_ID, '-'), ROWKEY) AS ID2, 'NONE' AS LMODE, LOCK_MODE AS REQUEST, TIME_AFTER_RECV AS CTIME, 1 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_LOCK_WAIT_STAT WHERE TYPE = 2 UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TR' AS TYPE, TABLET_ID AS ID1, CONCAT(CONCAT(TRANS_ID, '-'), ROWKEY) AS ID2, 'X' AS LMODE, 'NONE' AS REQUEST, TIME_AFTER_RECV AS CTIME, 0 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_TRANS_LOCK_STAT WHERE ROWKEY IS NOT NULL AND ROWKEY <> '' UNION ALL SELECT SVR_IP AS SVR_IP, SVR_PORT AS SVR_PORT, TENANT_ID AS TENANT_ID, TRANS_ID AS TRANS_ID, 'TX' AS TYPE, TRANS_ID AS ID1, NULL AS ID2, 'X' AS LMODE, 'NONE' AS REQUEST, MIN(TIME_AFTER_RECV) AS CTIME, 0 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_TRANS_LOCK_STAT GROUP BY SVR_IP, SVR_PORT, TENANT_ID, TRANS_ID UNION ALL SELECT OBJ_LOCK.SVR_IP AS SVR_IP, OBJ_LOCK.SVR_PORT AS SVR_PORT, OBJ_LOCK.TENANT_ID AS TENANT_ID, OBJ_LOCK.CREATE_TRANS_ID AS TRANS_ID, CASE WHEN OBJ_LOCK.OBJ_TYPE IN ('TABLE', 'TABLET') THEN 'TM' WHEN OBJ_LOCK.OBJ_TYPE = 'DBMS_LOCK' THEN 'UL' ELSE 'UNKONWN' END AS TYPE, OBJ_LOCK.OBJ_ID AS ID1, NULL AS ID2, OBJ_LOCK.LOCK_MODE AS LMODE, 'NONE' AS REQUEST, OBJ_LOCK.TIME_AFTER_CREATE AS CTIME, 0 AS BLOCK FROM oceanbase.__ALL_VIRTUAL_OBJ_LOCK AS OBJ_LOCK INNER JOIN oceanbase.__ALL_VIRTUAL_LS_INFO AS LS_INFO ON OBJ_LOCK.SVR_IP = LS_INFO.SVR_IP AND OBJ_LOCK.SVR_PORT = LS_INFO.SVR_PORT AND OBJ_LOCK.TENANT_ID = LS_INFO.TENANT_ID AND OBJ_LOCK.LS_ID = LS_INFO.LS_ID WHERE OBJ_LOCK.OBJ_TYPE IN ('TABLE', 'TABLET', 'DBMS_LOCK') AND OBJ_LOCK.EXTRA_INFO LIKE '%tx_ctx%' AND LS_INFO.LS_STATE = 'LEADER' )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,7 +210,7 @@ int ObInnerTableSchema::v_ob_timestamp_service_schema(ObTableSchema &table_schem
|
||||
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, TS_TYPE, TS_VALUE, SVR_IP, SVR_PORT FROM oceanbase.__all_virtual_timestamp_service as a WHERE ROLE = 'LEADER' AND SERVICE_EPOCH = (SELECT MAX(SERVICE_EPOCH) FROM oceanbase.__all_virtual_timestamp_service where TENANT_ID = a.TENANT_ID) GROUP BY TENANT_ID )__"))) {
|
||||
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT TENANT_ID, TS_TYPE, TS_VALUE, SVR_IP, SVR_PORT FROM oceanbase.__all_virtual_timestamp_service as a WHERE ROLE = 'LEADER' AND SERVICE_EPOCH = (SELECT MAX(SERVICE_EPOCH) FROM oceanbase.__all_virtual_timestamp_service where TENANT_ID = a.TENANT_ID) GROUP BY TENANT_ID, TS_TYPE, TS_VALUE, SVR_IP, SVR_PORT )__"))) {
|
||||
LOG_ERROR("fail to set view_definition", K(ret));
|
||||
}
|
||||
}
|
||||
|
||||
@ -30116,7 +30116,7 @@ def_table_schema(
|
||||
0 AS BLOCK
|
||||
FROM
|
||||
oceanbase.__ALL_VIRTUAL_TRANS_LOCK_STAT
|
||||
GROUP BY (TRANS_ID)
|
||||
GROUP BY SVR_IP, SVR_PORT, TENANT_ID, TRANS_ID
|
||||
|
||||
UNION ALL
|
||||
|
||||
@ -30219,7 +30219,7 @@ def_table_schema(
|
||||
# 21403: DBA_OB_EXTERNAL_TABLE_FILE
|
||||
|
||||
def_table_schema(
|
||||
owner = 'lixinze.lxz',
|
||||
owner = 'gjw228474',
|
||||
table_name = 'V$OB_TIMESTAMP_SERVICE',
|
||||
table_id = '21404',
|
||||
table_type = 'SYSTEM_VIEW',
|
||||
@ -30241,7 +30241,7 @@ def_table_schema(
|
||||
(SELECT MAX(SERVICE_EPOCH) FROM
|
||||
oceanbase.__all_virtual_timestamp_service
|
||||
where TENANT_ID = a.TENANT_ID)
|
||||
GROUP BY TENANT_ID
|
||||
GROUP BY TENANT_ID, TS_TYPE, TS_VALUE, SVR_IP, SVR_PORT
|
||||
""".replace("\n", " ")
|
||||
)
|
||||
|
||||
@ -60026,7 +60026,7 @@ def_table_schema(
|
||||
)
|
||||
|
||||
def_table_schema(
|
||||
owner = 'lixinze.lxz',
|
||||
owner = 'gjw228474',
|
||||
table_name = 'V$OB_TIMESTAMP_SERVICE',
|
||||
name_postfix = '_ORA',
|
||||
database_id = 'OB_ORA_SYS_DATABASE_ID',
|
||||
|
||||
Reference in New Issue
Block a user