@Override public String getName() { String dir; switch (direction) { case BOTH: dir = "<->"; break; case IN: dir = "<-"; break; case OUT: dir = "->"; break; default: dir = "unknown"; break; } return vertexLabel.getName() + dir + edgeLabel.getName(); }
@Override public String getName() { String dir; switch (direction) { case BOTH: dir = "<->"; break; case IN: dir = "<-"; break; case OUT: dir = "->"; break; default: dir = "unknown"; break; } return vertexLabel.getName() + dir + edgeLabel.getName(); }
public static void executeDropEdges(SqlgGraph sqlgGraph, EdgeLabel edgeLabel, String sql, List<EventCallback<Event>> mutatingCallbacks) { try { Connection conn = sqlgGraph.tx().getConnection(); if (logger.isDebugEnabled()) { logger.debug(sql); } try (Statement statement = conn.createStatement()) { if (mutatingCallbacks.isEmpty()) { statement.execute(sql); } else { ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { Long id = resultSet.getLong(1); final Event removeEvent; removeEvent = new Event.EdgeRemovedEvent(SqlgEdge.of(sqlgGraph, id, edgeLabel.getSchema().getName(), edgeLabel.getName())); for (EventCallback<Event> eventCallback : mutatingCallbacks) { eventCallback.accept(removeEvent); } } } } } catch (SQLException e) { throw new RuntimeException(e); } }
public static void executeDropEdges(SqlgGraph sqlgGraph, EdgeLabel edgeLabel, String sql, List<EventCallback<Event>> mutatingCallbacks) { try { Connection conn = sqlgGraph.tx().getConnection(); if (logger.isDebugEnabled()) { logger.debug(sql); } try (Statement statement = conn.createStatement()) { if (mutatingCallbacks.isEmpty()) { statement.execute(sql); } else { ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()) { Long id = resultSet.getLong(1); final Event removeEvent; removeEvent = new Event.EdgeRemovedEvent(SqlgEdge.of(sqlgGraph, id, edgeLabel.getSchema().getName(), edgeLabel.getName())); for (EventCallback<Event> eventCallback : mutatingCallbacks) { eventCallback.accept(removeEvent); } } } } } catch (SQLException e) { throw new RuntimeException(e); } }
sql.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sql.append("."); sql.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sql.append(" WHERE "); if (edgeLabel.hasIDPrimaryKey()) {
sql.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sql.append("."); sql.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sql.append(" WHERE "); if (edgeLabel.hasIDPrimaryKey()) {
sql.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sql.append("."); sql.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sql.append(" WHERE "); if (vertexLabel.hasIDPrimaryKey()) {
sql.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sql.append("."); sql.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sql.append(" a JOIN todelete on "); if (edgeLabel.hasIDPrimaryKey()) {
sql.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sql.append("."); sql.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sql.append(" WHERE "); if (vertexLabel.hasIDPrimaryKey()) {
sql.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sql.append("."); sql.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sql.append(" a "); if (mutatingCallbacks) {
sb.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sb.append("."); sb.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sb.append("\nWHERE "); sb.append(maybeWrapInQoutes(lastVertexLabel.getSchema().getName() + "." + lastVertexLabel.getName() + Topology.OUT_VERTEX_COLUMN_END)); sb.append(leafElementsToDelete); sb.append(")"); sqls.add(Triple.of(SqlgSqlExecutor.DROP_QUERY.NORMAL, sb.toString(), SchemaTable.of(edgeLabel.getSchema().getName(), Topology.EDGE_PREFIX + edgeLabel.getName()))); sb.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sb.append("."); sb.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sb.append("\nWHERE "); sb.append(maybeWrapInQoutes(lastVertexLabel.getSchema().getName() + "." + lastVertexLabel.getName() + Topology.IN_VERTEX_COLUMN_END)); sb.append(leafElementsToDelete); sb.append(")"); sqls.add(Triple.of(SqlgSqlExecutor.DROP_QUERY.NORMAL, sb.toString(), SchemaTable.of(edgeLabel.getSchema().getName(), Topology.EDGE_PREFIX + edgeLabel.getName())));
/** * remove a given edge label * * @param edgeLabel the edge label * @param preserveData should we keep the SQL data */ void removeEdgeLabel(EdgeLabel edgeLabel, boolean preserveData) { getTopology().lock(); String fn = this.name + "." + EDGE_PREFIX + edgeLabel.getName(); if (!uncommittedRemovedEdgeLabels.contains(fn)) { uncommittedRemovedEdgeLabels.add(fn); TopologyManager.removeEdgeLabel(this.sqlgGraph, edgeLabel); for (VertexLabel lbl : edgeLabel.getOutVertexLabels()) { lbl.removeOutEdge(edgeLabel); } for (VertexLabel lbl : edgeLabel.getInVertexLabels()) { lbl.removeInEdge(edgeLabel); } if (!preserveData) { edgeLabel.delete(); } getTopology().fire(edgeLabel, "", TopologyChangeAction.DELETE); } }
sb.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sb.append("."); sb.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sb.append("\nWHERE "); sb.append(maybeWrapInQoutes(lastVertexLabel.getSchema().getName() + "." + lastVertexLabel.getName() + Topology.OUT_VERTEX_COLUMN_END)); sb.append(leafElementsToDelete); sb.append(")"); sqls.add(Triple.of(SqlgSqlExecutor.DROP_QUERY.NORMAL, sb.toString(), SchemaTable.of(edgeLabel.getSchema().getName(), Topology.EDGE_PREFIX + edgeLabel.getName()))); sb.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sb.append("."); sb.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sb.append("\nWHERE "); sb.append(maybeWrapInQoutes(lastVertexLabel.getSchema().getName() + "." + lastVertexLabel.getName() + Topology.IN_VERTEX_COLUMN_END)); sb.append(leafElementsToDelete); sb.append(")"); sqls.add(Triple.of(SqlgSqlExecutor.DROP_QUERY.NORMAL, sb.toString(), SchemaTable.of(edgeLabel.getSchema().getName(), Topology.EDGE_PREFIX + edgeLabel.getName())));
sb.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sb.append("."); sb.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sb.append("\nWHERE "); sb.append(maybeWrapInQoutes(lastVertexLabel.getSchema().getName() + "." + lastVertexLabel.getName() + Topology.OUT_VERTEX_COLUMN_END)); sb.append(leafElementsToDelete); sb.append(")"); sqls.add(Triple.of(SqlgSqlExecutor.DROP_QUERY.NORMAL, sb.toString(), SchemaTable.of(edgeLabel.getSchema().getName(), Topology.EDGE_PREFIX + edgeLabel.getName()))); sb.append(maybeWrapInQoutes(edgeLabel.getSchema().getName())); sb.append("."); sb.append(maybeWrapInQoutes(Topology.EDGE_PREFIX + edgeLabel.getName())); sb.append("\nWHERE "); sb.append(maybeWrapInQoutes(lastVertexLabel.getSchema().getName() + "." + lastVertexLabel.getName() + Topology.IN_VERTEX_COLUMN_END)); sb.append(leafElementsToDelete); sb.append(")"); sqls.add(Triple.of(SqlgSqlExecutor.DROP_QUERY.NORMAL, sb.toString(), SchemaTable.of(edgeLabel.getSchema().getName(), Topology.EDGE_PREFIX + edgeLabel.getName())));
/** * remove a given edge label * * @param edgeLabel the edge label * @param preserveData should we keep the SQL data */ void removeEdgeLabel(EdgeLabel edgeLabel, boolean preserveData) { getTopology().lock(); String fn = this.name + "." + EDGE_PREFIX + edgeLabel.getName(); if (!uncommittedRemovedEdgeLabels.contains(fn)) { uncommittedRemovedEdgeLabels.add(fn); TopologyManager.removeEdgeLabel(this.sqlgGraph, edgeLabel); for (VertexLabel lbl : edgeLabel.getOutVertexLabels()) { lbl.removeOutEdge(edgeLabel); } for (VertexLabel lbl : edgeLabel.getInVertexLabels()) { lbl.removeInEdge(edgeLabel); } if (!preserveData) { edgeLabel.delete(); } getTopology().fire(edgeLabel, "", TopologyChangeAction.DELETE); } }
public static void removeEdgeLabel(SqlgGraph sqlgGraph, EdgeLabel edge) { BatchManager.BatchModeType batchModeType = flushAndSetTxToNone(sqlgGraph); try { GraphTraversalSource traversalSource = sqlgGraph.topology(); List<Vertex> edges = traversalSource.V() .hasLabel(SQLG_SCHEMA + "." + SQLG_SCHEMA_SCHEMA) .has("name", edge.getSchema().getName()) .out(SQLG_SCHEMA_SCHEMA_VERTEX_EDGE) .out(SQLG_SCHEMA_OUT_EDGES_EDGE) .has("name", edge.getName()).toList(); if (edges.size() > 0) { Vertex edgeV = edges.get(0); traversalSource.V(edgeV) .out(SQLG_SCHEMA_EDGE_PROPERTIES_EDGE) .drop() .iterate(); traversalSource.V(edgeV) .drop() .iterate(); } } finally { sqlgGraph.tx().batchMode(batchModeType); } }
public static void removeEdgeLabel(SqlgGraph sqlgGraph, EdgeLabel edge) { BatchManager.BatchModeType batchModeType = flushAndSetTxToNone(sqlgGraph); try { GraphTraversalSource traversalSource = sqlgGraph.topology(); List<Vertex> edges = traversalSource.V() .hasLabel(SQLG_SCHEMA + "." + SQLG_SCHEMA_SCHEMA) .has("name", edge.getSchema().getName()) .out(SQLG_SCHEMA_SCHEMA_VERTEX_EDGE) .out(SQLG_SCHEMA_OUT_EDGES_EDGE) .has("name", edge.getName()).toList(); if (edges.size() > 0) { Vertex edgeV = edges.get(0); traversalSource.V(edgeV) .out(SQLG_SCHEMA_EDGE_PROPERTIES_EDGE) .drop() .iterate(); traversalSource.V(edgeV) .drop() .iterate(); } } finally { sqlgGraph.tx().batchMode(batchModeType); } }