Пример #1
0
  static void testLocationOpInPredicate() {
    String query =
        "Edge(int a:0..100, (int b)). \n" + "Attr(int a,int b).\n" + "Attr(a,b) :- Edge(a,b).\n";
    Parser p = new Parser();
    TestAnalysis an;
    try {
      p.parse(query);
      an = new TestAnalysis(p);
      an.setDistributed();
      an.run();
      Assert.die("should not reach here");
    } catch (ParseException e) {
      /* expected */
    }

    query =
        "Edge(int a:0..100, (int b)). \n" + "Attr(int a,int b).\n" + "Attr(a, b) :- Edge(a, b).\n";
    p = new Parser();
    try {
      p.parse(query);
      an = new TestAnalysis(p);
      an.setDistributed();
      an.run();
      Assert.die("should not reach here");
    } catch (ParseException e) {
      /* expected */
    }
  }
Пример #2
0
  static void testDistRule() {
    String query =
        "Edge(int a:0..100,(int b)).\n"
            + "InEdge(int a:0..100,(int b)).\n"
            + "Edge(s,t) :- s=1, t=99.\n"
            + "InEdge(t,s) :- Edge(s,t).\n"
            + "?-InEdge(s,t).\n";
    Parser p = new Parser();
    p.parse(query);
    TestAnalysis an = new TestAnalysis(p);
    an.setDistributed();
    an.run();

    for (Table t : an.getRemoteTables()) {
      Assert.true_(t instanceof RemoteHeadTable);
      Column c = t.getColumn(0);
      Assert.not_true(c.hasRange(), "RemoteTables are not array-tables");
    }
  }