mirror of
https://github.com/actiontech/dble.git
synced 2026-05-03 21:10:31 -05:00
Merge pull request #3713 from actiontech/3.22.07.99/lts_2215
[inner-2215] in execute protocol, prepare sql need to be recorded in sql_log (cherry pick)
This commit is contained in:
@@ -291,6 +291,11 @@ public class RWSplitService extends BusinessService<SingleDbGroupUserConfig> {
|
||||
try {
|
||||
RwSplitServerParse serverParse = ServerParseFactory.getRwSplitParser();
|
||||
String sql = mm.readString(getCharset().getClient());
|
||||
if (sql.endsWith(";")) {
|
||||
sql = sql.substring(0, sql.length() - 1).trim();
|
||||
}
|
||||
sql = sql.trim();
|
||||
final String finalSql = sql;
|
||||
int rs = serverParse.parse(sql);
|
||||
int sqlType = rs & 0xff;
|
||||
if (sqlType == ServerParse.SELECT) {
|
||||
@@ -300,7 +305,7 @@ public class RWSplitService extends BusinessService<SingleDbGroupUserConfig> {
|
||||
if (isSuccess) {
|
||||
long statementId = ByteUtil.readUB4(resp, 5);
|
||||
int paramCount = ByteUtil.readUB2(resp, 11);
|
||||
psHolder.put(statementId, new PreparedStatementHolder(data, paramCount, true));
|
||||
psHolder.put(statementId, new PreparedStatementHolder(data, paramCount, true, finalSql));
|
||||
}
|
||||
}, false);
|
||||
} else {
|
||||
@@ -308,7 +313,7 @@ public class RWSplitService extends BusinessService<SingleDbGroupUserConfig> {
|
||||
if (isSuccess) {
|
||||
long statementId = ByteUtil.readUB4(resp, 5);
|
||||
int paramCount = ByteUtil.readUB2(resp, 11);
|
||||
psHolder.put(statementId, new PreparedStatementHolder(data, paramCount, false));
|
||||
psHolder.put(statementId, new PreparedStatementHolder(data, paramCount, false, finalSql));
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
@@ -317,7 +322,7 @@ public class RWSplitService extends BusinessService<SingleDbGroupUserConfig> {
|
||||
if (isSuccess) {
|
||||
long statementId = ByteUtil.readUB4(resp, 5);
|
||||
int paramCount = ByteUtil.readUB2(resp, 11);
|
||||
psHolder.put(statementId, new PreparedStatementHolder(data, paramCount, true));
|
||||
psHolder.put(statementId, new PreparedStatementHolder(data, paramCount, true, finalSql));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+7
-1
@@ -8,11 +8,13 @@ public class PreparedStatementHolder {
|
||||
private final boolean mustMaster;
|
||||
private byte[] fieldType;
|
||||
private boolean needAddFieldType;
|
||||
private String prepareSql;
|
||||
|
||||
public PreparedStatementHolder(byte[] prepareOrigin, int paramsCount, boolean mustMaster) {
|
||||
public PreparedStatementHolder(byte[] prepareOrigin, int paramsCount, boolean mustMaster, String sql) {
|
||||
this.prepareOrigin = prepareOrigin;
|
||||
this.paramsCount = paramsCount;
|
||||
this.mustMaster = mustMaster;
|
||||
this.prepareSql = sql;
|
||||
}
|
||||
|
||||
public boolean isMustMaster() {
|
||||
@@ -52,4 +54,8 @@ public class PreparedStatementHolder {
|
||||
public int getParamsCount() {
|
||||
return paramsCount;
|
||||
}
|
||||
|
||||
public String getPrepareSql() {
|
||||
return prepareSql;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user