Search in sources :

Example 56 with TimestampType

use of org.voltdb.types.TimestampType in project voltdb by VoltDB.

the class TestVoltBulkLoader method testSingleTableOnSingleLoaderMP.

//Test single table with single loader (MultiPartition).
public void testSingleTableOnSingleLoaderMP() throws Exception {
    String mySchema = "create table BLAH (" + "clm_integer integer not null, " + // column that is partitioned on
    "clm_tinyint tinyint default 0, " + "clm_smallint smallint default 0, " + "clm_bigint bigint default 0, " + "clm_string varchar(20) default null, " + "clm_decimal decimal default null, " + "clm_float float default null, " + "clm_timestamp timestamp default null, " + "PRIMARY KEY(clm_integer) " + "); ";
    TimestampType currentTime = new TimestampType();
    Object[][] myData1 = { { 1, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 2, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 3, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 4, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 5, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 6, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 7, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 8, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 9, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 10, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 11, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 12, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 13, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 14, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 15, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 16, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 17, 1, 1, 11111111, "first", 1.10, 1.11, currentTime } };
    int myBatchSize1 = 200;
    Integer[] failures1 = {};
    ArrayList<Integer> expectedFailures1 = new ArrayList<Integer>(Arrays.asList(failures1));
    Object[][] myData2 = { { 18, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 19, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 20, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 21, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 22, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 23, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 24, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 25, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 26, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 27, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 28, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 29, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 30, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 31, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 32, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 33, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 34, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 35, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 36, 1, 1, 11111111, "first", 1.10, 1.11, currentTime } };
    int myBatchSize2 = 5;
    Integer[] failures2 = {};
    ArrayList<Integer> expectedFailures2 = new ArrayList<Integer>(Arrays.asList(failures2));
    test_multiplexing(mySchema, false, false, true, "BLAH", myData1, myBatchSize1, expectedFailures1, false, "BLAH", myData2, myBatchSize2, expectedFailures2, false);
}
Also used : ArrayList(java.util.ArrayList) TimestampType(org.voltdb.types.TimestampType)

Example 57 with TimestampType

use of org.voltdb.types.TimestampType in project voltdb by VoltDB.

the class TestVoltBulkLoader method testBatchOptionCommitByFlush.

//Test flush with good and bad rows in < maxBatch
public void testBatchOptionCommitByFlush() throws Exception {
    String mySchema = "create table BLAH (" + "clm_integer integer default 0 not null, " + // column that is partitioned on
    "clm_tinyint tinyint default 0, " + "clm_smallint smallint default 0, " + "clm_bigint bigint default 0, " + "clm_string varchar(20) default null, " + "clm_decimal decimal default null, " + "clm_float float default null, " + //+ "clm_varinary varbinary(20) default null," +
    "clm_timestamp timestamp default null " + "); ";
    //Make batch size large
    int myBatchSize = 200;
    TimestampType currentTime = new TimestampType();
    Object[][] myData = { { 1, 1, 1, 11111111, "first", 1.10, 1.11, currentTime }, { 2, 2, 2, 222222, "second", 3.30, null, currentTime }, { 3, 3, 3, 333333, " third ", null, 3.33, currentTime }, { 4, 4, 4, 444444, " NULL ", 4.40, 4.44, currentTime }, { 5, 5, 5, 5555555, "abcdeg", 5.50, 5.55, currentTime }, { 6, 6, null, 666666, "sixth", 6.60, 6.66, currentTime }, { 7, 7, 7, 7777777, " seventh", 7.70, 7.77, currentTime }, { 11, 1, 1, 1000, "first", 1.10, 1.11, currentTime }, //empty line
    {}, //invalid lines below
    { 8, 8 }, { 9, 9, 9, 900, "nine", 1.10, 1.11, currentTime }, { 10, 10, 10, 10, "second", 2.20, 2.22, currentTime }, { 12, null, 12, 12121212, "twelveth", 12.12, 12.12, currentTime } };
    Integer[] failures = { 9, 10 };
    ArrayList<Integer> expectedFailures = new ArrayList<Integer>(Arrays.asList(failures));
    test_Interface(mySchema, myData, myBatchSize, expectedFailures, 2);
}
Also used : ArrayList(java.util.ArrayList) TimestampType(org.voltdb.types.TimestampType)

Example 58 with TimestampType

