Search in sources :

Example 26 with RecordSource

use of com.questdb.ql.RecordSource in project questdb by bluestreak01.

the class GenericBinaryTest method readOutputStream.

private List<byte[]> readOutputStream() throws ParserException {
    List<byte[]> result = new ArrayList<>();
    try (RecordSource rs = compile("bintest")) {
        RecordCursor cursor = rs.prepareCursor(getFactory());
        try {
            for (Record e : cursor) {
                ByteArrayOutputStream o = new ByteArrayOutputStream();
                e.getBin(0, o);
                result.add(o.toByteArray());
            }
        } finally {
            cursor.releaseCursor();
        }
        return result;
    }
}
Also used : RecordSource(com.questdb.ql.RecordSource) RecordCursor(com.questdb.common.RecordCursor) ArrayList(java.util.ArrayList) Record(com.questdb.common.Record)

Example 27 with RecordSource

use of com.questdb.ql.RecordSource in project questdb by bluestreak01.

the class GenericBinaryTest method testOutputInput.

@Test
public void testOutputInput() throws Exception {
    try (JournalWriter writer = getGenericWriter()) {
        List<byte[]> expected = getBytes();
        writeOutputStream(writer, expected);
        List<byte[]> actual = new ArrayList<>();
        try (RecordSource rs = compile("bintest")) {
            RecordCursor cursor = rs.prepareCursor(getFactory());
            try {
                for (Record e : cursor) {
                    ByteArrayOutputStream out = new ByteArrayOutputStream();
                    InputStream in = e.getBin(0);
                    int b;
                    while ((b = in.read()) != -1) {
                        out.write(b);
                    }
                    actual.add(out.toByteArray());
                }
                assertEquals(expected, actual);
            } finally {
                cursor.releaseCursor();
            }
        }
    }
}
Also used : JournalWriter(com.questdb.store.JournalWriter) RecordSource(com.questdb.ql.RecordSource) RecordCursor(com.questdb.common.RecordCursor) ArrayList(java.util.ArrayList) Record(com.questdb.common.Record) AbstractTest(com.questdb.test.tools.AbstractTest) Test(org.junit.Test)

Example 28 with RecordSource

use of com.questdb.ql.RecordSource in project questdb by bluestreak01.

the class GenericInteropTest method testGenericAll.

@Test
public void testGenericAll() throws Exception {
    try (JournalWriter writer = makeGenericWriter()) {
        JournalEntryWriter w = writer.entryWriter();
        w.putSym(0, "EURUSD");
        w.putDate(1, 19999);
        w.putDouble(2, 1.24);
        w.putDouble(3, 1.25);
        w.putInt(4, 10000);
        w.putInt(5, 12000);
        w.putInt(6, 1);
        w.putStr(7, "OK");
        w.putStr(8, "system");
        w.putStr(9, "EURUSD:GLOBAL");
        w.putBool(10, true);
        w.putNull(11);
        w.putLong(12, 13141516);
        w.putShort(13, (short) 25000);
        w.append();
        w = writer.entryWriter();
        w.putSym(0, "EURUSD");
        w.putDate(1, 20000);
        w.putDouble(2, 1.23);
        w.putDouble(3, 1.26);
        w.putInt(4, 11000);
        w.putInt(5, 13000);
        w.putInt(6, 2);
        w.putStr(7, "STALE");
        w.putStr(8, "system");
        w.putStr(9, "EURUSD:GLOBAL");
        w.putBool(10, false);
        w.putNull(11);
        w.putLong(12, 23242526);
        w.putShort(13, (short) 30000);
        w.append();
        writer.commit();
    }
    try (RecordSource rs = compile("test")) {
        RecordCursor cursor = rs.prepareCursor(getFactory());
        try {
            Record e;
            Assert.assertTrue(cursor.hasNext());
            Assert.assertNotNull(e = cursor.next());
            Assert.assertEquals("EURUSD", e.getSym(0));
            Assert.assertEquals(19999, e.getDate(1));
            Assert.assertEquals(1.24, e.getDouble(2), 0.000001);
            Assert.assertEquals(1.25, e.getDouble(3), 0.000001);
            Assert.assertEquals(10000, e.getInt(4));
            Assert.assertEquals(12000, e.getInt(5));
            Assert.assertEquals(1, e.getByte(6));
            TestUtils.assertEquals("OK", e.getFlyweightStr(7));
            TestUtils.assertEquals("system", e.getFlyweightStr(8));
            TestUtils.assertEquals("EURUSD:GLOBAL", e.getFlyweightStr(9));
            Assert.assertTrue(e.getBool(10));
            Assert.assertNull(e.getFlyweightStr(11));
            Assert.assertEquals(13141516, e.getLong(12));
            Assert.assertEquals(25000, e.getShort(13));
            Assert.assertTrue(cursor.hasNext());
            Assert.assertNotNull(e = cursor.next());
            Assert.assertEquals("EURUSD", e.getSym(0));
            Assert.assertEquals(20000, e.getDate(1));
            Assert.assertEquals(1.23, e.getDouble(2), 0.000001);
            Assert.assertEquals(1.26, e.getDouble(3), 0.000001);
            Assert.assertEquals(11000, e.getInt(4));
            Assert.assertEquals(13000, e.getInt(5));
            Assert.assertEquals(2, e.getByte(6));
            TestUtils.assertEquals("STALE", e.getFlyweightStr(7));
            TestUtils.assertEquals("system", e.getFlyweightStr(8));
            TestUtils.assertEquals("EURUSD:GLOBAL", e.getFlyweightStr(9));
            Assert.assertFalse(e.getBool(10));
            Assert.assertNull(e.getFlyweightStr(11));
            Assert.assertEquals(23242526, e.getLong(12));
            Assert.assertEquals(30000, e.getShort(13));
            Assert.assertFalse(cursor.hasNext());
        } finally {
            cursor.releaseCursor();
        }
    }
}
Also used : JournalWriter(com.questdb.store.JournalWriter) RecordSource(com.questdb.ql.RecordSource) RecordCursor(com.questdb.common.RecordCursor) Record(com.questdb.common.Record) JournalEntryWriter(com.questdb.store.JournalEntryWriter) AbstractTest(com.questdb.test.tools.AbstractTest) Test(org.junit.Test)

