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;
}
}
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();
}
}
}
}
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();
}
}
}
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);
}
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();
}
}
}
Aggregations