use of org.voltdb.types.TimestampType in project voltdb by VoltDB.

the class GenerateCPPTestFiles method writeServerAuthenticationResponse.

private static void writeServerAuthenticationResponse(SocketChannel sc, boolean success) throws IOException {
    ByteBuffer message;
    message = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    writeMessageHeader(message);
    // success == 0, failure == 100
    message.put(success ? (byte) 0 : (byte) 100);
    // Server Host ID.
    message.putInt(1);
    // Connection ID.
    message.putLong(1);
    // Timestamp.
    TimestampType tp = new TimestampType();
    message.putLong(tp.getTime());
    // IP Address.  There's no place like home.
    message.putInt(0x7f000001);
    // Empty build string.
    message.putInt(0);
    int size = message.position() - 4;
    message.putInt(0, size);
    message.flip();
    sc.write(message);
}
Also used : TimestampType(org.voltdb.types.TimestampType) ByteBuffer(java.nio.ByteBuffer)

Example 59 with TimestampType

use of org.voltdb.types.TimestampType in project voltdb by VoltDB.

the class GenerateCPPTestFiles method main.

/**
     * @param args
     */
public static void main(String[] args) throws Exception {
    boolean generateGeoMessages = true;
    String clientDataDirName = ".";
    long clusterStartTime = CLUSTER_START_TIME;
    int clusterRoundTripTime = CLUSTER_ROUND_TRIP_TIME;
    long clientData = CLIENT_DATA;
    int leaderIPAddr = LEADER_IP_ADDR;
    String buildString = BUILD_STRING;
    for (int idx = 0; idx < args.length; idx += 1) {
        if ("--client-dir".equals(args[idx])) {
            idx += 1;
            clientDataDirName = args[idx];
        } else if ("--clusterStartTime".equals(args[idx])) {
            idx += 1;
            clusterStartTime = Long.valueOf(args[idx]);
        } else if ("--clientData".equals(args[idx])) {
            idx += 1;
            clientData = Long.valueOf(args[idx]);
        } else if ("--leaderIPAddr".equals(args[idx])) {
            idx += 1;
            leaderIPAddr = Integer.valueOf(args[idx]);
        } else if ("--clusterRoundTripTime".equals(args[idx])) {
            idx += 1;
            clusterRoundTripTime = Integer.valueOf(args[idx]);
        } else if ("--no-geo-messages".equals(args[idx])) {
            generateGeoMessages = false;
        } else {
            abend("Unknown command line argument \"%s\"\n", args[idx]);
        }
    }
    // Make the client data directory if necessary.
    File clientDataDir = new File(clientDataDirName);
    if (clientDataDir.exists() && !clientDataDir.isDirectory()) {
        if (!clientDataDir.isDirectory()) {
            abend("Client data dir \"%s\" exists but is not a directory.\n", clientDataDirName);
        }
    } else {
        clientDataDir.mkdirs();
    }
    //
    // Capture a HASH_SHA256 style authentication message.  We do this by
    // creating a fake server, then, in a separate thread, creating an ordinary
    // client which connects to the fake server.  We read the authentication
    // request from the client, save it, send a faked authentication response,
    // close the server and join with the created thread.
    //
    ServerSocketChannel ssc = ServerSocketChannel.open();
    ssc.socket().bind(new InetSocketAddress("localhost", FAKE_SERVER_PORT));
    ClientConfig config = new ClientConfig("hello", "world", (ClientStatusListenerExt) null, ClientAuthScheme.HASH_SHA256);
    final org.voltdb.client.Client client = ClientFactory.createClient(config);
    Thread clientThread = new Thread() {

        @Override
        public void run() {
            try {
                client.createConnection("localhost", FAKE_SERVER_PORT);
                client.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    };
    clientThread.setDaemon(true);
    clientThread.start();
    SocketChannel sc = ssc.accept();
    sc.socket().setTcpNoDelay(true);
    ByteBuffer authReqSHA256 = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    sc.configureBlocking(true);
    readMessage(authReqSHA256, sc);
    writeDataFile(clientDataDir, "authentication_request_sha256.msg", authReqSHA256);
    writeServerAuthenticationResponse(sc, true);
    ssc.close();
    clientThread.join(0);
    //
    // Now, create a fake server again, and login with the HASH_SHA1 scheme.
    // We save this authentication request as well.  The client in the
    // separate thread then sends some procedure invocation messages.  We
    // save all of these in files and then join with the client thread.
    //
    ssc = ServerSocketChannel.open();
    ssc.socket().bind(new InetSocketAddress("localhost", FAKE_SERVER_PORT));
    config = new ClientConfig("hello", "world", (ClientStatusListenerExt) null, ClientAuthScheme.HASH_SHA1);
    final org.voltdb.client.Client oclient = ClientFactory.createClient(config);
    Thread oclientThread = new Thread() {

        @Override
        public void run() {
            NullCallback ncb = new NullCallback();
            try {
                oclient.createConnection("localhost", FAKE_SERVER_PORT);
                oclient.callProcedure("Insert", "Hello", "World", "English");
                try {
                    oclient.callProcedure("Insert", "Hello", "World", "English");
                } catch (Exception e) {
                }
                oclient.callProcedure("Select", "English");
                //
                // Geo support.
                //
                // Insert a point and a polygon.
                oclient.callProcedure("InsertGeo", 200, GeographyValue.fromWKT(smallPolyTxt), GeographyPointValue.fromWKT(smallPointTxt));
                // Insert two nulls for points and polygons.
                oclient.callProcedure("InsertGeo", 201, null, null);
                // Select one row with a point and a polygon both.
                oclient.callProcedure("SelectGeo", 100);
                // Select another row with a different point and polygon.
                oclient.callProcedure("SelectGeo", 101);
                // Select one row with a null polygon and one non-null point.
                oclient.callProcedure("SelectGeo", 102);
                // Select one row with a non-null polygon and a null point.
                oclient.callProcedure("SelectGeo", 103);
                // Select one row with two nulls.
                oclient.callProcedure("SelectGeo", 104);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    };
    oclientThread.setDaemon(true);
    oclientThread.start();
    sc = ssc.accept();
    sc.socket().setTcpNoDelay(true);
    ByteBuffer authReqSHA1 = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    sc.configureBlocking(true);
    readMessage(authReqSHA1, sc);
    writeDataFile(clientDataDir, "authentication_request.msg", authReqSHA1);
    writeServerAuthenticationResponse(sc, true);
    //
    // Read some call procedure messages.
    //
    // The client engages us in some witty banter, which we don't
    // actually care about for the purposes of this program.  But
    // we need to read past it, and acknowledge it anyway.  We are
    // acting as a server here.  We don't need to change the client
    // data at all.
    //
    ByteBuffer subscription_request = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    readMessage(subscription_request, sc);
    writeServerCallResponse(sc, getRequestClientData(subscription_request));
    ByteBuffer stats_request = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    readMessage(stats_request, sc);
    writeServerCallResponse(sc, getRequestClientData(stats_request));
    ByteBuffer syscat_request = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    readMessage(syscat_request, sc);
    writeServerCallResponse(sc, getRequestClientData(stats_request));
    //
    // Now, read the invocation requests from the client.  We can't
    // actually respond, so we fake up a response.  But this is good
    // enough for now, and we save the message.
    //
    String[] vanillaFileNames = new String[] { "invocation_request_success.msg", "invocation_request_fail_cv.msg", "invocation_request_select.msg" };
    Map<String, ByteBuffer> vanillaMessages = new HashMap<String, ByteBuffer>();
    for (String fileName : vanillaFileNames) {
        ByteBuffer responseMessage = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
        vanillaMessages.put(fileName, responseMessage);
        readMessage(responseMessage, sc);
        writeServerCallResponse(sc, getRequestClientData(responseMessage));
        // Set the client data.  The value here is not important, but it
        // needs to be shared between this and the client unit tests.
        setRequestClientData(responseMessage, clientData);
        writeDataFile(clientDataDir, fileName, responseMessage);
    }
    // Note that these names are somewhat stylized.  They name
    // the file which holds the request.  The response to this
    // request will be in a similarly named file, but with _request_
    // replaced by _response_.  So, make sure there is one _request_
    // substring in the file names.
    String[] geoFileNames = new String[] { "invocation_request_insert_geo.msg", "invocation_request_insert_geo_nulls.msg", "invocation_request_select_geo_both.msg", "invocation_request_select_geo_both_mid.msg", "invocation_request_select_geo_polynull.msg", "invocation_request_select_geo_ptnull.msg", "invocation_request_select_geo_bothnull.msg" };
    Map<String, ByteBuffer> geoMessages = new HashMap<String, ByteBuffer>();
    for (String filename : geoFileNames) {
        ByteBuffer requestMessage = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
        // We need to save these for later.
        geoMessages.put(filename, requestMessage);
        readMessage(requestMessage, sc);
        writeServerCallResponse(sc, getRequestClientData(requestMessage));
        setRequestClientData(requestMessage, clientData);
        if (generateGeoMessages) {
            writeDataFile(clientDataDir, filename, requestMessage);
        }
    }
    oclient.close();
    ssc.close();
    oclientThread.join();
    // Now, connect to a real server.  We are going to pretend to be a
    // client and write the messages we just read from the client, as we pretended to be
    // a server.  We will then capture the responses in files.
    SocketChannel voltsc = null;
    try {
        voltsc = SocketChannel.open(new InetSocketAddress("localhost", TRUE_SERVER_PORT));
        voltsc.socket().setTcpNoDelay(true);
        voltsc.configureBlocking(true);
        System.err.printf("Connected.\n");
    } catch (IOException ex) {
        abend("Can't connect to a server.  Is there a VoltDB server running?.\n");
    }
    // Write the authentication message and then
    // read the response.  We need the response.  The
    // Client will engage in witty repartee with the
    // server, but we neither see nor care about that.
    //
    // Note that for each of these responses we need to
    // set some parameters, so that they will not depend
    // on the particular context we executed.  This is the
    // cluster start time, the client data, the leader IP
    // address and the build string.  The client unit tests
    // will know these values.
    //
    ByteBuffer scratch = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    voltsc.write(authReqSHA1);
    readMessage(scratch, voltsc);
    setClusterStartTimestamp(scratch, clusterStartTime);
    setLeaderIPAddr(scratch, leaderIPAddr);
    setBuildString(scratch, buildString);
    writeDataFile(clientDataDir, "authentication_response.msg", scratch);
    for (String filename : vanillaFileNames) {
        // Write the three procedure messages.
        ByteBuffer requestMessage = vanillaMessages.get(filename);
        if (requestMessage == null) {
            abend("Cannot find request message for file name \"%s\"\n", filename);
        }
        voltsc.write(requestMessage);
        readMessage(scratch, voltsc);
        setResponseClientData(scratch, clientData);
        setClusterRoundTripTime(scratch, clusterRoundTripTime);
        String responseFileName = filename.replaceAll("_request_", "_response_");
        writeDataFile(clientDataDir, responseFileName, scratch);
    }
    if (generateGeoMessages) {
        for (String filename : geoFileNames) {
            // Write the three procedure messages.
            ByteBuffer requestMessage = geoMessages.get(filename);
            if (requestMessage == null) {
                abend("Cannot find request message for file name \"%s\"\n", filename);
            }
            voltsc.write(requestMessage);
            readMessage(scratch, voltsc);
            setResponseClientData(scratch, clientData);
            setClusterRoundTripTime(scratch, clusterRoundTripTime);
            String responseFileName = filename.replaceAll("_request_", "_response_");
            System.out.printf("Writing Response file \"%s\".\n", responseFileName);
            writeDataFile(clientDataDir, responseFileName, scratch);
        }
    }
    voltsc.close();
    clientThread.join();
    Thread.sleep(3000);
    ssc = ServerSocketChannel.open();
    ssc.socket().bind(new InetSocketAddress("localhost", FAKE_SERVER_PORT));
    clientThread = new Thread() {

        @Override
        public void run() {
            try {
                org.voltdb.client.Client newClient = ClientFactory.createClient();
                newClient.createConnection("localhost", FAKE_SERVER_PORT);
                String[] strings = new String[] { "oh", "noes" };
                byte[] bytes = new byte[] { 22, 33, 44 };
                short[] shorts = new short[] { 22, 33, 44 };
                int[] ints = new int[] { 22, 33, 44 };
                long[] longs = new long[] { 22, 33, 44 };
                double[] doubles = new double[] { 3, 3.1, 3.14, 3.1459 };
                TimestampType[] timestamps = new TimestampType[] { new TimestampType(33), new TimestampType(44) };
                BigDecimal[] bds = new BigDecimal[] { new BigDecimal("3"), new BigDecimal("3.14"), new BigDecimal("3.1459") };
                try {
                    newClient.callProcedure("foo", strings, bytes, shorts, ints, longs, doubles, timestamps, bds, null, "ohnoes!", (byte) 22, (short) 22, 22, (long) 22, 3.1459, new TimestampType(33), new BigDecimal("3.1459"));
                } catch (Exception e) {
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };
    clientThread.setDaemon(true);
    clientThread.start();
    voltsc = ssc.accept();
    // Read the authentication message.  We don't need it.
    readMessage(scratch, voltsc);
    writeServerAuthenticationResponse(voltsc, true);
    //
    // The client engages us in some dialog.  We don't need this
    // either, but we need to read past it.
    //
    subscription_request = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    readMessage(subscription_request, voltsc);
    writeServerCallResponse(voltsc, getRequestClientData(subscription_request));
    stats_request = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    readMessage(stats_request, voltsc);
    writeServerCallResponse(voltsc, getRequestClientData(stats_request));
    syscat_request = ByteBuffer.allocate(DEFAULT_BUFFER_SIZE);
    readMessage(syscat_request, voltsc);
    writeServerCallResponse(voltsc, getRequestClientData(stats_request));
    // Read the all-types call procedure message.
    readMessage(scratch, voltsc);
    writeServerCallResponse(voltsc, getRequestClientData(scratch));
    setRequestClientData(scratch, clientData);
    writeDataFile(clientDataDir, "invocation_request_all_params.msg", scratch);
    voltsc.close();
    clientThread.join();
    //
    // Serialize a message and write it.
    //
    ColumnInfo[] columns = new ColumnInfo[] { new ColumnInfo("column1", VoltType.TINYINT), new ColumnInfo("column2", VoltType.STRING), new ColumnInfo("column3", VoltType.SMALLINT), new ColumnInfo("column4", VoltType.INTEGER), new ColumnInfo("column5", VoltType.BIGINT), new ColumnInfo("column6", VoltType.TIMESTAMP), new ColumnInfo("column7", VoltType.DECIMAL), new ColumnInfo("column8", VoltType.GEOGRAPHY), new ColumnInfo("column9", VoltType.GEOGRAPHY_POINT) };
    VoltTable vt = new VoltTable(columns);
    GeographyValue poly = GeographyValue.fromWKT(smallPolyTxt);
    GeographyPointValue pt = GeographyPointValue.fromWKT(smallPointTxt);
    vt.addRow(null, null, null, null, null, null, null, poly, pt);
    vt.addRow(0, "", 2, 4, 5, new TimestampType(44), new BigDecimal("3.1459"), poly, pt);
    vt.addRow(0, null, 2, 4, 5, null, null, poly, pt);
    vt.addRow(null, "woobie", null, null, null, new TimestampType(44), new BigDecimal("3.1459"), poly, pt);
    ByteBuffer bb = ByteBuffer.allocate(vt.getSerializedSize());
    vt.flattenToBuffer(bb);
    FastSerializer fs = new FastSerializer(vt.getSerializedSize());
    fs.write(bb);
    bb.flip();
    writeDataFile(clientDataDir, "serialized_table.bin", bb);
    clientThread.join();
}
Also used : ServerSocketChannel(java.nio.channels.ServerSocketChannel) SocketChannel(java.nio.channels.SocketChannel) HashMap(java.util.HashMap) InetSocketAddress(java.net.InetSocketAddress) FastSerializer(org.voltdb.messaging.FastSerializer) ColumnInfo(org.voltdb.VoltTable.ColumnInfo) TimestampType(org.voltdb.types.TimestampType) NullCallback(org.voltdb.client.NullCallback) ClientConfig(org.voltdb.client.ClientConfig) ServerSocketChannel(java.nio.channels.ServerSocketChannel) GeographyValue(org.voltdb.types.GeographyValue) IOException(java.io.IOException) ByteBuffer(java.nio.ByteBuffer) IOException(java.io.IOException) BigDecimal(java.math.BigDecimal) ClientStatusListenerExt(org.voltdb.client.ClientStatusListenerExt) File(java.io.File) GeographyPointValue(org.voltdb.types.GeographyPointValue)

Example 60 with TimestampType

use of org.voltdb.types.TimestampType in project voltdb by VoltDB.

the class TestProcedureInvocation method setUp.

@Override
public void setUp() {
    byteparam = new Byte((byte) 2);
    shortparam = new Short(Short.MAX_VALUE);
    intparam = new Integer(Integer.MIN_VALUE);
    longparam = new Long(Long.MAX_VALUE - 1);
    doubleparam = new Double(Double.MAX_VALUE - 1);
    stringparam = new String("ABCDE");
    // current time
    dateparam = new TimestampType();
    bigdecimalparam = new BigDecimal(7654321).setScale(VoltDecimalHelper.kDefaultScale);
    volttableparam = new VoltTable(new VoltTable.ColumnInfo("foo", VoltType.INTEGER));
    volttableparam.addRow(Integer.MAX_VALUE);
    bytearray = new byte[] { (byte) 'f', (byte) 'o', (byte) 'o' };
    shortarray = new short[] { Short.MAX_VALUE, Short.MIN_VALUE, (short) 5 };
    intarray = new int[] { Integer.MAX_VALUE, Integer.MIN_VALUE, 5 };
    doublearray = new double[] { Double.MAX_VALUE, Double.MIN_VALUE, 5.5 };
    stringarray = new String[] { "ABC", "DEF", "HIJ" };
    datearray = new TimestampType[] { new TimestampType(), new TimestampType(), new TimestampType() };
    BigDecimal bdtmp1 = new BigDecimal(7654321).setScale(VoltDecimalHelper.kDefaultScale);
    BigDecimal bdtmp2 = new BigDecimal(654321).setScale(VoltDecimalHelper.kDefaultScale);
    BigDecimal bdtmp3 = new BigDecimal(54321).setScale(VoltDecimalHelper.kDefaultScale);
    bigdecimalarray = new BigDecimal[] { bdtmp1, bdtmp2, bdtmp3 };
    VoltTable vttmp1 = new VoltTable(new VoltTable.ColumnInfo("foo", VoltType.INTEGER));
    vttmp1.addRow(Integer.MAX_VALUE);
    VoltTable vttmp2 = new VoltTable(new VoltTable.ColumnInfo("bar", VoltType.INTEGER));
    vttmp2.addRow(Integer.MIN_VALUE);
    VoltTable vttmp3 = new VoltTable(new VoltTable.ColumnInfo("far", VoltType.INTEGER));
    vttmp3.addRow(new Integer(5));
    volttablearray = new VoltTable[] { vttmp1, vttmp2, vttmp3 };
    assertTrue(bigdecimalparam.scale() == VoltDecimalHelper.kDefaultScale);
    assertTrue(bdtmp1.scale() == VoltDecimalHelper.kDefaultScale);
    assertTrue(bdtmp2.scale() == VoltDecimalHelper.kDefaultScale);
    assertTrue(bdtmp3.scale() == VoltDecimalHelper.kDefaultScale);
    pi = new ProcedureInvocation(10, "invocation1", byteparam, shortparam, intparam, longparam, doubleparam, stringparam, dateparam, bigdecimalparam, volttableparam, bytearray, shortarray, intarray, doublearray, stringarray, datearray, bigdecimalarray, volttablearray);
}
Also used : StoredProcedureInvocation(org.voltdb.StoredProcedureInvocation) TimestampType(org.voltdb.types.TimestampType) VoltTable(org.voltdb.VoltTable) BigDecimal(java.math.BigDecimal)

Aggregations

TimestampType (org.voltdb.types.TimestampType)127 VoltTable (org.voltdb.VoltTable)37 BigDecimal (java.math.BigDecimal)30 Test (org.junit.Test)23 Client (org.voltdb.client.Client)19 ArrayList (java.util.ArrayList)16 IOException (java.io.IOException)11 GeographyValue (org.voltdb.types.GeographyValue)11 GeographyPointValue (org.voltdb.types.GeographyPointValue)10 Date (java.util.Date)9 File (java.io.File)7 VoltTableRow (org.voltdb.VoltTableRow)7 ProcCallException (org.voltdb.client.ProcCallException)7 ByteBuffer (java.nio.ByteBuffer)5 SimpleDateFormat (java.text.SimpleDateFormat)5 ColumnInfo (org.voltdb.VoltTable.ColumnInfo)5 ClientResponse (org.voltdb.client.ClientResponse)5 Random (java.util.Random)4 VoltType (org.voltdb.VoltType)3 UnsupportedEncodingException (java.io.UnsupportedEncodingException)2