fxied conflicts.

This commit is contained in:
wenshao
2017-09-28 09:40:16 +08:00
6 changed files with 33 additions and 11 deletions
@@ -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>()));
}
}