Loading src/catdata/aql/Query.java +4 −2 Changes for src/catdata/aql/Query.java: 4 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ public final class Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> implements Sem return ret; } public Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> unnest() { public synchronized Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> unnest() { Blob<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> b = new Blob<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2>(conv1(ens), atts, conv2(), src, dst); b = unfoldNestedApplications(b); Loading Loading @@ -397,6 +397,8 @@ public final class Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> implements Sem } } this.atts = new Ctx<>(atts.map); if (!doNotCheckPathEqs) { validate(); } Loading @@ -421,7 +423,7 @@ public final class Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> implements Sem for (Att2 att2 : atts.keySet()) { if (!dst.atts.containsKey(att2)) { throw new RuntimeException( "there is a return clause for " + att2 + ", which is not an attribute in the target"); "there is an attributes clause for " + att2 + ", which is not an attribute in the target"); } } for (Fk2 fk2 : dst.fks.keySet()) { Loading src/catdata/aql/exp/QueryExp.java +3 −3 Changes for src/catdata/aql/exp/QueryExp.java: 3 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -254,7 +254,7 @@ public abstract class QueryExp<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> } return new Pair<>(Q1.type(G).first, Q2.type(G).second); } private static int i = 0; public Query<Ty, En1, Sym, Fk1, Att1, En3, Fk3, Att3> eval(AqlEnv env) { AqlOptions ops = new AqlOptions(options, null, env.defaults); if ((Boolean)ops.getOrDefault(AqlOption.query_compose_use_incomplete)) { Loading @@ -271,7 +271,7 @@ public abstract class QueryExp<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> Map<En3, Pair<Ctx<Var, Pair<Var, Var>>, Ctx<Pair<Var, Var>, Var>>> isos = new HashMap<>(); int i = 0; for (En3 en3 : q2.dst.ens) { Pair<Ctx<Var, Pair<Var, Var>>, Ctx<Pair<Var, Var>, Var>> iso = new Pair<>(new Ctx<>(), new Ctx<>()); Loading @@ -281,7 +281,7 @@ public abstract class QueryExp<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> for (Entry<Var, En2> v : q2.ens.get(en3).gens.map.entrySet()) { Frozen<Ty, En1, Sym, Fk1, Att1> I = q1.ens.get(v.getValue()); for (Entry<Var, En1> u : I.gens.map.entrySet()) { Var newV = new Var("v" + (i++)); //new Var("\"(" + v.getKey() + "," + u.getKey() + ")\""); Var newV = new Var("vv" + (i++)); //new Var("\"(" + v.getKey() + "," + u.getKey() + ")\""); iso.first.put(newV, new Pair<>(v.getKey(), u.getKey())); iso.second.put(new Pair<>(v.getKey(), u.getKey()), newV); fr.put(newV, u.getValue()); Loading Loading
src/catdata/aql/Query.java +4 −2 Changes for src/catdata/aql/Query.java: 4 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -68,7 +68,7 @@ public final class Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> implements Sem return ret; } public Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> unnest() { public synchronized Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> unnest() { Blob<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> b = new Blob<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2>(conv1(ens), atts, conv2(), src, dst); b = unfoldNestedApplications(b); Loading Loading @@ -397,6 +397,8 @@ public final class Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> implements Sem } } this.atts = new Ctx<>(atts.map); if (!doNotCheckPathEqs) { validate(); } Loading @@ -421,7 +423,7 @@ public final class Query<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> implements Sem for (Att2 att2 : atts.keySet()) { if (!dst.atts.containsKey(att2)) { throw new RuntimeException( "there is a return clause for " + att2 + ", which is not an attribute in the target"); "there is an attributes clause for " + att2 + ", which is not an attribute in the target"); } } for (Fk2 fk2 : dst.fks.keySet()) { Loading
src/catdata/aql/exp/QueryExp.java +3 −3 Changes for src/catdata/aql/exp/QueryExp.java: 3 added lines, 3 removed lines. Original line number Diff line number Diff line Loading @@ -254,7 +254,7 @@ public abstract class QueryExp<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> } return new Pair<>(Q1.type(G).first, Q2.type(G).second); } private static int i = 0; public Query<Ty, En1, Sym, Fk1, Att1, En3, Fk3, Att3> eval(AqlEnv env) { AqlOptions ops = new AqlOptions(options, null, env.defaults); if ((Boolean)ops.getOrDefault(AqlOption.query_compose_use_incomplete)) { Loading @@ -271,7 +271,7 @@ public abstract class QueryExp<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> Map<En3, Pair<Ctx<Var, Pair<Var, Var>>, Ctx<Pair<Var, Var>, Var>>> isos = new HashMap<>(); int i = 0; for (En3 en3 : q2.dst.ens) { Pair<Ctx<Var, Pair<Var, Var>>, Ctx<Pair<Var, Var>, Var>> iso = new Pair<>(new Ctx<>(), new Ctx<>()); Loading @@ -281,7 +281,7 @@ public abstract class QueryExp<Ty, En1, Sym, Fk1, Att1, En2, Fk2, Att2> for (Entry<Var, En2> v : q2.ens.get(en3).gens.map.entrySet()) { Frozen<Ty, En1, Sym, Fk1, Att1> I = q1.ens.get(v.getValue()); for (Entry<Var, En1> u : I.gens.map.entrySet()) { Var newV = new Var("v" + (i++)); //new Var("\"(" + v.getKey() + "," + u.getKey() + ")\""); Var newV = new Var("vv" + (i++)); //new Var("\"(" + v.getKey() + "," + u.getKey() + ")\""); iso.first.put(newV, new Pair<>(v.getKey(), u.getKey())); iso.second.put(new Pair<>(v.getKey(), u.getKey()), newV); fr.put(newV, u.getValue()); Loading