TupleSchema* AbstractPlanNode::generateDMLCountTupleSchema() { // Assuming the expected output schema here saves the expense of hard-coding it into each DML plan. vector<voltdb::ValueType> columnTypes(1, VALUE_TYPE_BIGINT); vector<int32_t> columnSizes(1, sizeof(int64_t)); vector<bool> columnAllowNull(1, false); vector<bool> columnInBytes(1, false); TupleSchema* schema = TupleSchema::createTupleSchema(columnTypes, columnSizes, columnAllowNull, columnInBytes); return schema; }
TupleSchema* TupleSchema::createTrackerTupleSchema() { std::vector<ValueType> columnTypes(2); std::vector<int32_t> columnSizes(2); std::vector<bool> allowNull(2); // COLUMN 0: TABLE_NAME columnTypes[0] = VALUE_TYPE_VARCHAR; columnSizes[0] = static_cast<int32_t>(32); allowNull[0] = false; // COLUMN 1: TUPLE_ID columnTypes[1] = VALUE_TYPE_INTEGER; columnSizes[1] = static_cast<int32_t>(NValue::getTupleStorageSize(VALUE_TYPE_INTEGER)); allowNull[1] = false; TupleSchema *schema = TupleSchema::createTupleSchema(columnTypes, columnSizes, allowNull, false); return (schema); }
TupleSchema* TupleSchema::createEvictedTupleSchema() { std::vector<ValueType> columnTypes(2); std::vector<int32_t> columnSizes(2); std::vector<bool> allowNull(2); // create a schema containing a single column for the block_id columnTypes[0] = VALUE_TYPE_SMALLINT; columnSizes[0] = static_cast<int32_t>(NValue::getTupleStorageSize(VALUE_TYPE_SMALLINT)); allowNull[0] = false; columnTypes[1] = VALUE_TYPE_INTEGER; columnSizes[1] = static_cast<int32_t>(NValue::getTupleStorageSize(VALUE_TYPE_INTEGER)); allowNull[1] = false; TupleSchema *blockids_schema = TupleSchema::createTupleSchema(columnTypes, columnSizes, allowNull, false); //TupleSchema *evicted_schema = TupleSchema::createTupleSchema(pkey_schema, blockids_schema); // Always make sure that we return memory! //TupleSchema::freeTupleSchema(blockids_schema); return (blockids_schema); }