main
Oliver Kennedy 2015-05-25 19:26:21 -04:00
parent cac8c7bd14
commit 7ae08d3fa3
10 changed files with 4 additions and 379 deletions

Binary file not shown.

View File

@ -1,218 +0,0 @@
package SQLAnalyser.visitor;
import java.util.*;
import net.sf.jsqlparser.*;
import net.sf.jsqlparser.schema.*;
import net.sf.jsqlparser.expression.*;
import net.sf.jsqlparser.statement.select.*;
import net.sf.jsqlparser.expression.operators.arithmetic.*;
import net.sf.jsqlparser.expression.operators.conditional.*;
import net.sf.jsqlparser.expression.operators.relational.*;
public class MyExpressionVisitor implements ExpressionVisitor {
@Override
public void visit(Addition addition) {
System.out.println("In ADDITION:");
}
@Override
public void visit(AllComparisonExpression allComparisonExpression) {
System.out.println("IN ALLCOMPARISON EXPRESSION:");
}
@Override
public void visit(AndExpression andExpression) {
System.out.println("IN ANDEXPRESSION:");
}
@Override
public void visit(AnyComparisonExpression anyComparisonExpression) {
System.out.println("IN ANYCOMPARISON EXPRESSION:");
}
@Override
public void visit(BitwiseXor bitwiseXor) {
System.out.println("IN BITWISE XOR:");
}
@Override
public void visit(BitwiseOr bitwiseOr) {
System.out.println("IN BITWISE OR:");
}
@Override
public void visit(BitwiseAnd bitwiseAnd) {
System.out.println("IN BITWISE AND:");
}
@Override
public void visit(Between between) {
System.out.println("IN BETWEEN:");
}
@Override
public void visit(CaseExpression caseExpression) {
System.out.println("IN CASEEXPRESSION:");
}
@Override
public void visit(Column column) {
System.out.println("IN COLUMN:");
System.out.println("COLUMN NAME:"+column.getColumnName());
System.out.println("WHOLE COLUMN NAME:"+column.getWholeColumnName());
//Table table = column.getTable();
//if(!table.toString().equals("null")) table.accept(new MyFromItemVisitor());
}
@Override
public void visit(Concat concat) {
System.out.println("IN CONCAT:");
System.out.println(concat.toString());
}
@Override
public void visit(DateValue dateValue) {
System.out.println("IN DATEVALUE:");
}
@Override
public void visit(Division division) {
System.out.println("IN DIVISION:");
}
@Override
public void visit(DoubleValue doubleValue) {
System.out.println("IN DOUBLEVALUE:");
}
@Override
public void visit(EqualsTo equalsTo) {
System.out.println("IN EQUALSTO:");
}
@Override
public void visit(ExistsExpression existsExpression) {
System.out.println("IN EXISTSEXPRESSION:");
}
@Override
public void visit(Function function) {
System.out.println("IN FUNCTION:");
}
@Override
public void visit(GreaterThan greaterThan) {
System.out.println("IN GREATER THAN:");
}
@Override
public void visit(GreaterThanEquals greaterThanEquals) {
System.out.println("IN GREATER THAN EQUALS:");
}
@Override
public void visit(InExpression inExpression) {
System.out.println("IN INEXPRESSION:");
}
@Override
public void visit(InverseExpression inverseExpression) {
System.out.println("IN INVERSE EXPRESSION:");
}
@Override
public void visit(IsNullExpression isNullExpression) {
System.out.println("IN ISNULL EXPRESSSION:");
}
@Override
public void visit(JdbcParameter jdbcParameter) {
System.out.println("IN JDBC PARAMETER:");
}
@Override
public void visit(LikeExpression likeExpression) {
System.out.println("IN LIKE EXPRESSION:");
}
@Override
public void visit(LongValue longValue) {
System.out.println("IN LONG VALUE");
}
@Override
public void visit(Matches matches) {
System.out.println("IN MATCHES:");
}
@Override
public void visit(MinorThan minorThan) {
System.out.println("IN MINOR THAN");
}
@Override
public void visit(MinorThanEquals minorThanEquals) {
System.out.println("IN MINOR THAN EQUALS:");
}
@Override
public void visit(Multiplication multiplication) {
System.out.println("IN MULTIPLICATION:");
}
@Override
public void visit(NotEqualsTo notEqualsTo) {
System.out.println("IN NOT EQUALS TO:");
}
@Override
public void visit(NullValue nullValue) {
System.out.println("IN NULL VALUE:");
}
@Override
public void visit(OrExpression orExpression) {
System.out.println("IN OR EXPRESSION:");
}
@Override
public void visit(Parenthesis parenthesis) {
System.out.println("IN PARENTHESIS:");
}
@Override
public void visit(StringValue stringValue) {
System.out.println("IN STRING VALUE:");
}
@Override
public void visit(SubSelect subSelect) {
System.out.println("IN SUBSELECT:");
System.out.println(subSelect.toString());
SelectBody selectBody = subSelect.getSelectBody();
selectBody.accept(new MySelectVisitor());
}
@Override
public void visit(Subtraction substraction) {
System.out.println("IN SUBTRACTION:");
}
@Override
public void visit(TimestampValue timestampValue) {
System.out.println("IN TIMESTAMP VALUE:");
}
@Override
public void visit(TimeValue timeValue) {
System.out.println("IN TIMEVALUE:");
}
@Override
public void visit(WhenClause whenClause) {
System.out.println("IN WHEN CLAUSE:");
}
}