Example 29 with RecordSource

use of com.questdb.ql.RecordSource in project questdb by bluestreak01.

the class ComparatorCompilerTest method testAllGetters.

@Test
public void testAllGetters() throws Exception {
    try (JournalWriter w = FACTORY_CONTAINER.getFactory().writer(new JournalStructure("xyz").$bool("bool").$byte("byte").$double("double").$float("float").$int("int").$long("long").$date("date").$short("short").$str("str").$sym("sym").$())) {
        JournalEntryWriter ew = w.entryWriter();
        ew.putBool(0, true);
        ew.put(1, (byte) 13);
        ew.putDouble(2, 20.12);
        ew.putFloat(3, 10.15f);
        ew.putInt(4, 4);
        ew.putLong(5, 9988908080988890L);
        ew.putDate(6, 88979879L);
        ew.putShort(7, (short) 902);
        ew.putStr(8, "complexity made simple");
        ew.putSym(9, "questdb");
        ew.append();
        ew = w.entryWriter();
        ew.put(1, (byte) 13);
        ew.putDouble(2, 20.12);
        ew.putFloat(3, 10.15f);
        ew.putInt(4, 4);
        ew.putLong(5, 9988908080988890L);
        ew.putDate(6, 88979879L);
        ew.putShort(7, (short) 902);
        ew.putStr(8, "complexity made simple");
        ew.putSym(9, "appsicle");
        ew.append();
        w.commit();
        IntList indices = new IntList();
        for (int i = 0, n = w.getMetadata().getColumnCount(); i < n; i++) {
            indices.add(i + 1);
        }
        RecordSource rs = compileSource("xyz");
        RecordComparator rc = cc.compile(rs.getMetadata(), indices);
        RBTreeSortedRecordSource map = new RBTreeSortedRecordSource(rs, rc, 1024 * 1024, 4 * 1024 * 1024);
        sink.clear();
        printer.print(map, FACTORY_CONTAINER.getFactory());
    }
    TestUtils.assertEquals("false\t13\t20.120000000000\t10.1500\t4\t9988908080988890\t1970-01-02T00:42:59.879Z\t902\tcomplexity made simple\tappsicle\n" + "true\t13\t20.120000000000\t10.1500\t4\t9988908080988890\t1970-01-02T00:42:59.879Z\t902\tcomplexity made simple\tquestdb\n", sink);
}
Also used : JournalWriter(com.questdb.store.JournalWriter) RecordSource(com.questdb.ql.RecordSource) JournalStructure(com.questdb.store.factory.configuration.JournalStructure) JournalEntryWriter(com.questdb.store.JournalEntryWriter) IntList(com.questdb.std.IntList) Test(org.junit.Test) AbstractOptimiserTest(com.questdb.parser.sql.AbstractOptimiserTest)

Example 30 with RecordSource

use of com.questdb.ql.RecordSource in project questdb by bluestreak01.

the class AbstractTest method assertSymbol.

public void assertSymbol(String query) throws ParserException {
    try (RecordSource src = compiler.compile(getFactory(), query)) {
        RecordCursor cursor = src.prepareCursor(getFactory());
        try {
            SymbolTable tab = cursor.getStorageFacade().getSymbolTable(0);
            while (cursor.hasNext()) {
                Record r = cursor.next();
                TestUtils.assertEquals(r.getSym(0), tab.value(r.getInt(0)));
            }
        } finally {
            cursor.releaseCursor();
        }
    }
}
Also used : RecordSource(com.questdb.ql.RecordSource) RecordCursor(com.questdb.common.RecordCursor) SymbolTable(com.questdb.common.SymbolTable) Record(com.questdb.common.Record)

Aggregations

RecordSource (com.questdb.ql.RecordSource)30 Test (org.junit.Test)18 AbstractTest (com.questdb.test.tools.AbstractTest)12 RecordCursor (com.questdb.common.RecordCursor)11 Record (com.questdb.common.Record)10 QueryCompiler (com.questdb.parser.sql.QueryCompiler)7 RecordSourcePrinter (com.questdb.ql.RecordSourcePrinter)7 StringSink (com.questdb.std.str.StringSink)5 JournalWriter (com.questdb.store.JournalWriter)5 JournalEntryWriter (com.questdb.store.JournalEntryWriter)4 Factory (com.questdb.store.factory.Factory)4 BootstrapEnv (com.questdb.BootstrapEnv)3 ServerConfiguration (com.questdb.ServerConfiguration)3 Quote (com.questdb.model.Quote)3 AbstractJournalTest (com.questdb.net.ha.AbstractJournalTest)3 ImportHandler (com.questdb.net.http.handlers.ImportHandler)3 File (java.io.File)3 SymbolTable (com.questdb.common.SymbolTable)2 ClientConfig (com.questdb.net.ha.config.ClientConfig)2 ServerConfig (com.questdb.net.ha.config.ServerConfig)2