mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
fxied conflicts.
This commit is contained in:
@@ -453,7 +453,7 @@ public class StatFilter extends FilterEventAdapter implements StatFilterMBean {
|
||||
sqlStat.decrementRunningCount();
|
||||
sqlStat.addExecuteTime(statement.getLastExecuteType(), firstResult, nanos);
|
||||
statement.setLastExecuteTimeNano(nanos);
|
||||
if ((!statement.isFirstResultSet()) && statement.getLastExecuteType() == StatementExecuteType.Execute) {
|
||||
if ((!firstResult) && statement.getLastExecuteType() == StatementExecuteType.Execute) {
|
||||
try {
|
||||
int updateCount = statement.getUpdateCount();
|
||||
sqlStat.addUpdateCount(updateCount);
|
||||
|
||||
@@ -18,7 +18,7 @@ package com.alibaba.druid.sql.ast.expr;
|
||||
import com.alibaba.druid.sql.ast.SQLExprImpl;
|
||||
import com.alibaba.druid.sql.ast.SQLObject;
|
||||
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
|
||||
|
||||
git
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -584,11 +584,11 @@ public class SQLEvalVisitorUtils {
|
||||
String text = x.getValue();
|
||||
|
||||
long[] words = new long[text.length() / 64 + 1];
|
||||
for (int i = 0; i < text.length(); ++i) {
|
||||
for (int i = text.length()-1; i >= 0 ; --i) {
|
||||
char ch = text.charAt(i);
|
||||
if (ch == '1') {
|
||||
int wordIndex = i >> 6;
|
||||
words[wordIndex] |= (1L << i);
|
||||
words[wordIndex] |= (1L << (text.length() - 1 - i));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -600,7 +600,7 @@ public class SQLEvalVisitorUtils {
|
||||
byte[] bytes = new byte[words.length * 8];
|
||||
|
||||
for (int i = 0; i < words.length; ++i) {
|
||||
Utils.putLong(bytes, i * 8, words[i]);
|
||||
Utils.putLong(bytes, (words.length-1-i) * 8, words[i]);
|
||||
}
|
||||
|
||||
val = new BigInteger(bytes);
|
||||
|
||||
@@ -235,6 +235,7 @@ druid.lang = function() {
|
||||
'SQLStatWhiteList':['SQL Stat - White List', 'SQL防御统计 - 白名单'],
|
||||
'SQLStatBlackList':['SQL Stat - Black List', 'SQL防御统计 - 黑名单'],
|
||||
/**session-detail*/
|
||||
'PrincipalOnly':['Principal Only', 'Principal过滤'],
|
||||
'SESSIONID':['SESSIONID', 'SESSIONID'],
|
||||
'UserAgent':['UserAgent', 'UserAgent'],
|
||||
'Principal':['Principal', 'Principal'],
|
||||
|
||||
@@ -18,6 +18,11 @@
|
||||
Web Session Stat
|
||||
<a href="websession.json" target="_blank">View JSON API</a>
|
||||
<span class="pull-right" style="font-size: 16px; margin-right: 20px;">
|
||||
<label class="lang" style="display: inline; cursor: pointer;">
|
||||
<input type="checkbox" id="principalOnlyCheck" style="margin-top: 0px;">
|
||||
<span langkey="PrincipalOnly" class="lang">Principal Only</span>
|
||||
<span> | </span>
|
||||
</label>
|
||||
<label langkey="RefreshPeriod" class="lang" style="display: inline;" for="refreshSecondsSelect">Refresh Period</label>
|
||||
<select id="refreshSecondsSelect" class="refresh-seconds-select btn" style="width:80px;" onchange="javascript:druid.websession.refreshSeconds=parseInt(this.options[this.options.selectedIndex].value);">
|
||||
<option value="5"selected="selected">5s</option>
|
||||
@@ -63,6 +68,9 @@
|
||||
$("#dataTable th a").click(function(obj) {
|
||||
druid.common.setOrderBy(obj.target.id.substring(3))
|
||||
})
|
||||
$("#principalOnlyCheck").change(function(obj) {
|
||||
druid.common.ajaxRequestForBasicInfo();
|
||||
});
|
||||
druid.common.buildHead(6);
|
||||
druid.common.ajaxuri = 'websession.json?';
|
||||
druid.common.handleCallback = druid.websession.handleAjaxResult;
|
||||
@@ -107,8 +115,12 @@
|
||||
}
|
||||
|
||||
var html = "";
|
||||
var principalOnlyChecked = document.getElementById("principalOnlyCheck").checked;
|
||||
for ( var i = 0; i < statList.length; i++) {
|
||||
var stat = statList[i];
|
||||
if(principalOnlyChecked && !stat.Principal) {
|
||||
continue;
|
||||
}
|
||||
var newRow = sqlStatTable.insertRow(-1);
|
||||
html += "<tr>";
|
||||
html += "<td>" + (i + 1) + "</td>";
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package com.alibaba.druid.bvt.sql.eval;
|
||||
|
||||
import com.alibaba.druid.sql.ast.expr.SQLBinaryExpr;
|
||||
import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
import junit.framework.TestCase;
|
||||
import org.junit.Assert;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.sql.visitor.SQLEvalVisitorUtils;
|
||||
import com.alibaba.druid.util.JdbcUtils;
|
||||
|
||||
public class SQLEvalVisitorUtilsTest extends TestCase {
|
||||
|
||||
public void test_instance() throws Exception {
|
||||
@@ -168,4 +169,12 @@ public class SQLEvalVisitorUtilsTest extends TestCase {
|
||||
Assert.assertEquals(true, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "? >= ?", Arrays.<Object> asList(3, 3)));
|
||||
Assert.assertEquals(true, SQLEvalVisitorUtils.evalExpr(JdbcUtils.MYSQL, "? >= ?", Arrays.<Object> asList(4, 3)));
|
||||
}
|
||||
|
||||
public void test_binary() throws Exception {
|
||||
Assert.assertEquals(1L, SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("01"), new ArrayList<Object>()));
|
||||
Assert.assertEquals(2L, SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("10"), new ArrayList<Object>()));
|
||||
Assert.assertEquals(3L, SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("11"), new ArrayList<Object>()));
|
||||
Assert.assertEquals(4L, SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("100"), new ArrayList<Object>()));
|
||||
Assert.assertEquals(new BigInteger("36893488147419103231"), SQLEvalVisitorUtils.eval(JdbcUtils.MYSQL, new SQLBinaryExpr("11111111111111111111111111111111111111111111111111111111111111111"), new ArrayList<Object>()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user