starrocks SQL 指纹diget有些为空

【详述】starrocks SQL 指纹diget有些为空
【背景】做慢查询推送和治理,发现starrocks SQL 指纹diget有些为空
【业务影响】
【StarRocks版本】3.1.13 和2.5.13 这2个版本都验证过
【集群规模】3fe + 3be
【联系方式】
查了下源码: public String computeStatementDigest(StatementBase queryStmt) {

if (queryStmt == null ) {

return "" ;

}

String digest = SqlDigestBuilder.build(queryStmt);

try {

MessageDigest md = MessageDigest.getInstance( "MD5" );

md.reset();

md.update(digest.getBytes());

return Hex.encodeHexString(md.digest());

} catch (NoSuchAlgorithmException e) {

return "" ;

}

}

public class SqlDigestBuilder {

public static String build(StatementBase statement) {

return new SqlDigestBuilderVisitor().visit(statement);

}

private static class SqlDigestBuilderVisitor extends AstToStringBuilder.AST2StringBuilderVisitor {

@Override

public String visitLiteral(LiteralExpr expr, Void context) {

return "?" ;

}

@Override

public String visitLimitElement(LimitElement node, Void context) {

if (node.getLimit() == - 1 ) {

return "" ;

}

StringBuilder sb = new StringBuilder( " LIMIT " );

if (node.getOffset() != 0 ) {

sb.append( " ?, " );

}

sb.append( " ? " );

return sb.toString();

}

}

}
确认一下,哪个版本修复了。digest为空的原因是?如何解决?
之前有个类似的帖子:请问为什么大部分sql,审计日志sql指纹为空

1.目前只有select类型的指纹会保留。
2.insert类型的查询不会保留指纹。
3.没跑完在中途被kill掉的那些query也不会保留指纹。

您好。insert类型的查询不会保留指纹,原因是?后续版本会支持吗?

我不知道啊,我也是使用用户 :grinning: