Skip to content

Commit

Permalink
Merge pull request #12 from opentracing-contrib/fix_method_name
Browse files Browse the repository at this point in the history
  • Loading branch information
malafeev committed Aug 14, 2018
2 parents 0f94ad9 + 6891f44 commit 6872ec7
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -151,15 +151,15 @@ public String querySpanName(String query) {
returns the enum for the found manipulation method.
*/
private ManipulationMethod getManipulationMethod(String query) {
ManipulationMethod retMethod = ManipulationMethod.NOT_FOUND;
String upperQuery = query.toUpperCase();
for (String method : CASSANDRA_MANIPULATION_METHODS) {
if (upperQuery.contains(method)) {
retMethod = ManipulationMethod.valueOf(method.replace(' ', '_'));
break;
String[] queryParts = query.toUpperCase().split("\\s+");
for (String queryPart : queryParts) {
for (String method : CASSANDRA_MANIPULATION_METHODS) {
if (queryPart.contains(method)) {
return ManipulationMethod.valueOf(method);
}
}
}
return retMethod;
return ManipulationMethod.NOT_FOUND;
}

/*
Expand All @@ -168,15 +168,14 @@ private ManipulationMethod getManipulationMethod(String query) {
the enum for the found definition method.
*/
private DefinitionMethod getDefininitionMethod(String query) {
DefinitionMethod retMethod = DefinitionMethod.NOT_FOUND;
String upperQuery = query.toUpperCase();
String upperQuery = query.toUpperCase().replaceAll("\\s{2,}", " ").trim();

for (String method : CASSANDRA_DEFINITION_METHODS) {
if (upperQuery.contains(method)) {
retMethod = DefinitionMethod.valueOf(method.replace(' ', '_'));
break;
if (upperQuery.startsWith(method)) {
return DefinitionMethod.valueOf(method.replace(' ', '_'));
}
}
return retMethod;
return DefinitionMethod.NOT_FOUND;
}

/*
Expand All @@ -187,7 +186,7 @@ private String findTargetEntityAfter(String query, String after) {
// Regex to find the first word (containing only alphanumeric, period, or underscore characters)
// that occurs after the String after
Pattern findTablePattern = Pattern.compile(Pattern.quote(after) + " ([\\w.]+)");
Matcher matcher = findTablePattern.matcher(query);
Matcher matcher = findTablePattern.matcher(query.replaceAll("\\s{2,}", " "));
if (matcher.find()) {
return matcher.group(1);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,138 +24,141 @@ public void manipulationMethodTest() {
QuerySpanNameProvider querySpanNameProvider = QueryMethodTableSpanName.newBuilder().build();
// SELECT
assertEquals("Cassandra.SELECT - test.table_name",
querySpanNameProvider.querySpanName("SELECT * FROM test.table_name;"));
querySpanNameProvider.querySpanName(" SELECT * FROM test.table_name;"));
assertEquals("Cassandra.SELECT - N/A", querySpanNameProvider.querySpanName("SELECT *;"));
assertEquals("Cassandra.SELECT - N/A", querySpanNameProvider.querySpanName("SELECT * FROM ;"));
assertEquals("Cassandra.SELECT - N/A", querySpanNameProvider.querySpanName(" SELECT * FROM ;"));
// INSERT
assertEquals("Cassandra.INSERT - test.table_name",
querySpanNameProvider.querySpanName("INSERT INTO test.table_name;"));
assertEquals("Cassandra.INSERT - N/A", querySpanNameProvider.querySpanName("INSERT;"));
assertEquals("Cassandra.INSERT - N/A", querySpanNameProvider.querySpanName("INSERT INTO ;"));
assertEquals("Cassandra.INSERT - batch_table",
querySpanNameProvider.querySpanName(" INSERT INTO batch_table;"));
// UPDATE
assertEquals("Cassandra.UPDATE - test.table_name",
querySpanNameProvider.querySpanName("UPDATE test.table_name;"));
assertEquals("Cassandra.UPDATE - N/A", querySpanNameProvider.querySpanName("UPDATE;"));
assertEquals("Cassandra.UPDATE - N/A", querySpanNameProvider.querySpanName("UPDATE ;"));
assertEquals("Cassandra.UPDATE - N/A", querySpanNameProvider.querySpanName(" UPDATE ;"));
// DELETE
assertEquals("Cassandra.DELETE - test.table_name",
querySpanNameProvider.querySpanName("DELETE * FROM test.table_name;"));
assertEquals("Cassandra.DELETE - N/A", querySpanNameProvider.querySpanName("DELETE *;"));
assertEquals("Cassandra.DELETE - N/A", querySpanNameProvider.querySpanName("DELETE * FROM ;"));
assertEquals("Cassandra.DELETE - N/A",
querySpanNameProvider.querySpanName(" DELETE * FROM ;"));
// BATCH
assertEquals("Cassandra.BATCH", querySpanNameProvider.querySpanName("BEGIN BATCH;"));
assertEquals("Cassandra.BATCH", querySpanNameProvider.querySpanName("APPLY BATCH;"));
assertEquals("Cassandra.BATCH", querySpanNameProvider.querySpanName(" BEGIN BATCH;"));
assertEquals("Cassandra.BATCH", querySpanNameProvider.querySpanName("APPLY BATCH;"));
}

@Test
public void definitionMethodTest() {
QuerySpanNameProvider querySpanNameProvider = new QueryMethodTableSpanName().newBuilder()
QuerySpanNameProvider querySpanNameProvider = QueryMethodTableSpanName.newBuilder()
.build();
// USE
assertEquals("Cassandra.USE - test", querySpanNameProvider.querySpanName("USE test;"));
assertEquals("Cassandra.USE - N/A", querySpanNameProvider.querySpanName("USE;"));
assertEquals("Cassandra.USE - N/A", querySpanNameProvider.querySpanName("USE ;"));
// CREATE_KEYSPACE
assertEquals("Cassandra.CREATE_KEYSPACE - use_test",
querySpanNameProvider.querySpanName(" CREATE KEYSPACE use_test;"));
assertEquals("Cassandra.CREATE_KEYSPACE - test",
querySpanNameProvider.querySpanName("CREATE KEYSPACE test;"));
assertEquals("Cassandra.CREATE_KEYSPACE - test",
querySpanNameProvider.querySpanName("CREATE KEYSPACE IF NOT EXISTS test;"));
querySpanNameProvider.querySpanName("CREATE KEYSPACE IF NOT EXISTS test;"));
assertEquals("Cassandra.CREATE_KEYSPACE - N/A",
querySpanNameProvider.querySpanName("CREATE KEYSPACE"));
assertEquals("Cassandra.CREATE_KEYSPACE - N/A",
querySpanNameProvider.querySpanName("CREATE KEYSPACE ;"));
querySpanNameProvider.querySpanName(" CREATE KEYSPACE ;"));
// ALTER_KEYSPACE
assertEquals("Cassandra.ALTER_KEYSPACE - test",
querySpanNameProvider.querySpanName("ALTER KEYSPACE test;"));
assertEquals("Cassandra.ALTER_KEYSPACE - use_test",
querySpanNameProvider.querySpanName("ALTER KEYSPACE use_test;"));
assertEquals("Cassandra.ALTER_KEYSPACE - N/A",
querySpanNameProvider.querySpanName("ALTER KEYSPACE;"));
querySpanNameProvider.querySpanName("ALTER KEYSPACE;"));
assertEquals("Cassandra.ALTER_KEYSPACE - N/A",
querySpanNameProvider.querySpanName("ALTER KEYSPACE ;"));
// DROP_KEYSPACE
assertEquals("Cassandra.DROP_KEYSPACE - test",
querySpanNameProvider.querySpanName("DROP KEYSPACE test;"));
querySpanNameProvider.querySpanName("DROP KEYSPACE test;"));
assertEquals("Cassandra.DROP_KEYSPACE - test",
querySpanNameProvider.querySpanName("DROP KEYSPACE IF EXISTS test;"));
querySpanNameProvider.querySpanName("DROP KEYSPACE IF EXISTS test;"));
assertEquals("Cassandra.DROP_KEYSPACE - N/A",
querySpanNameProvider.querySpanName("DROP KEYSPACE;"));
querySpanNameProvider.querySpanName("DROP KEYSPACE;"));
assertEquals("Cassandra.DROP_KEYSPACE - N/A",
querySpanNameProvider.querySpanName("DROP KEYSPACE ;"));
// CREATE_TABLE
assertEquals("Cassandra.CREATE_TABLE - test.table_name",
querySpanNameProvider.querySpanName("CREATE TABLE test.table_name;"));
querySpanNameProvider.querySpanName("CREATE TABLE test.table_name;"));
assertEquals("Cassandra.CREATE_TABLE - test.table_name",
querySpanNameProvider.querySpanName("CREATE TABLE IF NOT EXISTS test.table_name;"));
querySpanNameProvider.querySpanName("CREATE TABLE IF NOT EXISTS test.table_name;"));
assertEquals("Cassandra.CREATE_TABLE - N/A",
querySpanNameProvider.querySpanName("CREATE TABLE;"));
assertEquals("Cassandra.CREATE_TABLE - N/A",
querySpanNameProvider.querySpanName("CREATE TABLE ;"));
querySpanNameProvider.querySpanName("CREATE TABLE ;"));
// ALTER_TABLE
assertEquals("Cassandra.ALTER_TABLE - test.table_name",
querySpanNameProvider.querySpanName("ALTER TABLE test.table_name;"));
assertEquals("Cassandra.ALTER_TABLE - N/A",
querySpanNameProvider.querySpanName("ALTER TABLE;"));
querySpanNameProvider.querySpanName(" ALTER TABLE;"));
assertEquals("Cassandra.ALTER_TABLE - N/A",
querySpanNameProvider.querySpanName("ALTER TABLE ;"));
querySpanNameProvider.querySpanName("ALTER TABLE ;"));
// DROP_TABLE
assertEquals("Cassandra.DROP_TABLE - test.table_name",
querySpanNameProvider.querySpanName("DROP TABLE test.table_name;"));
querySpanNameProvider.querySpanName(" DROP TABLE test.table_name;"));
assertEquals("Cassandra.DROP_TABLE - test.table_name",
querySpanNameProvider.querySpanName("DROP TABLE IF EXISTS test.table_name;"));
querySpanNameProvider.querySpanName(" DROP TABLE IF EXISTS test.table_name;"));
assertEquals("Cassandra.DROP_TABLE - N/A", querySpanNameProvider.querySpanName("DROP TABLE;"));
assertEquals("Cassandra.DROP_TABLE - N/A", querySpanNameProvider.querySpanName("DROP TABLE ;"));
// TRUNCATE
assertEquals("Cassandra.TRUNCATE - test.table_name",
querySpanNameProvider.querySpanName("TRUNCATE test.table_name;"));
assertEquals("Cassandra.TRUNCATE - test.table_name",
querySpanNameProvider.querySpanName("TRUNCATE TABLE test.table_name;"));
querySpanNameProvider.querySpanName(" TRUNCATE TABLE test.table_name;"));
assertEquals("Cassandra.TRUNCATE - N/A", querySpanNameProvider.querySpanName("TRUNCATE;"));
assertEquals("Cassandra.TRUNCATE - N/A", querySpanNameProvider.querySpanName("TRUNCATE ;"));
// CREATE_INDEX
assertEquals("Cassandra.CREATE_INDEX - test_index",
querySpanNameProvider.querySpanName("CREATE INDEX test_index;"));
assertEquals("Cassandra.CREATE_INDEX - test_index",
querySpanNameProvider.querySpanName("CREATE INDEX IF NOT EXISTS test_index;"));
querySpanNameProvider.querySpanName("CREATE INDEX IF NOT EXISTS test_index;"));
assertEquals("Cassandra.CREATE_INDEX - N/A",
querySpanNameProvider.querySpanName("CREATE INDEX;"));
querySpanNameProvider.querySpanName(" CREATE INDEX;"));
assertEquals("Cassandra.CREATE_INDEX - N/A",
querySpanNameProvider.querySpanName("CREATE INDEX ;"));
// DROP_INDEX
assertEquals("Cassandra.DROP_INDEX - test_index",
querySpanNameProvider.querySpanName("DROP INDEX test_index;"));
querySpanNameProvider.querySpanName("DROP INDEX test_index;"));
assertEquals("Cassandra.DROP_INDEX - test_index",
querySpanNameProvider.querySpanName("DROP INDEX IF EXISTS test_index;"));
assertEquals("Cassandra.DROP_INDEX - N/A", querySpanNameProvider.querySpanName("DROP INDEX;"));
assertEquals("Cassandra.DROP_INDEX - N/A", querySpanNameProvider.querySpanName("DROP INDEX ;"));
querySpanNameProvider.querySpanName("DROP INDEX IF EXISTS test_index;"));
assertEquals("Cassandra.DROP_INDEX - N/A", querySpanNameProvider.querySpanName(" DROP INDEX;"));
assertEquals("Cassandra.DROP_INDEX - N/A",
querySpanNameProvider.querySpanName("DROP INDEX ;"));
// CREATE_MATERIALIZED_VIEW
assertEquals("Cassandra.CREATE_MATERIALIZED_VIEW - view_name",
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW view_name;"));
querySpanNameProvider.querySpanName(" CREATE MATERIALIZED VIEW view_name;"));
assertEquals("Cassandra.CREATE_MATERIALIZED_VIEW - view_name",
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW IF NOT EXISTS view_name;"));
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW IF NOT EXISTS view_name;"));
assertEquals("Cassandra.CREATE_MATERIALIZED_VIEW - N/A",
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW;"));
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW;"));
assertEquals("Cassandra.CREATE_MATERIALIZED_VIEW - N/A",
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW ;"));
querySpanNameProvider.querySpanName("CREATE MATERIALIZED VIEW ;"));
// ALTER_MATERIALIZED_VIEW
assertEquals("Cassandra.ALTER_MATERIALIZED_VIEW - view_name",
querySpanNameProvider.querySpanName("ALTER MATERIALIZED VIEW view_name;"));
querySpanNameProvider.querySpanName(" ALTER MATERIALIZED VIEW view_name;"));
assertEquals("Cassandra.ALTER_MATERIALIZED_VIEW - N/A",
querySpanNameProvider.querySpanName("ALTER MATERIALIZED VIEW;"));
assertEquals("Cassandra.ALTER_MATERIALIZED_VIEW - N/A",
querySpanNameProvider.querySpanName("ALTER MATERIALIZED VIEW ;"));
querySpanNameProvider.querySpanName("ALTER MATERIALIZED VIEW ;"));
// DROP_MATERIALIZED_VIEW
assertEquals("Cassandra.DROP_MATERIALIZED_VIEW - view_name",
querySpanNameProvider.querySpanName("DROP MATERIALIZED VIEW view_name;"));
querySpanNameProvider.querySpanName(" DROP MATERIALIZED VIEW view_name;"));
assertEquals("Cassandra.DROP_MATERIALIZED_VIEW - view_name",
querySpanNameProvider.querySpanName("DROP MATERIALIZED VIEW IF EXISTS view_name;"));
querySpanNameProvider.querySpanName("DROP MATERIALIZED VIEW IF EXISTS view_name;"));
assertEquals("Cassandra.DROP_MATERIALIZED_VIEW - N/A",
querySpanNameProvider.querySpanName("DROP MATERIALIZED VIEW;"));
querySpanNameProvider.querySpanName(" DROP MATERIALIZED VIEW;"));
assertEquals("Cassandra.DROP_MATERIALIZED_VIEW - N/A",
querySpanNameProvider.querySpanName("DROP MATERIALIZED VIEW ;"));
querySpanNameProvider.querySpanName("DROP MATERIALIZED VIEW ;"));
}

@Test
public void testInvalaidMethod() {
QuerySpanNameProvider querySpanNameProvider = new QueryMethodTableSpanName().newBuilder()
QuerySpanNameProvider querySpanNameProvider = QueryMethodTableSpanName.newBuilder()
.build();
assertEquals("Cassandra", querySpanNameProvider.querySpanName(""));
assertEquals("Cassandra", querySpanNameProvider.querySpanName(null));
Expand Down

0 comments on commit 6872ec7

Please sign in to comment.