Search in sources :

Example 6 with VoltProjectBuilder

use of org.voltdb.compiler.VoltProjectBuilder in project voltdb by VoltDB.

the class TestTypeConversionSuite method suite.

public static junit.framework.Test suite() {
    VoltServerConfig config = null;
    MultiConfigSuiteBuilder builder = new MultiConfigSuiteBuilder(TestTypeConversionSuite.class);
    boolean success = false;
    try {
        VoltProjectBuilder project = new VoltProjectBuilder();
        config = new LocalCluster("geography-value-onesite.jar", 1, 1, 0, BackendTarget.NATIVE_EE_JNI);
        setupSchema(project);
        project.addProcedures(ProcToTestTypeConversion.class);
        success = config.compile(project);
    } catch (IOException excp) {
        fail();
    }
    assertTrue(success);
    builder.addServerConfig(config);
    return builder;
}
Also used : VoltProjectBuilder(org.voltdb.compiler.VoltProjectBuilder) IOException(java.io.IOException)

Example 7 with VoltProjectBuilder

use of org.voltdb.compiler.VoltProjectBuilder in project voltdb by VoltDB.

the class TestUDFSuite method suite.

public static Test suite() {
    // the suite made here will all be using the tests from this class
    MultiConfigSuiteBuilder builder = new MultiConfigSuiteBuilder(TestUDFSuite.class);
    // build up a project builder for the workload
    VoltProjectBuilder project = new VoltProjectBuilder();
    project.setUseDDLSchema(true);
    final String literalSchema = "CREATE TABLE T (a INT, b VARCHAR(10));";
    try {
        project.addLiteralSchema(literalSchema);
    } catch (IOException e) {
        fail(e.getMessage());
    }
    /////////////////////////////////////////////////////////////
    // CONFIG #1: 2 Local Sites/Partitions running on JNI backend
    /////////////////////////////////////////////////////////////
    LocalCluster config = new LocalCluster("udf-twosites.jar", 2, 1, 0, BackendTarget.NATIVE_EE_JNI);
    //* enable for simplified config */ config = new LocalCluster("matview-onesite.jar", 1, 1, 0, BackendTarget.NATIVE_EE_JNI);
    // build the jarfile
    assertTrue(config.compile(project));
    // add this config to the set of tests to run
    builder.addServerConfig(config);
    /////////////////////////////////////////////////////////////
    // CONFIG #2: 3-node k=1 cluster
    /////////////////////////////////////////////////////////////
    config = new LocalCluster("udf-cluster.jar", 2, 3, 1, BackendTarget.NATIVE_EE_JNI);
    assertTrue(config.compile(project));
    builder.addServerConfig(config);
    return builder;
}
Also used : VoltProjectBuilder(org.voltdb.compiler.VoltProjectBuilder) IOException(java.io.IOException)

Example 8 with VoltProjectBuilder

use of org.voltdb.compiler.VoltProjectBuilder in project voltdb by VoltDB.

the class TestBlobType method testIndexBlobCompile.

public void testIndexBlobCompile() throws Exception {
    String simpleSchema = "create table blah (" + "ival bigint default 0 not null, " + "b varbinary(256) default null); " + "create index idx on blah (b);";
    VoltProjectBuilder builder = new VoltProjectBuilder();
    builder.addLiteralSchema(simpleSchema);
    builder.addPartitionInfo("blah", "ival");
    builder.addStmtProcedure("Insert", "insert into blah values (?, ?);", null);
    boolean success = builder.compile(Configuration.getPathToCatalogForTest("binarytest.jar"), 1, 1, 0);
    assertTrue(success);
}
Also used : VoltProjectBuilder(org.voltdb.compiler.VoltProjectBuilder)

Example 9 with VoltProjectBuilder

use of org.voltdb.compiler.VoltProjectBuilder in project voltdb by VoltDB.

the class TestBlobType method testTPCCCustomerLookup.