View File

@ -1,77 +0,0 @@
package SQLAnalyser.visitor;
import java.util.*;
import net.sf.jsqlparser.statement.select.*;
import net.sf.jsqlparser.schema.*;
public class MyFromItemVisitor implements FromItemVisitor {
/*
* HashMap to keep count of the number of accesses to a table.
*/
static HashMap<String,Integer> tableRefCount =
new HashMap<String,Integer>(0);
@Override
public void visit(SubJoin subjoin) {
System.out.println("IN SUBJOIN:");
}
@Override
public void visit(SubSelect subSelect) {
System.out.println("IN SUBSELECT:");
System.out.println(subSelect.toString());
SelectBody selectBody = subSelect.getSelectBody();
selectBody.accept(new MySelectVisitor());
}
@Override
public void visit(Table tableName) {
System.out.println("IN TABLE:");
System.out.println(tableName.toString());
System.out.println("WholeTableName: "+tableName.getWholeTableName());
String alias = tableName.getAlias();
if(alias != null) System.out.println("Alias: "+alias);
String name = tableName.getName();
System.out.println("Name: "+name);
String schemaName = tableName.getSchemaName();
if(schemaName != null) System.out.println("SchemaName: "+schemaName);
/*
* Logic to update tableRefCount
*/
boolean found = false;
Integer count = 0;
for(String key:tableRefCount.keySet()){
if(key.equals(name)){
found=true;
count = tableRefCount.get(name);
count += 1;
}
}
if(!found) tableRefCount.put(name,1);
else tableRefCount.put(name, count);
//End logic
}
public void printTableRefCount() {
System.out.println("");
System.out.println("===================================================");
System.out.printf("%10sTABLE REFERENCE COUNT:\n"," ");
System.out.printf("TABLENAME%21sHITS\n"," ");
System.out.println("");
for(Map.Entry<String,Integer> entry:tableRefCount.entrySet()) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.printf("%s",key);
int numberSpaces = 30-key.length();
int counter =0;
while(counter < numberSpaces){ System.out.print(" "); counter++;}
System.out.printf("%4d\n",value);
}
System.out.println("===================================================");
}
}

View File

@ -1,36 +0,0 @@
package SQLAnalyser.visitor;
import java.util.*;
import net.sf.jsqlparser.*;
import net.sf.jsqlparser.schema.*;
import net.sf.jsqlparser.expression.*;
import net.sf.jsqlparser.statement.select.*;
public class MySelectItemVisitor implements SelectItemVisitor {
@Override
public void visit(AllColumns allColumns) {
System.out.println("IN ALL COLUMNS:");
System.out.println(allColumns.toString());
}
@Override
public void visit(AllTableColumns allTableColumns) {
System.out.println("IN ALL TABLE COLUMNS:");
System.out.println(allTableColumns.toString());
Table table = allTableColumns.getTable();
table.accept(new MyFromItemVisitor());
}
@Override
public void visit(SelectExpressionItem selectExpressionItem) {
System.out.println("IN SELECTEXPRESSION ITEM:");
System.out.println(selectExpressionItem.toString());
String alias = selectExpressionItem.getAlias();
if(alias != null) System.out.println("ALIAS: "+alias);
Expression expression = selectExpressionItem.getExpression();
expression.accept(new MyExpressionVisitor());
}
}

View File

@ -1,44 +0,0 @@
package SQLAnalyser.visitor;
import java.util.*;
import net.sf.jsqlparser.statement.*;
import net.sf.jsqlparser.statement.select.*;
public class MySelectVisitor implements SelectVisitor {
@Override
public void visit(PlainSelect plainSelect) {
System.out.println("IN PLAINSELECT:");
System.out.println(plainSelect.toString());
List<SelectItem> selectItems = plainSelect.getSelectItems();
if(selectItems != null) {
System.out.println("SELECT ITEMS:");
for(SelectItem selectItem:selectItems) {
selectItem.accept(new MySelectItemVisitor());
}
}
FromItem fromItem = plainSelect.getFromItem();
fromItem.accept(new MyFromItemVisitor());
List<Join> joins = plainSelect.getJoins();
if(joins != null) {
System.out.println("JOINS:");
for(Join join:joins){
System.out.print(join.toString());
}
}
}
@Override
public void visit(Union union) {
System.out.println("IN UNION:");
System.out.println(union.toString());
List<PlainSelect> plainSelects = union.getPlainSelects();
for(PlainSelect plainSelect:plainSelects) {
this.visit(plainSelect);
}
}
}

View File

@ -1,4 +1,4 @@
package SQLAnalyser;
package sqlanalysis;
import java.io.*;
import java.util.*;

View File

@ -1,4 +1,4 @@
package SQLAnalyser;
package sqlanalysis;
import java.io.*;
import java.util.*;

View File

@ -1,4 +1,4 @@
package SQLAnalyserExperiment;
package sqlanalysis;
import java.io.*;

View File

@ -1,4 +1,4 @@
package SQLAnalyser;
package sqlanalysis;
import org.junit.runner.*;
import org.junit.runner.notification.*;