Package ra

Examples of ra.Term


            );
    }

    @Test(groups=KNOWN_BUG, description="broken")
    public void fullTreeOfNestedSubqueriesWithAnd() throws TranslationException {
        final Term expected_sub_2 = filter(cartProd(cartProd(
                rel("q",1),
                ref("q")),
                ref("q")),"AND(q0.a>q1.a,q0.a>q2.a)");
        String sub_2 = "SELECT * FROM q q2 WHERE q0.a > q1.a AND q0.a > q2.a";

        Term expected_sub_1 = genJoin(genJoin(cartProd(
                ref("q"),
                ref("q")),expected_sub_2,"NATURALJOIN"),expected_sub_2,"NATURALJOIN");
        String sub_1 = String.format("SELECT * FROM q q1 WHERE EXISTS (%s) AND EXISTS (%s)", sub_2, sub_2);

        Term expected_0 = genJoin(genJoin(ref("q"),expected_sub_1,"NATURALJOIN"),expected_sub_1,"NATURALJOIN");
        String query = String.format("SELECT * FROM q q0 WHERE EXISTS (%s) AND EXISTS (%s)", sub_1, sub_1);

        assertThat(query).translatesLike(expected_0);
    }
View Full Code Here


        ColumnIndexesImpl attributesOrderInExpanded = new ColumnIndexesImpl();
        attributesOrderInExpanded.addAll(this.expandedColumns());
        attributesOrderInExpanded.addAll(that.expandedColumns());

        Term t1 = formula;
        Term t2 = that.formula();
        Term joined;

        if (! conditionIsEq) {
            joined = Utils.genJoin(t1, t2, pred);
            attributesOrder.addAll(this.columns());
            attributesOrder.addAll(that.columns());
View Full Code Here

            public void run() {
                /* translating the first query, then writing the first spreadsheet file take longer time, so let's
                 * warm up here */
                Schema schema = Schemas.fromDDL(DEFAULT_SCHEMA_TEXT);
                try {
                    Term translated = Queries.getRaOf(schema, DEFAULT_QUERY_TEXT);
                    Result result = translated.execute();
                    try (OutputStream os = new OutputStream() {
                        @Override
                        public void write(int b) throws IOException {
                            // nop
                        }};
View Full Code Here

        /* Now remove the forged statement's results (?) */
        queries = queries.subList(databaseSchema.size(), queries.size());
        for (int i = 0; i < databaseSchema.size(); ++i) {
            // TODO make O(1)
            Term t = formulas.remove(0);
            inputTables.add(t);
        }

        if (formulas.isEmpty()) {
            throw new TranslationException("An empty string was input as a query");
View Full Code Here

            }
            int[] leftColumns = new int[arity()];
            for (int i = 0; i < leftColumns.length; ++i) {
                leftColumns[i] = i+1;
            }
            Term leftNonInnerTuples = Terms.addTrailingNullColumns(
                    Utils.diffSet(
                        leftRef[0],
                        Terms.project(innerJoinedRef[0], leftColumns)
                    ),
                    arity(),
                    thatArity
                );
            Term rightNonInnerTuples = Terms.addLeadingNullColumns(
                Utils.diffSet(
                    rightRef[0],
                    Terms.project(innerJoinedRef[0], rightColumns)
                ),
                thatArity,
                arity()
            );
            Term nonInnerTuples = null;

            checkArgument(fullLeft || fullRight);
            if (fullLeft && fullRight) {
                    nonInnerTuples = Utils.union(
                        leftNonInnerTuples,
View Full Code Here

TOP

Related Classes of ra.Term

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.