Package org.jooq

Examples of org.jooq.Record


        super(delegate);
    }

    @Test
    public void testLiterals() throws Exception {
        Record record = create().select(zero(), one(), two(), pi(), e(), rad(deg(pi()))).fetchOne();

        assertEquals(0, record.getValue(0));
        assertEquals(1, record.getValue(1));
        assertEquals(2, record.getValue(2));
        assertEquals("3.141", record.getValueAsString(3).substring(0, 5));
        assertEquals("2.718", record.getValueAsString(4).substring(0, 5));
        assertEquals("3.141", record.getValueAsString(5).substring(0, 5));
    }
View Full Code Here


        // Get the book 1984
        B book1984 = create().fetchOne(TBook(), TBook_TITLE().equal("1984"));

        // Navigate to the book's author
        Record authorOrwell = (Record) invoke(book1984, "fetchTAuthorByAuthorId");
        assertEquals("Orwell", authorOrwell.getValue(TAuthor_LAST_NAME()));

        // Navigate back to the author's books
        List<?> books1 = (List<?>) invoke(authorOrwell, "fetchTBookListByAuthorId");
        assertEquals(2, books1.size());
View Full Code Here

        assertTrue(create(settings).render(q).contains(TAuthor().getSchema().getName() + "2"));
        assertTrue(q.getSQL().contains(TAuthor().getSchema().getName() + "2"));
        assertEquals(create(settings).render(q), q.getSQL());

        // Assure that results are correct
        Record record = q.fetchOne();
        assertEquals(1, (int) record.getValue(f1));
        assertEquals(42, (int) record.getValue(f2));

        // Map both schema AND tables
        // --------------------------
        settings = new Settings()
            .withRenderMapping(new RenderMapping()
View Full Code Here

        // https://issues.apache.org/jira/browse/DERBY-5005
        q.addOrderBy(field(VLibrary_AUTHOR().getName()));

        q.execute();
        Record r1 = q.getResult().get(1); // George Orwell
        Record r2 = q.getResult().get(2); // Paulo Coelho

        assertEquals(Integer.valueOf(3), r1.getValue(position));
        assertEquals(Integer.valueOf(5), r2.getValue(position));

        // Implicit check on the rownum function in oracle dialect
        L library = create().fetchAny(VLibrary());
        assertTrue(library != null);
    }
View Full Code Here

            // These two tests will validate #154
            default: {
                Field<String> x = replace(constant, "b", "x");
                Field<String> y = replace(constant, "b", "y");
                Field<String> z = replace(constant, "b");
                Record record = create().select(x, y, z).fetchOne();

                assertEquals("axc", record.getValue(x));
                assertEquals("ayc", record.getValue(y));
                assertEquals("ac", record.getValue(z));
            }
        }

        Field<Integer> length = length(constant);
        Field<Integer> charLength = charLength(constant);
        Field<Integer> bitLength = bitLength(constant);
        Field<Integer> octetLength = octetLength(constant);
        q.addSelect(length, charLength, bitLength, octetLength);
        q.execute();

        Record record = q.getResult().get(0);

        assertEquals(Integer.valueOf(3), record.getValue(length));
        assertEquals(Integer.valueOf(3), record.getValue(charLength));

        switch (getDialect()) {
            case HSQLDB:
            case H2:
                // HSQLDB and H2 uses Java-style characters (16 bit)
                assertEquals(Integer.valueOf(48), record.getValue(bitLength));
                assertEquals(Integer.valueOf(6), record.getValue(octetLength));
                break;

            default:
                assertEquals(Integer.valueOf(24), record.getValue(bitLength));
                assertEquals(Integer.valueOf(3), record.getValue(octetLength));
                break;
        }

        // RPAD, LPAD
        switch (getDialect()) {
            case DERBY:
            case SQLITE:
                log.info("SKIPPING", "RPAD and LPAD functions");
                break;

            default: {
                Record result = create().select(
                    rpad(val("aa"), 4),
                    rpad(val("aa"), 4, "-"),
                    lpad(val("aa"), 4),
                    lpad(val("aa"), 4, "-")).fetchOne();

                assertEquals("aa  ", result.getValue(0));
                assertEquals("aa--", result.getValue(1));
                assertEquals("  aa", result.getValue(2));
                assertEquals("--aa", result.getValue(3));

                break;
            }
        }

        // SUBSTRING
        Record result = create().select(
            substring(val("abcde"), 1),
            substring(val("abcde"), 1, 2),
            substring(val("abcde"), 3),
            substring(val("abcde"), 3, 2)).fetchOne();

        assertEquals("abcde", result.getValue(0));
        assertEquals("ab", result.getValue(1));
        assertEquals("cde", result.getValue(2));
        assertEquals("cd", result.getValue(3));

        result =
        create().select(
                    substring(TAuthor_FIRST_NAME(), 2),
                    substring(TAuthor_FIRST_NAME(), 2, 2))
                .from(TAuthor())
                .where(TAuthor_ID().equal(1))
                .fetchOne();

        assertEquals("eorge", result.getValue(substring(TAuthor_FIRST_NAME(), 2)));
        assertEquals("eo", result.getValue(substring(TAuthor_FIRST_NAME(), 2, 2)));

        // REPEAT
        switch (getDialect()) {
            case DERBY:
            case SQLITE:
                log.info("SKIPPING", "REPEAT function");
                break;

            default: {
                result = create().select(
                    repeat("a", 1),
                    repeat("ab", 2),
                    repeat("abc", 3)).fetchOne();
                assertEquals("a", result.getValue(0));
                assertEquals("abab", result.getValue(1));
                assertEquals("abcabcabc", result.getValue(2));
                break;
            }
        }

        // ASCII
