Author: andy
Date: Wed Sep 10 13:56:02 2014
New Revision: 1624002
URL: http://svn.apache.org/r1624002
Log:
JENA-779 : Don't combine OpExtend/OpAssign during plain algebra generation or
parsing algebra expressions.
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpAssign.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExtend.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformExtendCombine.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/Substitute.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderOp.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestAlgebraTranslate.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestOptimizer.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformPromoteTableEmpty.java
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/AlgebraGenerator.java
Wed Sep 10 13:56:02 2014
@@ -351,7 +351,7 @@ public class AlgebraGenerator
if ( elt instanceof ElementBind )
{
ElementBind bind = (ElementBind)elt ;
- return OpExtend.extend(current, bind.getVar(), bind.getExpr()) ;
+ return OpExtend.create(current, bind.getVar(), bind.getExpr()) ;
}
if ( elt instanceof ElementOptional )
@@ -582,7 +582,7 @@ public class AlgebraGenerator
// ---- Assignments from SELECT and other places (so available to
ORDER and HAVING)
if ( ! exprs.isEmpty() )
// Potential rewrites based of assign introducing aliases.
- op = OpExtend.extend(op, exprs) ;
+ op = OpExtend.create(op, exprs) ;
// ---- HAVING
if ( query.hasHaving() )
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/Transformer.java
Wed Sep 10 13:56:02 2014
@@ -226,7 +226,7 @@ public class Transformer
VarExprList varExpr2 = process(varExpr, exprTransform) ;
OpAssign opAssign2 = opAssign ;
if ( varExpr != varExpr2 )
- opAssign2 = OpAssign.assignDirect(opAssign.getSubOp(),
varExpr2) ;
+ opAssign2 = OpAssign.create(opAssign.getSubOp(), varExpr2) ;
visit1(opAssign2) ;
}
@@ -237,7 +237,7 @@ public class Transformer
VarExprList varExpr2 = process(varExpr, exprTransform) ;
OpExtend opExtend2 = opExtend ;
if ( varExpr != varExpr2 )
- opExtend2 = OpExtend.extendDirect(opExtend.getSubOp(),
varExpr2) ;
+ opExtend2 = OpExtend.create(opExtend.getSubOp(), varExpr2) ;
visit1(opExtend2) ;
}
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpAssign.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpAssign.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpAssign.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpAssign.java
Wed Sep 10 13:56:02 2014
@@ -32,52 +32,53 @@ import com.hp.hpl.jena.sparql.util.NodeI
public class OpAssign extends OpExtendAssign {
// These factory operations compress nested assignments if possible.
// Not possible if it's the reassignment of something already assigned.
- // Or we could implement something like (let*).
+ /** Create an OpAssign or add to an existing one.
+ * This coperation collapses what woudl otherwise be stacks
+ * of OpExtend.
+ */
static public Op assign(Op op, Var var, Expr expr) {
if ( !(op instanceof OpAssign) )
- return createAssign(op, var, expr) ;
+ return create(op, var, expr) ;
OpAssign opAssign = (OpAssign)op ;
if ( opAssign.assignments.contains(var) )
// Same variable :
// Layer one assignment over the top of another
- return createAssign(op, var, expr) ;
+ return create(op, var, expr) ;
opAssign.add(var, expr) ;
return opAssign ;
}
+ /** Create an v or add to an existing one.
+ * This operation collapses what would otherwise be stacks
+ * of OpAssign.
+ */
static public Op assign(Op op, VarExprList exprs) {
if ( !(op instanceof OpAssign) )
- return createAssign(op, exprs) ;
+ return create(op, exprs) ;
OpAssign opAssign = (OpAssign)op ;
for (Var var : exprs.getVars()) {
if ( opAssign.assignments.contains(var) )
- return createAssign(op, exprs) ;
+ return create(op, exprs) ;
}
opAssign.assignments.addAll(exprs) ;
return opAssign ;
}
- /** Make a OpAssign - guaranteed to return an OpAssign */
- public static OpAssign assignDirect(Op op, VarExprList exprs) {
+ /** Make a OpAssign - this does not aggregate (assign .. (assign ...)) */
+ public static OpAssign create(Op op, VarExprList exprs) {
return new OpAssign(op, exprs) ;
}
- static private Op createAssign(Op op, Var var, Expr expr) {
+ /** Make a OpAssign - this does not aggregate (assign .. (assign ...)) */
+ static private Op create(Op op, Var var, Expr expr) {
return new OpAssign(op, new VarExprList(var, expr)) ;
}
- static private Op createAssign(Op op, VarExprList exprs) {
- // Create, copying the var-expr list
- VarExprList x = new VarExprList() ;
- x.addAll(exprs) ;
- return new OpAssign(op, x) ;
- }
-
private OpAssign(Op subOp) {
super(subOp) ;
}
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExtend.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExtend.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExtend.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/op/OpExtend.java
Wed Sep 10 13:56:02 2014
@@ -36,52 +36,53 @@ import com.hp.hpl.jena.sparql.util.NodeI
public class OpExtend extends OpExtendAssign {
// There factory operations compress nested assignments if possible.
// Not possible if it's the reassignment of something already assigned.
- // Or we could implement something like (let*).
+ /** Create an OpExtend or add to an existing one.
+ * This coperation collapses what woudl otherwise be stacks
+ * of OpExtend.
+ */
static public Op extend(Op op, Var var, Expr expr) {
if ( !(op instanceof OpExtend) )
- return createExtend(op, var, expr) ;
+ return create(op, var, expr) ;
OpExtend opExtend = (OpExtend)op ;
if ( opExtend.assignments.contains(var) )
- return createExtend(op, var, expr) ;
+ return create(op, var, expr) ;
opExtend.assignments.add(var, expr) ;
return opExtend ;
}
+ /** Create an OpExtend or add to an existing one.
+ * This operation collapses what would otherwise be stacks
+ * of OpExtend.
+ */
static public Op extend(Op op, VarExprList exprs) {
if ( !(op instanceof OpExtend) )
- return createExtend(op, exprs) ;
+ return create(op, exprs) ;
OpExtend opExtend = (OpExtend)op ;
for (Var var : exprs.getVars()) {
if ( opExtend.assignments.contains(var) )
- return createExtend(op, exprs) ;
+ return create(op, exprs) ;
}
opExtend.assignments.addAll(exprs) ;
return opExtend ;
}
- /** Make a OpExtend - guaranteed to return an OpExtend */
- public static OpExtend extendDirect(Op op, VarExprList exprs) {
+ /** Make a OpExtend - this does not aggregate (extend .. (extend ...)) */
+ public static OpExtend create(Op op, VarExprList exprs) {
return new OpExtend(op, exprs) ;
}
- static private Op createExtend(Op op, Var var, Expr expr) {
+ /** Make a OpExtend - this does not aggregate (extend .. (extend ...)) */
+ public static Op create(Op op, Var var, Expr expr) {
VarExprList x = new VarExprList() ;
x.add(var, expr) ;
return new OpExtend(op, x) ;
}
- static private Op createExtend(Op op, VarExprList exprs) {
- // Create, copying the var-expr list
- VarExprList x = new VarExprList() ;
- x.addAll(exprs) ;
- return new OpExtend(op, x) ;
- }
-
private OpExtend(Op subOp) {
super(subOp) ;
}
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformExtendCombine.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformExtendCombine.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformExtendCombine.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/algebra/optimize/TransformExtendCombine.java
Wed Sep 10 13:56:02 2014
@@ -72,6 +72,7 @@ public class TransformExtendCombine exte
OpExtend x = (OpExtend)subOp ;
VarExprList outerVarExprList = opExtend.getVarExprList() ;
VarExprList innerVarExprList = x.getVarExprList() ;
+ // XXX Go back to "create"
Op r = OpExtend.extend(x.getSubOp(), innerVarExprList) ;
// This contains an "if already assigned" test.
r = OpExtend.extend(r, outerVarExprList) ;
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/Substitute.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/Substitute.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/Substitute.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/core/Substitute.java
Wed Sep 10 13:56:02 2014
@@ -254,7 +254,7 @@ public class Substitute
if ( varExprList2.isEmpty() )
return subOp ;
- return OpExtend.extend(subOp, varExprList2) ;
+ return OpExtend.create(subOp, varExprList2) ;
}
private VarExprList transformVarExprList(VarExprList varExprList)
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/graph/NodeTransformOp.java
Wed Sep 10 13:56:02 2014
@@ -186,7 +186,7 @@ class NodeTransformOp extends TransformC
VarExprList varExprList2 = NodeTransformLib.transform(transform,
varExprList) ;
if ( varExprList == varExprList2 )
return super.transform(opExtend, subOp) ;
- return OpExtend.extend(subOp, varExprList2) ;
+ return OpExtend.create(subOp, varExprList2) ;
}
@Override public Op transform(OpOrder opOrder, Op subOp)
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderOp.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderOp.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderOp.java
(original)
+++
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/sse/builders/BuilderOp.java
Wed Sep 10 13:56:02 2014
@@ -717,12 +717,10 @@ public class BuilderOp
sub = OpTable.unit() ;
else
sub = build(list, 2) ;
- return OpExtend.extend(sub, x) ;
+ return OpExtend.create(sub, x) ;
}
} ;
-
-
final protected Build buildSlice = new Build()
{
@Override
Modified:
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestAlgebraTranslate.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestAlgebraTranslate.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestAlgebraTranslate.java
(original)
+++
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestAlgebraTranslate.java
Wed Sep 10 13:56:02 2014
@@ -43,9 +43,12 @@ public class TestAlgebraTranslate extend
" (bgp (triple ?s ?p ?o2)))"
) ; }
- @Test public void translate_04() { test("?s ?p ?o2 . BIND(?v+1 AS ?v1)
BIND(?v + 2 AS ?v2)",
- "(extend ((?v1 (+ ?v 1)) (?v2 (+
?v 2)))",
- " (bgp (triple ?s ?p ?o2)))"
+ @Test public void translate_04() { test("?s ?p ?o2 . BIND(?v+1 AS ?v1)
BIND(?v + 2 AS ?v2)",
+ // If combining (extend) during
generation.
+ //"(extend ((?v1 (+ ?v 1)) (?v2 (+
?v 2)))",
+ " (extend ((?v2 (+ ?v 2)))",
+ " (extend ((?v1 (+ ?v 1)))",
+ " (bgp (triple ?s ?p ?o2))))"
) ; }
@@ -60,31 +63,14 @@ public class TestAlgebraTranslate extend
" (assign ((?v2 (+ ?v 2)))",
" (bgp (triple ?s ?p ?o2))))"
) ; }
-// 3LC erroneous
-// @Test public void translate_07() { test("{ ?s ?p ?o1 . } BIND(?v+1 AS
?v1)",
-// "(join",
-// " (bgp (triple ?s ?p ?o1))",
-// " (extend ((?v1 (+ ?v 1)))",
-// " (table unit)))"
-// ) ; }
@Test public void translate_07() { test("{ ?s ?p ?o1 . } BIND(?v+1 AS
?v1)",
"(extend ((?v1 (+ ?v 1)))",
" (bgp (triple ?s ?p ?o1)) )"
) ; }
-
-
@Test public void translate_08() { test("BIND(5 AS ?v1)", "(extend ((?v1
5)) [table unit])") ; }
- // 3LC erroneous
-// @Test public void translate_09() { test("{ ?s ?p ?o1 . } ?s ?p ?o2 .
BIND(?v+1 AS ?v1)",
-// "(join",
-// " (bgp (triple ?s ?p ?o1))",
-// " (extend ((?v1 (+ ?v 1)))",
-// " (bgp (triple ?s ?p ?o2))))"
-// ) ; }
-
@Test public void translate_09() { test("{ ?s ?p ?o1 . } ?s ?p ?o2 .
BIND(?v+1 AS ?v1)",
"(extend ((?v1 (+ ?v 1)))",
" (join",
@@ -97,16 +83,6 @@ public class TestAlgebraTranslate extend
" [bgp (triple ?s ?p ?o2)
(triple ?s ?p ?o3)])"
) ; }
-
- // 3LC erroneous
-// @Test public void translate_11() { test("{ SELECT * {?s ?p ?o2}}
BIND(?o+1 AS ?v1)",
-// "(join",
-// " [bgp (triple ?s ?p ?o2)]",
-// " [extend ((?v1 (+ ?o 1)))",
-// " (table unit)",
-// " ])"
-// ) ; }
-
@Test public void translate_11() { test("{ SELECT * {?s ?p ?o2}} BIND(?o+1
AS ?v1)",
"(extend [(?v1 (+ ?o 1))]",
" (bgp (triple ?s ?p ?o2)))"
Modified:
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestOptimizer.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestOptimizer.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestOptimizer.java
(original)
+++
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestOptimizer.java
Wed Sep 10 13:56:02 2014
@@ -230,8 +230,8 @@ public class TestOptimizer extends Abstr
@Test public void combine_extend_01()
{
- Op extend = OpExtend.extendDirect(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
- extend = OpExtend.extendDirect(extend, new VarExprList(Var.alloc("y"),
new NodeValueInteger(2)));
+ Op extend = OpExtend.create(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
+ extend = OpExtend.create(extend, new VarExprList(Var.alloc("y"), new
NodeValueInteger(2)));
String opExpectedString = StrUtils.strjoinNL(
"(extend ((?x 1) (?y 2))",
@@ -242,8 +242,8 @@ public class TestOptimizer extends Abstr
@Test public void combine_extend_02()
{
- Op extend = OpExtend.extendDirect(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
- extend = OpExtend.extendDirect(extend, new VarExprList(Var.alloc("y"),
new ExprVar("x")));
+ Op extend = OpExtend.create(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
+ extend = OpExtend.create(extend, new VarExprList(Var.alloc("y"), new
ExprVar("x")));
String opExpectedString = StrUtils.strjoinNL(
"(extend ((?x 1) (?y ?x))",
@@ -255,8 +255,8 @@ public class TestOptimizer extends Abstr
@Test public void combine_extend_03()
{
// Technically illegal SPARQL here but useful to validate that the
optimizer doesn't do the wrong thing
- Op extend = OpExtend.extendDirect(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
- extend = OpExtend.extendDirect(extend, new VarExprList(Var.alloc("x"),
new NodeValueInteger(2)));
+ Op extend = OpExtend.create(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
+ extend = OpExtend.create(extend, new VarExprList(Var.alloc("x"), new
NodeValueInteger(2)));
String opExpectedString = StrUtils.strjoinNL(
"(extend ((?x 2))",
@@ -290,8 +290,8 @@ public class TestOptimizer extends Abstr
@Test public void combine_assign_01()
{
- Op assign = OpAssign.assignDirect(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
- assign = OpAssign.assignDirect(assign, new VarExprList(Var.alloc("y"),
new NodeValueInteger(2)));
+ Op assign = OpAssign.create(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
+ assign = OpAssign.create(assign, new VarExprList(Var.alloc("y"), new
NodeValueInteger(2)));
String opExpectedString = StrUtils.strjoinNL(
"(assign ((?x 1) (?y 2))",
@@ -302,8 +302,8 @@ public class TestOptimizer extends Abstr
@Test public void combine_assign_02()
{
- Op assign = OpAssign.assignDirect(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
- assign = OpAssign.assignDirect(assign, new VarExprList(Var.alloc("y"),
new ExprVar("x")));
+ Op assign = OpAssign.create(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
+ assign = OpAssign.create(assign, new VarExprList(Var.alloc("y"), new
ExprVar("x")));
String opExpectedString = StrUtils.strjoinNL(
"(assign ((?x 1) (?y ?x))",
@@ -314,8 +314,8 @@ public class TestOptimizer extends Abstr
@Test public void combine_assign_03()
{
- Op assign = OpAssign.assignDirect(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
- assign = OpAssign.assignDirect(assign, new VarExprList(Var.alloc("x"),
new NodeValueInteger(2)));
+ Op assign = OpAssign.create(OpTable.unit(), new
VarExprList(Var.alloc("x"), new NodeValueInteger(1)));
+ assign = OpAssign.create(assign, new VarExprList(Var.alloc("x"), new
NodeValueInteger(2)));
String opExpectedString = StrUtils.strjoinNL(
"(assign ((?x 2))",
Modified:
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformPromoteTableEmpty.java
URL:
http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformPromoteTableEmpty.java?rev=1624002&r1=1624001&r2=1624002&view=diff
==============================================================================
---
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformPromoteTableEmpty.java
(original)
+++
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/optimize/TestTransformPromoteTableEmpty.java
Wed Sep 10 13:56:02 2014
@@ -56,8 +56,8 @@ public class TestTransformPromoteTableEm
public void promote_table_empty_assignment_03() {
// Force algebra to have separate extends by using extendDirect()
Op input = OpTable.empty();
- input = OpExtend.extendDirect(input, new VarExprList(Var.alloc("x"),
new NodeValueInteger(1)));
- input = OpExtend.extendDirect(input, new VarExprList(Var.alloc("y"),
new NodeValueInteger(2)));
+ input = OpExtend.create(input, new VarExprList(Var.alloc("x"), new
NodeValueInteger(1)));
+ input = OpExtend.create(input, new VarExprList(Var.alloc("y"), new
NodeValueInteger(2)));
test(input, t_promote, "(table empty)");
}