2929import edu .berkeley .ground .model .usage .LineageGraphVersion ;
3030import edu .berkeley .ground .model .versions .GroundType ;
3131import edu .berkeley .ground .util .IdGenerator ;
32+ import org .slf4j .Logger ;
33+ import org .slf4j .LoggerFactory ;
3234
3335import java .util .ArrayList ;
36+ import java .util .HashSet ;
3437import java .util .List ;
3538import java .util .Map ;
36-
37- import org .slf4j .Logger ;
38- import org .slf4j .LoggerFactory ;
39+ import java .util .Set ;
40+ import java .util .stream .Collectors ;
3941
4042public class CassandraLineageGraphVersionFactory
4143 extends CassandraRichVersionFactory <LineageGraphVersion >
@@ -104,13 +106,12 @@ public LineageGraphVersion create(Map<String, Tag> tags,
104106 this .dbClient .insert ("lineage_graph_version" , insertions );
105107
106108 for (long lineageEdgeVersionId : lineageEdgeVersionIds ) {
107- List <DbDataContainer > lineageEdgeInsertion = new ArrayList <>();
108- lineageEdgeInsertion .add (new DbDataContainer ("lineage_graph_version_id" , GroundType .LONG ,
109- id ));
110- lineageEdgeInsertion .add (new DbDataContainer ("lineage_edge_version_id" , GroundType .LONG ,
111- lineageEdgeVersionId ));
109+ List <DbDataContainer > predicates = new ArrayList <>();
110+ predicates .add (new DbDataContainer ("id" , GroundType .LONG , id ));
111+ Set <Long > edgeValue = new HashSet <>();
112+ edgeValue .add (lineageEdgeVersionId );
112113
113- this .dbClient .insert ( "lineage_graph_version_edge " , lineageEdgeInsertion );
114+ this .dbClient .addToSet ( "lineage_graph_version " , "lineage_edge_version_id_set" , edgeValue , predicates );
114115 }
115116
116117 this .lineageGraphFactory .update (lineageGraphId , id , parentIds );
@@ -137,8 +138,8 @@ public LineageGraphVersion retrieveFromDatabase(long id) throws GroundException
137138 List <DbDataContainer > predicates = new ArrayList <>();
138139 predicates .add (new DbDataContainer ("id" , GroundType .LONG , id ));
139140
140- List <DbDataContainer > lineageEdgePredicate = new ArrayList <>();
141- lineageEdgePredicate .add (new DbDataContainer ("lineage_graph_version_id " , GroundType .LONG ,
141+ List <DbDataContainer > lineageGraphVersionPredicates = new ArrayList <>();
142+ lineageGraphVersionPredicates .add (new DbDataContainer ("id " , GroundType .LONG ,
142143 id ));
143144
144145 CassandraResults resultSet = this .dbClient .equalitySelect ("lineage_graph_version" ,
@@ -148,15 +149,7 @@ public LineageGraphVersion retrieveFromDatabase(long id) throws GroundException
148149
149150 long lineageGraphId = resultSet .getLong ("lineage_graph_id" );
150151
151- List <Long > lineageEdgeVersionIds = new ArrayList <>();
152- CassandraResults lineageEdgeSet = this .dbClient .equalitySelect ("lineage_graph_version_edge" ,
153- DbClient .SELECT_STAR , lineageEdgePredicate );
154-
155- if (!lineageEdgeSet .isEmpty ()) {
156- do {
157- lineageEdgeVersionIds .add (lineageEdgeSet .getLong ("lineage_edge_version_id" ));
158- } while (lineageEdgeSet .next ());
159- }
152+ List <Long > lineageEdgeVersionIds = resultSet .getSet ("lineage_edge_version_id_set" , Long .class ).stream ().collect (Collectors .toList ());
160153
161154 LOGGER .info ("Retrieved lineage_graph version " + id + " in lineage_graph " + lineageGraphId
162155 + "." );
0 commit comments