public void testTPCCCustomerLookup() throws Exception {
    // constants used int the benchmark
    final short W_ID = 3;
    final byte D_ID = 7;
    final int C_ID = 42;
    VoltProjectBuilder builder = new VoltProjectBuilder();
    builder.addSchema(TPCCProjectBuilder.ddlURL);
    for (String[] pair : TPCCProjectBuilder.partitioning) {
        builder.addPartitionInfo(pair[0], pair[1]);
    }
    builder.addStmtProcedure("InsertCustomer", "INSERT INTO CUSTOMER VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);", "CUSTOMER.C_W_ID: 2");
    builder.addStmtProcedure("Fake1", "SELECT C_ID, C_FIRST, C_MIDDLE, C_LAST, C_STREET_1, C_STREET_2, C_CITY, C_STATE, C_ZIP, C_PHONE, C_SINCE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_DATA FROM CUSTOMER WHERE C_LAST = ? AND C_D_ID = ? AND C_W_ID = ? ORDER BY C_FIRST;");
    builder.addProcedures(FakeCustomerLookup.class);
    boolean success = builder.compile(Configuration.getPathToCatalogForTest("binarytest2.jar"), 1, 1, 0);
    assert (success);
    MiscUtils.copyFile(builder.getPathToDeployment(), Configuration.getPathToCatalogForTest("binarytest2.xml"));
    ServerThread localServer = null;
    Client client = null;
    try {
        VoltDB.Configuration config = new VoltDB.Configuration();
        config.m_pathToCatalog = Configuration.getPathToCatalogForTest("binarytest2.jar");
        config.m_pathToDeployment = Configuration.getPathToCatalogForTest("binarytest2.xml");
        config.m_backend = BackendTarget.NATIVE_EE_JNI;
        localServer = new ServerThread(config);
        localServer.start();
        localServer.waitForInitialization();
        client = ClientFactory.createClient();
        client.createConnection("localhost");
        // insert data
        // long c_id, long c_d_id, long c_w_id, String c_first, String c_middle,
        // String c_last, String c_street_1, String c_street_2, String d_city,
        // String d_state, String d_zip, String c_phone, Date c_since, String
        // c_credit, double c_credit_lim, double c_discount, double c_balance,
        // double c_ytd_payment, double c_payment_cnt, double c_delivery_cnt,
        // String c_data
        final double initialBalance = 15.75;
        final double initialYTD = 15241.45;
        VoltTable customer1 = client.callProcedure("InsertCustomer", C_ID, D_ID, W_ID, "I", "Be", "lastname", "Place", "Place2", "BiggerPlace", "AL", "91083", "(193) 099 - 9082", new TimestampType(), "BC", 19298943.12, .13, initialBalance, initialYTD, 0L, 15L, "Some History").getResults()[0];
        // check for successful insertion.
        assertEquals(1L, customer1.asScalarLong());
        VoltTable customer2 = client.callProcedure("InsertCustomer", C_ID + 1, D_ID, W_ID, "We", "R", "Customer", "Random Department", "Place2", "BiggerPlace", "AL", "13908", "(913) 909 - 0928", new TimestampType(), "GC", 19298943.12, .13, initialBalance, initialYTD, 1L, 15L, "Some History").getResults()[0];
        // check for successful insertion.
        assertEquals(1L, customer2.asScalarLong());
        VoltTable customer3 = client.callProcedure("InsertCustomer", C_ID + 2, D_ID, W_ID, "Who", "Is", "Customer", "Receiving", "450 Mass F.X.", "BiggerPlace", "CI", "91083", "(541) 931 - 0928", new TimestampType(), "GC", 19899324.21, .13, initialBalance, initialYTD, 2L, 15L, "Some History").getResults()[0];
        // check for successful insertion.
        assertEquals(1L, customer3.asScalarLong());
        VoltTable customer4 = client.callProcedure("InsertCustomer", C_ID + 3, D_ID, W_ID, "ICanBe", "", "Customer", "street", "place", "BiggerPlace", "MA", "91083", "(913) 909 - 0928", new TimestampType(), "GC", 19298943.12, .13, initialBalance, initialYTD, 3L, 15L, "Some History").getResults()[0];
        // check for successful insertion.
        assertEquals(1L, customer4.asScalarLong());
        // make sure strings as bytes works
        ClientResponse cr = client.callProcedure("Fake1", "Customer".getBytes("UTF-8"), D_ID, W_ID);
        assertTrue(cr.getStatus() == ClientResponse.SUCCESS);
        assertEquals(3, cr.getResults()[0].getRowCount());
        cr = client.callProcedure("Fake1", "Customer", D_ID, W_ID);
        assertTrue(cr.getStatus() == ClientResponse.SUCCESS);
        assertEquals(3, cr.getResults()[0].getRowCount());
        cr = client.callProcedure("FakeCustomerLookup", W_ID, W_ID, D_ID, "Customer".getBytes("UTF-8"));
        assertTrue(cr.getStatus() == ClientResponse.SUCCESS);
    } finally {
        // stop execution
        if (client != null) {
            client.close();
        }
        if (localServer != null) {
            localServer.shutdown();
            localServer.join();
        }
    }
}
Also used : ClientResponse(org.voltdb.client.ClientResponse) Configuration(org.voltdb.VoltDB.Configuration) VoltTable(org.voltdb.VoltTable) VoltDB(org.voltdb.VoltDB) VoltProjectBuilder(org.voltdb.compiler.VoltProjectBuilder) ServerThread(org.voltdb.ServerThread) Configuration(org.voltdb.VoltDB.Configuration) Client(org.voltdb.client.Client)