View Full Code Here

        Field<Double> f2d = round(-2.0, 2);
        Field<Double> f3d = floor(-2.0);
        Field<Double> f4d = ceil(-2.0);

        // Some arbitrary checks on having multiple select clauses
        Record record =
        create().select(f1a)
                .select(f2a, f3a)
                .select(f4a)
                .select(f5a, f6a, f7a)
                .select(f1b, f2b, f3b, f4b, f6b, f6b, f7b)
                .select(f1c, f2c, f3c, f4c)
                .select(f1d, f2d, f3d, f4d).fetchOne();

        assertNotNull(record);
        assertEquals("1.0", record.getValueAsString(f1a));
        assertEquals("1.11", record.getValueAsString(f2a));
        assertEquals("1.0", record.getValueAsString(f3a));
        assertEquals("2.0", record.getValueAsString(f4a));
        assertEquals("1.0", record.getValueAsString(f5a));
        assertEquals("1.11", record.getValueAsString(f6a));
        assertEquals("10.0", record.getValueAsString(f7a));

        assertEquals("-1.0", record.getValueAsString(f1b));
        assertEquals("-1.11", record.getValueAsString(f2b));
        assertEquals("-2.0", record.getValueAsString(f3b));
        assertEquals("-1.0", record.getValueAsString(f4b));
        assertEquals("1.0", record.getValueAsString(f5b));
        assertEquals("1.11", record.getValueAsString(f6b));
        assertEquals("10.0", record.getValueAsString(f7b));

        assertEquals("2.0", record.getValueAsString(f1c));
        assertEquals("2.0", record.getValueAsString(f2c));
        assertEquals("2.0", record.getValueAsString(f3c));
        assertEquals("2.0", record.getValueAsString(f4c));

        assertEquals("-2.0", record.getValueAsString(f1d));
        assertEquals("-2.0", record.getValueAsString(f2d));
        assertEquals("-2.0", record.getValueAsString(f3d));
        assertEquals("-2.0", record.getValueAsString(f4d));

        // Greatest and least
        record = create().select(
            greatest(1, 2, 3, 4),
            least(1, 2, 3),
            greatest("1", "2", "3", "4"),
            least("1", "2", "3")).fetchOne();

        assertEquals(Integer.valueOf(4), record.getValue(0));
        assertEquals(Integer.valueOf(1), record.getValue(1));
        assertEquals("4", record.getValue(2));
        assertEquals("1", record.getValue(3));

        // Greatest and least with tables. If they're simulated using subqueries
        // there is a risk of breaking this functionality due to limited support
        // for subqueries and derived tables...
        Result<Record> result = create()
            .select(TBook_ID(),
                    greatest(TBook_ID(),
                        TBook_AUTHOR_ID(),
                        TBook_LANGUAGE_ID()),
                    least(TBook_ID(),
                        TBook_AUTHOR_ID(),
                        TBook_LANGUAGE_ID()))
            .from(TBook())
            .orderBy(TBook_ID())
            .fetch();

        assertEquals(4, result.size());
        assertEquals(BOOK_IDS, result.getValues(TBook_ID()));
        assertEquals(asList(1, 2, 4, 4), result.getValues(1));
        assertEquals(asList(1, 1, 2, 2), result.getValues(2));

        // Mathematical functions
        switch (getDialect()) {
            case SQLITE:
                log.info("SKIPPING", "Tests for mathematical functions");
                break;

            default: {
                // Exponentials, logarithms and roots
                // ----------------------------------
                Field<BigDecimal> m1 = sqrt(2);
                Field<BigDecimal> m2 = round(sqrt(4));
                Field<BigDecimal> m3 = exp(2);
                Field<BigDecimal> m4 = round(exp(0));
                Field<BigDecimal> m5 = exp(-2);
                Field<BigDecimal> m6 = ln(2);
                Field<BigDecimal> m7 = round(log(16, 4));
                Field<BigDecimal> m8 = round(power(2, 4));
                Field<BigDecimal> m9 = round(power(sqrt(power(sqrt(2), 2)), 2));

                record = create().select(m1, m2, m3, m4, m5, m6, m7, m8, m9).fetchOne();

                // Rounding issues are circumvented by using substring()
                assertNotNull(record);
                assertEquals("1.414", record.getValueAsString(m1).substring(0, 5));
                assertEquals("2", record.getValueAsString(m2).substring(0, 1));
                assertEquals("7.389", record.getValueAsString(m3).substring(0, 5));
                assertEquals("1", record.getValueAsString(m4).substring(0, 1));
                assertEquals("0.135", record.getValueAsString(m5).substring(0, 5));
                assertEquals("0.693", record.getValueAsString(m6).substring(0, 5));
                assertEquals("2", record.getValueAsString(m7).substring(0, 1));
                assertEquals("16", record.getValueAsString(m8).substring(0, 2));
                assertEquals("2", record.getValueAsString(m9).substring(0, 1));

                // Trigonometry
                // ------------
                Field<BigDecimal> t1 = sin(Math.PI / 6 + 0.00001);
                Field<BigDecimal> t2 = cos(Math.PI / 6);
                Field<BigDecimal> t3 = tan(Math.PI / 6);
                Field<BigDecimal> t4 = cot(Math.PI / 6);
                Field<BigDecimal> t6 = rad(deg(1.1));
                Field<BigDecimal> t7 = asin(Math.PI / 6);
                Field<BigDecimal> t8 = acos(Math.PI / 6);
                Field<BigDecimal> t9 = atan(Math.PI / 6);
                Field<BigDecimal> ta = round(deg(atan2(1, 1)));

                // Hyperbolic functions
                // --------------------
                Field<BigDecimal> tb = sinh(1.0)
                    .div(cosh(1.0))
                    .mul(tanh(1.0))
                    .mul(power(coth(1.0), 2).add(0.1));

                record = create().select(t1, t2, t3, t4, t6, t7, t8, t9, ta, tb).fetchOne();

                // Rounding issues are circumvented by using substring()
                assertNotNull(record);
                assertEquals("0.5", record.getValueAsString(t1).substring(0, 3));
                assertEquals("0.866", record.getValueAsString(t2).substring(0, 5));
                assertEquals("0.577", record.getValueAsString(t3).substring(0, 5));
                assertEquals("1.732", record.getValueAsString(t4).substring(0, 5));
                assertEquals("1", record.getValueAsString(t6).substring(0, 1));
                assertEquals("0.551", record.getValueAsString(t7).substring(0, 5));
                assertEquals("1.019", record.getValueAsString(t8).substring(0, 5));
                assertEquals("0.482", record.getValueAsString(t9).substring(0, 5));
                assertEquals("45", record.getValueAsString(ta).substring(0, 2));
                assertEquals("1", record.getValueAsString(tb).substring(0, 1));

                break;
            }
        }

        // The sign function
        record = create().select(
            sign(2),
            sign(1),
            sign(0),
            sign(-1),
            sign(-2)).fetchOne();

        assertNotNull(record);
        assertEquals(Integer.valueOf(1), record.getValue(0));
        assertEquals(Integer.valueOf(1), record.getValue(1));
        assertEquals(Integer.valueOf(0), record.getValue(2));
        assertEquals(Integer.valueOf(-1), record.getValue(3));
        assertEquals(Integer.valueOf(-1), record.getValue(4));

        // The abs function
        record = create().select(
            abs(2),
            abs(1),
            abs(0),
            abs(-1),
            abs(-2)).fetchOne();

        assertNotNull(record);
        assertEquals(Integer.valueOf(2), record.getValue(0));
        assertEquals(Integer.valueOf(1), record.getValue(1));
        assertEquals(Integer.valueOf(0), record.getValue(2));
        assertEquals(Integer.valueOf(1), record.getValue(3));
        assertEquals(Integer.valueOf(2), record.getValue(4));
    }
