@Test public void testVarJoin() throws Exception { final String expected = "timestamp\tccy\tamount\ttrader\ttimestamp\tccy\trate\tamount\ttrader\tcontra\tfl\tsh\tln\tb\n" + "2015-03-10T00:01:00.000Z\tSWHYRX\t9.986581325531\tDHM\t2015-03-10T00:00:40.000Z\tSWHYRX\t671.442138671875\t0.015470010694\t\tVTJWCP\t0.1341\t-20409\t-7995393784734742820\ttrue\n" + "2015-03-10T00:02:00.000Z\tVTJWCP\t0.000000022642\tHBEKCGJOZWRXKMTFXRYPHFPUYWNLBVVHN\t2015-03-10T00:01:40.000Z\tVTJWCP\t386.843750000000\t1.195545256138\t\tVTJWCP\t0.3845\t10793\t1669226447966988582\tfalse\n" + "2015-03-10T00:03:00.000Z\tVTJWCP\t0.000000012344\tRTLXHBHDHIMFYOJREFUTMSGUYXLXWLUKSXSCMGFCDFGVDKHCZIUISSCBVCLYMFERSXQCHTKLTNYILMDTHTXDEHNVMEVIJQRJMLJKFYHZXH\t2015-03-10T00:02:50.000Z\tVTJWCP\t-353.683593750000\t0.000000000000\t\tPEHNRX\t0.4737\t21824\t6436453824498875972\tfalse\n" + "2015-03-10T00:04:00.000Z\tPEHNRX\t0.000000006259\tGOVGNCFYDU\t2015-03-10T00:03:50.000Z\tPEHNRX\t25.839271545410\t0.360216885805\tZKYFLUHZQSNPXMKJSMKIXEYVTUPDHHGGIWHPZRHHMGZJYYFLSVIHDWWLEVMLKCJBEVLUHLIHYBTVZNCLN\tPEHNRX\t0.3296\t27881\t-3290351886406648039\tfalse\n" + "2015-03-10T00:05:00.000Z\tSWHYRX\t-1024.000000000000\tZJBFLWWXEBZTZYTHPWGBNPIIFNYPCBTIOJYWUIYFQPXWVETMPCONIJMVFQFDBOMQBLBVQHLSYJUEGYZYOOMNSZVWS\t2015-03-10T00:03:40.000Z\tSWHYRX\t0.003415559302\t640.000000000000\t\tSWHYRX\t0.5955\t15059\t4092568845903588572\tfalse\n" + "2015-03-10T00:06:00.000Z\tVTJWCP\t800.000000000000\tEBNYHKWBXMYTZSUXQSWVRVUOSTZQBMERYZ\t2015-03-10T00:05:50.000Z\tVTJWCP\t12.456869840622\t55.575583457947\tDILELRUMMZSCJOUOUIGENFELWWRSLBMQHGJBFQBBKFIJZZYNPPB\tPEHNRX\t0.4353\t2237\t-8698821645604291033\tfalse\n" + "2015-03-10T00:07:00.000Z\tPEHNRX\t0.000000057413\t\t2015-03-10T00:06:30.000Z\tPEHNRX\t-519.289062500000\t0.082934856415\t\tVTJWCP\t0.0227\t-17193\t595100009874933367\tfalse\n" + "2015-03-10T00:08:00.000Z\tSWHYRX\t0.897577673197\t\t2015-03-10T00:07:20.000Z\tSWHYRX\t0.000009224671\t-642.406250000000\tIEBSQCNSFFLTRYZUZYJIHZBWWXFQDCQSC\tSWHYRX\t0.9481\t-22377\t7862014913865467812\tfalse\n" + "2015-03-10T00:09:00.000Z\tPEHNRX\t797.375000000000\tKXQHOKXHXYWTYFMYVYBVUBHMYQRVVMKMIPOVRTZDGOG\t2015-03-10T00:08:30.000Z\tPEHNRX\t0.033667386509\t64.000000000000\tDSWXYYYVSYYEQBORDTQHVCVUYGMBMKSCPWLZKDMPVRHW\tPEHNRX\t0.6449\t8754\t6581120496001202966\tfalse\n" + "2015-03-10T00:10:00.000Z\tVTJWCP\t0.000456069203\t\t2015-03-10T00:09:40.000Z\tVTJWCP\t316.796386718750\t0.000000002997\tMCIYIXGHRQQTKOJEDNKRCGKSQDCMUMKNJGSPETBBQDSRDJWIMGPLRQUJJFGQIZKMDCXYTRVYQNFPGSQIXMIIFSWXSDDJSPKSHRIH\tVTJWCP\t0.4218\t-13242\t6490952371245756954\tfalse\n"; try (AsOfPartitionedJoinRecordSource source = new AsOfPartitionedJoinRecordSource( compileSource("y") , 0 , new NoRowIdRecordSource().of(compileSource("x")) , 0 , keys , keys , 512 , 512 , 512 , cc )) { assertThat(expected, source, true); } }
@Test public void testVarNonPartitioned() throws Exception { try (AsOfJoinRecordSource source = new AsOfJoinRecordSource( compileSource("y") , 0 , new NoRowIdRecordSource().of(compileSource("x")) , 0 )) { String expected = "2015-03-10T00:01:00.000Z\tSWHYRX\t9.986581325531\tDHM\t2015-03-10T00:00:50.000Z\tPEHNRX\t0.299514681101\t768.000000000000\t\tSWHYRX\t0.0955\t-29572\t-5710210982977201267\ttrue\n" + "2015-03-10T00:02:00.000Z\tVTJWCP\t0.000000022642\tHBEKCGJOZWRXKMTFXRYPHFPUYWNLBVVHN\t2015-03-10T00:01:50.000Z\tSWHYRX\t0.000036501544\t0.000000036384\tHFVWSWSRGOO\tVTJWCP\t0.5159\t28877\t8810110521992874823\tfalse\n" + "2015-03-10T00:03:00.000Z\tVTJWCP\t0.000000012344\tRTLXHBHDHIMFYOJREFUTMSGUYXLXWLUKSXSCMGFCDFGVDKHCZIUISSCBVCLYMFERSXQCHTKLTNYILMDTHTXDEHNVMEVIJQRJMLJKFYHZXH\t2015-03-10T00:02:50.000Z\tVTJWCP\t-353.683593750000\t0.000000000000\t\tPEHNRX\t0.4737\t21824\t6436453824498875972\tfalse\n" + "2015-03-10T00:04:00.000Z\tPEHNRX\t0.000000006259\tGOVGNCFYDU\t2015-03-10T00:03:50.000Z\tPEHNRX\t25.839271545410\t0.360216885805\tZKYFLUHZQSNPXMKJSMKIXEYVTUPDHHGGIWHPZRHHMGZJYYFLSVIHDWWLEVMLKCJBEVLUHLIHYBTVZNCLN\tPEHNRX\t0.3296\t27881\t-3290351886406648039\tfalse\n" + "2015-03-10T00:05:00.000Z\tSWHYRX\t-1024.000000000000\tZJBFLWWXEBZTZYTHPWGBNPIIFNYPCBTIOJYWUIYFQPXWVETMPCONIJMVFQFDBOMQBLBVQHLSYJUEGYZYOOMNSZVWS\t2015-03-10T00:04:50.000Z\tPEHNRX\t70.810325622559\t0.000005221712\tXCDKDWOMDXCBJFRPXZSFXUNYQXTGNJJILLEYMIWTCWLFORGFIEVMKPYVGPYKKBMQMUDDCIHCNPUGJOPJEUKWMDNZZBBUKOJSOLDYRODIPUNRPSMIFDYPDK\tSWHYRX\t0.3863\t11305\t6904166490726350488\tfalse\n" + "2015-03-10T00:06:00.000Z\tVTJWCP\t800.000000000000\tEBNYHKWBXMYTZSUXQSWVRVUOSTZQBMERYZ\t2015-03-10T00:05:50.000Z\tVTJWCP\t12.456869840622\t55.575583457947\tDILELRUMMZSCJOUOUIGENFELWWRSLBMQHGJBFQBBKFIJZZYNPPB\tPEHNRX\t0.4353\t2237\t-8698821645604291033\tfalse\n" + "2015-03-10T00:07:00.000Z\tPEHNRX\t0.000000057413\t\t2015-03-10T00:06:50.000Z\tVTJWCP\t-384.000000000000\t19.552153110504\tRHGKRKKUSIMYDXUUSKCXNMUREIJUHCLQCMZCCYVBDMQEHDHQHKSNGIZRPFM\tVTJWCP\t0.6822\t11402\t-3269323743905958237\ttrue\n" + "2015-03-10T00:08:00.000Z\tSWHYRX\t0.897577673197\t\t2015-03-10T00:07:50.000Z\tPEHNRX\t272.870239257813\t-128.000000000000\t\tPEHNRX\t0.6254\t-8459\t-5016390518489182614\tfalse\n" + "2015-03-10T00:09:00.000Z\tPEHNRX\t797.375000000000\tKXQHOKXHXYWTYFMYVYBVUBHMYQRVVMKMIPOVRTZDGOG\t2015-03-10T00:08:50.000Z\tVTJWCP\t0.004611001699\t0.000000023394\tUMKUBKXPMSXQSTVSTYSWHLSWPFHXDBXPNKGQELQDWQGMZBPHETSLOIMSUFXYIWE\tVTJWCP\t0.7444\t-20513\t8649805687735202371\ttrue\n" + "2015-03-10T00:10:00.000Z\tVTJWCP\t0.000456069203\t\t2015-03-10T00:09:50.000Z\tSWHYRX\t552.831069946289\t0.013248343952\t\tPEHNRX\t0.5255\t19898\t-9141139959474635253\ttrue\n"; printer.print(source, FACTORY_CONTAINER.getFactory()); TestUtils.assertEquals(expected, sink); } }
@Test public void testFixNonPartitionedJoin() throws Exception { final String expected = "2015-03-10T00:01:00.000Z\tSWHYRX\t9.986581325531\tDHM\t2015-03-10T00:00:50.000Z\tPEHNRX\t0.299514681101\t768.000000000000\tSWHYRX\t-5710210982977201267\t0.0955\t-29572\ttrue\n" + "2015-03-10T00:02:00.000Z\tVTJWCP\t0.000000022642\tHBEKCGJOZWRXKMTFXRYPHFPUYWNLBVVHN\t2015-03-10T00:01:50.000Z\tSWHYRX\t0.000036501544\t0.000000036384\tVTJWCP\t8810110521992874823\t0.5159\t28877\tfalse\n" + "2015-03-10T00:03:00.000Z\tVTJWCP\t0.000000012344\tRTLXHBHDHIMFYOJREFUTMSGUYXLXWLUKSXSCMGFCDFGVDKHCZIUISSCBVCLYMFERSXQCHTKLTNYILMDTHTXDEHNVMEVIJQRJMLJKFYHZXH\t2015-03-10T00:02:50.000Z\tVTJWCP\t-353.683593750000\t0.000000000000\tPEHNRX\t6436453824498875972\t0.4737\t21824\tfalse\n" + "2015-03-10T00:04:00.000Z\tPEHNRX\t0.000000006259\tGOVGNCFYDU\t2015-03-10T00:03:50.000Z\tPEHNRX\t25.839271545410\t0.360216885805\tPEHNRX\t-3290351886406648039\t0.3296\t27881\tfalse\n" + "2015-03-10T00:05:00.000Z\tSWHYRX\t-1024.000000000000\tZJBFLWWXEBZTZYTHPWGBNPIIFNYPCBTIOJYWUIYFQPXWVETMPCONIJMVFQFDBOMQBLBVQHLSYJUEGYZYOOMNSZVWS\t2015-03-10T00:04:50.000Z\tPEHNRX\t70.810325622559\t0.000005221712\tSWHYRX\t6904166490726350488\t0.3863\t11305\tfalse\n" + "2015-03-10T00:06:00.000Z\tVTJWCP\t800.000000000000\tEBNYHKWBXMYTZSUXQSWVRVUOSTZQBMERYZ\t2015-03-10T00:05:50.000Z\tVTJWCP\t12.456869840622\t55.575583457947\tPEHNRX\t-8698821645604291033\t0.4353\t2237\tfalse\n" + "2015-03-10T00:07:00.000Z\tPEHNRX\t0.000000057413\t\t2015-03-10T00:06:50.000Z\tVTJWCP\t-384.000000000000\t19.552153110504\tVTJWCP\t-3269323743905958237\t0.6822\t11402\ttrue\n" + "2015-03-10T00:08:00.000Z\tSWHYRX\t0.897577673197\t\t2015-03-10T00:07:50.000Z\tPEHNRX\t272.870239257813\t-128.000000000000\tPEHNRX\t-5016390518489182614\t0.6254\t-8459\tfalse\n" + "2015-03-10T00:09:00.000Z\tPEHNRX\t797.375000000000\tKXQHOKXHXYWTYFMYVYBVUBHMYQRVVMKMIPOVRTZDGOG\t2015-03-10T00:08:50.000Z\tVTJWCP\t0.004611001699\t0.000000023394\tVTJWCP\t8649805687735202371\t0.7444\t-20513\ttrue\n" + "2015-03-10T00:10:00.000Z\tVTJWCP\t0.000456069203\t\t2015-03-10T00:09:50.000Z\tSWHYRX\t552.831069946289\t0.013248343952\tPEHNRX\t-9141139959474635253\t0.5255\t19898\ttrue\n"; long memUsed = Unsafe.getMemUsed(); try (AsOfJoinRecordSource source = new AsOfJoinRecordSource( compileSource("y") , 0 , new NoRowIdRecordSource().of(compileSource("select timestamp, ccy, rate, amount, contra, ln, fl, sh, b from x")) , 0 )) { assertThat(expected, source); } Assert.assertEquals(memUsed, Unsafe.getMemUsed()); }
@Test public void testFixJoin() throws Exception { final String expected = "2015-03-10T00:01:00.000Z\tSWHYRX\t9.986581325531\tDHM\t2015-03-10T00:00:40.000Z\tSWHYRX\t671.442138671875\t0.015470010694\tVTJWCP\t-7995393784734742820\t0.1341\t-20409\ttrue\n" + "2015-03-10T00:02:00.000Z\tVTJWCP\t0.000000022642\tHBEKCGJOZWRXKMTFXRYPHFPUYWNLBVVHN\t2015-03-10T00:01:40.000Z\tVTJWCP\t386.843750000000\t1.195545256138\tVTJWCP\t1669226447966988582\t0.3845\t10793\tfalse\n" + "2015-03-10T00:03:00.000Z\tVTJWCP\t0.000000012344\tRTLXHBHDHIMFYOJREFUTMSGUYXLXWLUKSXSCMGFCDFGVDKHCZIUISSCBVCLYMFERSXQCHTKLTNYILMDTHTXDEHNVMEVIJQRJMLJKFYHZXH\t2015-03-10T00:02:50.000Z\tVTJWCP\t-353.683593750000\t0.000000000000\tPEHNRX\t6436453824498875972\t0.4737\t21824\tfalse\n" + "2015-03-10T00:04:00.000Z\tPEHNRX\t0.000000006259\tGOVGNCFYDU\t2015-03-10T00:03:50.000Z\tPEHNRX\t25.839271545410\t0.360216885805\tPEHNRX\t-3290351886406648039\t0.3296\t27881\tfalse\n" + "2015-03-10T00:05:00.000Z\tSWHYRX\t-1024.000000000000\tZJBFLWWXEBZTZYTHPWGBNPIIFNYPCBTIOJYWUIYFQPXWVETMPCONIJMVFQFDBOMQBLBVQHLSYJUEGYZYOOMNSZVWS\t2015-03-10T00:03:40.000Z\tSWHYRX\t0.003415559302\t640.000000000000\tSWHYRX\t4092568845903588572\t0.5955\t15059\tfalse\n" + "2015-03-10T00:06:00.000Z\tVTJWCP\t800.000000000000\tEBNYHKWBXMYTZSUXQSWVRVUOSTZQBMERYZ\t2015-03-10T00:05:50.000Z\tVTJWCP\t12.456869840622\t55.575583457947\tPEHNRX\t-8698821645604291033\t0.4353\t2237\tfalse\n" + "2015-03-10T00:07:00.000Z\tPEHNRX\t0.000000057413\t\t2015-03-10T00:06:30.000Z\tPEHNRX\t-519.289062500000\t0.082934856415\tVTJWCP\t595100009874933367\t0.0227\t-17193\tfalse\n" + "2015-03-10T00:08:00.000Z\tSWHYRX\t0.897577673197\t\t2015-03-10T00:07:20.000Z\tSWHYRX\t0.000009224671\t-642.406250000000\tSWHYRX\t7862014913865467812\t0.9481\t-22377\tfalse\n" + "2015-03-10T00:09:00.000Z\tPEHNRX\t797.375000000000\tKXQHOKXHXYWTYFMYVYBVUBHMYQRVVMKMIPOVRTZDGOG\t2015-03-10T00:08:30.000Z\tPEHNRX\t0.033667386509\t64.000000000000\tPEHNRX\t6581120496001202966\t0.6449\t8754\tfalse\n" + "2015-03-10T00:10:00.000Z\tVTJWCP\t0.000456069203\t\t2015-03-10T00:09:40.000Z\tVTJWCP\t316.796386718750\t0.000000002997\tVTJWCP\t6490952371245756954\t0.4218\t-13242\tfalse\n"; long memUsed = Unsafe.getMemUsed(); try (AsOfPartitionedJoinRecordSource source = new AsOfPartitionedJoinRecordSource( compileSource("y") , 0 , new NoRowIdRecordSource().of(compileSource("select timestamp, ccy, rate, amount, contra, ln, fl, sh, b from x")) , 0 , keys , keys , 128 , 128 , 128 , cc )) { assertThat(expected, source); } Assert.assertEquals(memUsed, Unsafe.getMemUsed()); }
compileSource("y") , 0 , new NoRowIdRecordSource().of(compileSource("x")) , 0 , keys
final RecordSource s = new NoRowIdRecordSource().of(compileSource("orders"));
return new NoRowIdRecordSource().of(recordSource);