diff --git a/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/SqlTraversalEngine.java b/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/SqlTraversalEngine.java index 3da73578..c37014eb 100644 --- a/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/SqlTraversalEngine.java +++ b/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/SqlTraversalEngine.java @@ -144,7 +144,7 @@ private static void appendGraphTraversal(final String table, final String column } } else { // It's this vertex/edge. - if (columnName.toLowerCase(Locale.getDefault()).startsWith(gremlinTableBase.getLabel())) { + if (columnName.toLowerCase(Locale.getDefault()).startsWith(gremlinTableBase.getLabel().toLowerCase(Locale.getDefault()))) { graphTraversal.id(); } else { if (columnName.endsWith(IN_ID)) { @@ -162,7 +162,7 @@ private static void appendGraphTraversal(final String table, final String column graphTraversal.coalesce(__.outE().hasLabel(columnName.replace(OUT_ID, "")).id().fold(), __.constant(new ArrayList<>())); } else { - graphTraversal.coalesce(__.outV().hasLabel(columnName.replace(IN_ID, "")).id(), + graphTraversal.coalesce(__.outV().hasLabel(columnName.replace(OUT_ID, "")).id(), __.constant(new ArrayList<>())); } } else { diff --git a/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/schema/gremlin/GremlinEdgeTable.java b/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/schema/gremlin/GremlinEdgeTable.java index a01c0a20..ae830b2d 100644 --- a/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/schema/gremlin/GremlinEdgeTable.java +++ b/sql-gremlin/src/main/java/org/twilmes/sql/gremlin/adapter/converter/schema/gremlin/GremlinEdgeTable.java @@ -55,7 +55,7 @@ private static Map convert( final GremlinProperty inFk = new GremlinProperty(inOutPair.getKey() + GremlinTableBase.IN_ID, "string"); final GremlinProperty outFk = new GremlinProperty(inOutPair.getValue() + GremlinTableBase.OUT_ID, "string"); columnsWithPKFK.put(inFk.getName(), inFk); - columnsWithPKFK.put(outFk.getName(), inFk); + columnsWithPKFK.put(outFk.getName(), outFk); }); return columnsWithPKFK; } diff --git a/sql-gremlin/src/test/java/org/twilmes/sql/gremlin/adapter/GremlinSqlAdvancedSelectTest.java b/sql-gremlin/src/test/java/org/twilmes/sql/gremlin/adapter/GremlinSqlAdvancedSelectTest.java index 4c972038..6e6d8aff 100644 --- a/sql-gremlin/src/test/java/org/twilmes/sql/gremlin/adapter/GremlinSqlAdvancedSelectTest.java +++ b/sql-gremlin/src/test/java/org/twilmes/sql/gremlin/adapter/GremlinSqlAdvancedSelectTest.java @@ -44,6 +44,12 @@ public void testProject() throws SQLException { rows(r("Tom"), r("Patty"), r("Phil"), r("Susan"), r("Juanita"), r("Pavel"))); } + @Test + public void testEdges() throws SQLException { + runQueryTestResults("select * from worksFor where yearsWorked = 9", columns("person_OUT_ID", "company_IN_ID", "yearsWorked", "worksFor_ID"), + rows(r(26L, 2L, 9, 64L))); + } + @Test public void testOrder() throws SQLException { // ORDER with integer column.