use of com.questdb.common.Record in project questdb by bluestreak01.
the class AsOfPartitionedJoinRecordSourceTest method testStrings.
@Test
public void testStrings() throws Exception {
try (AsOfPartitionedJoinRecordSource source = new AsOfPartitionedJoinRecordSource(compileSource("y"), 0, new NoRowIdRecordSource().of(compileSource("x")), 0, keys, keys, 512, 512, 512, cc)) {
StringSink testSink = new StringSink();
int idx = source.getMetadata().getColumnIndex("trader");
RecordCursor cursor = source.prepareCursor(FACTORY_CONTAINER.getFactory());
try {
for (Record r : cursor) {
testSink.clear();
r.getStr(idx, testSink);
if (r.getFlyweightStr(idx) == null) {
Assert.assertTrue(testSink.length() == 0);
} else {
TestUtils.assertEquals(r.getFlyweightStr(idx), testSink);
}
TestUtils.assertEquals(r.getFlyweightStr(idx), r.getFlyweightStr(idx));
}
} finally {
cursor.releaseCursor();
}
}
}
use of com.questdb.common.Record in project questdb by bluestreak01.
the class RecordListTest method writeAndReadRecords.
private <T> void writeAndReadRecords(JournalWriter<T> journal, int count, int pageSize, RecordGenerator<T> generator) throws IOException, JournalException, ParserException {
try {
for (int i = 0; i < count; i++) {
journal.append(generator.generate(i));
}
journal.commit();
try (RecordList records = new RecordList(journal.getMetadata(), pageSize)) {
LongList offsets = new LongList();
try (RecordSource rs = compiler.compile(getFactory(), journal.getLocation().getName())) {
long o = -1;
RecordCursor cursor = rs.prepareCursor(getFactory());
try {
for (Record rec : cursor) {
offsets.add(o = records.append(rec, o));
}
} finally {
cursor.releaseCursor();
}
}
int i = 0;
records.toTop();
while (records.hasNext()) {
generator.assertRecord(records.next(), i++);
}
}
} finally {
journal.close();
}
}
use of com.questdb.common.Record 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.common.Record 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.common.Record 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();
}
}
}
Aggregations