Example 10 with VoltProjectBuilder

use of org.voltdb.compiler.VoltProjectBuilder in project voltdb by VoltDB.

the class TestBlobType method testBigFatBlobs.

public void testBigFatBlobs() throws Exception {
    String simpleSchema = "create table blah (" + "ival bigint default 0 not null, " + "b varbinary(256) default null, " + "s varchar(256) default null, " + "PRIMARY KEY(ival));";
    VoltProjectBuilder builder = new VoltProjectBuilder();
    builder.addLiteralSchema(simpleSchema);
    builder.addProcedures(BigFatBlobAndStringMD5.class);
    boolean success = builder.compile(Configuration.getPathToCatalogForTest("bigfatblobs.jar"), 1, 1, 0);
    assertTrue("Failed to compile catalog", success);
    MiscUtils.copyFile(builder.getPathToDeployment(), Configuration.getPathToCatalogForTest("bigfatblobs.xml"));
    VoltDB.Configuration config = new VoltDB.Configuration();
    config.m_pathToCatalog = Configuration.getPathToCatalogForTest("bigfatblobs.jar");
    config.m_pathToDeployment = Configuration.getPathToCatalogForTest("bigfatblobs.xml");
    config.m_backend = BackendTarget.NATIVE_EE_JNI;
    ServerThread localServer = null;
    Client client = null;
    try {
        localServer = new ServerThread(config);
        localServer.start();
        localServer.waitForInitialization();
        client = ClientFactory.createClient();
        client.createConnection("localhost");
        byte[] b = new byte[5000000];
        char[] c = new char[5000000];
        for (int i = 0; i < b.length; i++) {
            b[i] = (byte) (i % 256);
            c[i] = (char) (i % 128);
        }
        String s = new String(c);
        ClientResponse cr = client.callProcedure("BigFatBlobAndStringMD5", b, s);
        assertEquals(ClientResponse.SUCCESS, cr.getStatus());
        VoltTable t = cr.getResults()[0];
        assertEquals(1, t.getRowCount());
        assertTrue(t.advanceRow());
        // Validate MD5 sums instead of the actual data. The returned VoltTable
        // can't hold it anyway due to a 1 MB limit.
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        assertTrue(Arrays.equals(md5.digest(b), t.getVarbinary("b_md5")));
        assertTrue(Arrays.equals(md5.digest(s.getBytes()), t.getVarbinary("s_md5")));
    } finally {
        // stop execution
        if (client != null) {
            client.close();
        }
        if (localServer != null) {
            localServer.shutdown();
            localServer.join();
        }
    }
}
Also used : ClientResponse(org.voltdb.client.ClientResponse) Configuration(org.voltdb.VoltDB.Configuration) VoltTable(org.voltdb.VoltTable) VoltDB(org.voltdb.VoltDB) VoltProjectBuilder(org.voltdb.compiler.VoltProjectBuilder) Configuration(org.voltdb.VoltDB.Configuration) ServerThread(org.voltdb.ServerThread) Client(org.voltdb.client.Client) MessageDigest(java.security.MessageDigest)

Aggregations

VoltProjectBuilder (org.voltdb.compiler.VoltProjectBuilder)269 Configuration (org.voltdb.VoltDB.Configuration)89 IOException (java.io.IOException)49 Test (org.junit.Test)45 File (java.io.File)40 ProcCallException (org.voltdb.client.ProcCallException)38 ClientResponse (org.voltdb.client.ClientResponse)37 VoltDB (org.voltdb.VoltDB)22 LocalCluster (org.voltdb.regressionsuites.LocalCluster)18 Client (org.voltdb.client.Client)17 Before (org.junit.Before)14 HashMap (java.util.HashMap)13 VoltTable (org.voltdb.VoltTable)13 ServerThread (org.voltdb.ServerThread)12 InMemoryJarfile (org.voltdb.utils.InMemoryJarfile)12 VoltCompiler (org.voltdb.compiler.VoltCompiler)11 HttpResponse (org.apache.http.HttpResponse)10 BeforeClass (org.junit.BeforeClass)8 ClientConfig (org.voltdb.client.ClientConfig)7 UserInfo (org.voltdb.compiler.VoltProjectBuilder.UserInfo)7