View Full Code Here

        q1.addSelect(ts, date, time,
            year1, month1, day1, hour1, minute1, second1,
            year2, month2, day2, hour2, minute2, second2);
        q1.execute();

        Record record = q1.getResult().get(0);
        String timestamp = record.getValue(ts).toString().replaceFirst("\\.\\d+$", "");

        assertEquals(timestamp.split(" ")[0], record.getValue(date).toString());

        // Weird behaviour in postgres
        // See also interesting thread:
        // http://archives.postgresql.org/pgsql-jdbc/2010-09/msg00037.php
        if (getDialect() != SQLDialect.POSTGRES) {
            assertEquals(timestamp.split(" ")[1], record.getValue(time).toString());
        }

        assertEquals(Integer.valueOf(timestamp.split(" ")[0].split("-")[0]), record.getValue(year1));
        assertEquals(Integer.valueOf(timestamp.split(" ")[0].split("-")[1]), record.getValue(month1));
        assertEquals(Integer.valueOf(timestamp.split(" ")[0].split("-")[2]), record.getValue(day1));
        assertEquals(Integer.valueOf(timestamp.split(" ")[1].split(":")[0]), record.getValue(hour1));
        assertEquals(Integer.valueOf(timestamp.split(" ")[1].split(":")[1]), record.getValue(minute1));
        assertEquals(Integer.valueOf(timestamp.split(" ")[1].split(":")[2].split("\\.")[0]), record.getValue(second1));

        assertEquals(record.getValue(year1), record.getValue(year2));
        assertEquals(record.getValue(month1), record.getValue(month2));
        assertEquals(record.getValue(day1), record.getValue(day2));
        assertEquals(record.getValue(hour1), record.getValue(hour2));
        assertEquals(record.getValue(minute1), record.getValue(minute2));
        assertEquals(record.getValue(second1), record.getValue(second2));

        // Timestamp arithmetic
        // --------------------
        Field<Timestamp> tomorrow = now.add(1);
        Field<Timestamp> yesterday = now.sub(1);
        record = create().select(tomorrow, ts, yesterday).fetchOne();

        // Be sure this test doesn't fail when we switch from CET to CEST :-)
        Calendar cal = Calendar.getInstance();
        long tNow = cal.getTimeInMillis();
        cal.add(Calendar.DATE, 1);
        long tTomorrow = cal.getTimeInMillis();
        cal.add(Calendar.DATE, -2);
        long tYesterday = cal.getTimeInMillis();

        // Ingres truncates milliseconds. Ignore this fact
        assertEquals((tNow - tYesterday) / 1000,
            (record.getValue(ts).getTime() / 1000 - record.getValue(yesterday).getTime() / 1000));
        assertEquals((tTomorrow - tNow) / 1000,
            (record.getValue(tomorrow).getTime() / 1000 - record.getValue(ts).getTime() / 1000));
    }
View Full Code Here

        Field<Integer> day = extract(now, DatePart.DAY).as("d");

        Select<?> sub = create().select(year, month, day);
        Table<?> subTable = sub.asTable("subselect");

        Record reference = sub.fetchOne();
        Record result;

        result = create().select().from(sub).fetchOne();
        assertEquals(reference, result);

        result = create().select().from(subTable).fetchOne();
View Full Code Here

            log.info("SKIPPING", "System functions test");
            return;
        }

        Field<?> user = trim(lower(currentUser()));
        Record record = create().select(user).fetchOne();

        assertTrue(Arrays.asList("test", "db2admin", "sa", "root@localhost", "postgres", "dbo", "dba", "dba@lukas-hp")
            .contains(record.getValue(user)));
    }
View Full Code Here

        // TODO [#896] This somehow doesn't work on some dialects
        if (asList(ASE, DB2, SQLSERVER).contains(getDialect())) {
            bitCount = val(2);
        }

        Record result =
        create().select(
                    bitCount,
                    bitNot(bitNot(3)),
                    bitAnd(3, 5),
                    bitOr(3, 5),

                    bitXor(3, 5),
                    bitNot(bitNand(3, 5)),
                    bitNot(bitNor(3, 5)),
                    bitNot(bitXNor(3, 5)),

                    shl(333, 3),
                    shr(333, 3))
                .fetchOne();

        int index = 0;
        assertEquals(2, result.getValue(index++));
        assertEquals(~(~3), result.getValue(index++));
        assertEquals(3 & 5, result.getValue(index++));
        assertEquals(3 | 5, result.getValue(index++));

        assertEquals(3 ^ 5, result.getValue(index++));
        assertEquals(~(~(3 & 5)), result.getValue(index++));
        assertEquals(~(~(3 | 5)), result.getValue(index++));
        assertEquals(~(~(3 ^ 5)), result.getValue(index++));

        assertEquals(333 << 3, result.getValue(index++));
        assertEquals(333 >> 3, result.getValue(index++));
    }
View Full Code Here

TOP

Related Classes of org.jooq.Record

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.