CCF
Loading...
Searching...
No Matches
tpcc_output.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "tpcc_tables.h"
6
7#include <cstring>
8#include <stdint.h>
9#include <unordered_map>
10#include <unordered_set>
11#include <vector>
12
13namespace tpcc
14{
16 {
17 // TPC-C 2.5.3.4 specifies these output fields
18 std::array<char, Address::MAX_STREET + 1> w_street_1;
19 std::array<char, Address::MAX_STREET + 1> w_street_2;
20 std::array<char, Address::MAX_CITY + 1> w_city;
21 std::array<char, Address::STATE + 1> w_state;
22 std::array<char, Address::ZIP + 1> w_zip;
23
24 std::array<char, Address::MAX_STREET + 1> d_street_1;
25 std::array<char, Address::MAX_STREET + 1> d_street_2;
26 std::array<char, Address::MAX_CITY + 1> d_city;
27 std::array<char, Address::STATE + 1> d_state;
28 std::array<char, Address::ZIP + 1> d_zip;
29
32 float c_balance;
33 std::array<char, Customer::MAX_FIRST + 1> c_first;
34 std::array<char, Customer::MIDDLE + 1> c_middle;
35 std::array<char, Customer::MAX_LAST + 1> c_last;
36 std::array<char, Address::MAX_STREET + 1> c_street_1;
37 std::array<char, Address::MAX_STREET + 1> c_street_2;
38 std::array<char, Address::MAX_CITY + 1> c_city;
39 std::array<char, Address::STATE + 1> c_state;
40 std::array<char, Address::ZIP + 1> c_zip;
41 std::array<char, Customer::PHONE + 1> c_phone;
42 std::array<char, DATETIME_SIZE + 1> c_since;
43 std::array<char, Customer::CREDIT + 1> c_credit;
44 std::array<char, Customer::MAX_DATA + 1> c_data;
45 };
46
48 {
49 int32_t d_id;
50 int32_t o_id;
51 };
52
54 {
55 int32_t c_id;
56 float c_balance;
57
58 int32_t o_id;
59 int32_t o_carrier_id;
60
62 {
63 int32_t i_id;
64 int32_t supply_w_id;
65 int32_t quantity;
66 float amount;
67 std::array<char, DATETIME_SIZE + 1> delivery_d;
68 };
69
70 std::vector<OrderLineSubset> lines;
71 std::array<char, Customer::MAX_FIRST + 1> c_first;
72 std::array<char, Customer::MIDDLE + 1> c_middle;
73 std::array<char, Customer::MAX_LAST + 1> c_last;
74 std::array<char, DATETIME_SIZE + 1> o_entry_d;
75 };
76
78 {
79 int32_t i_id;
81 int32_t ol_quantity;
82 };
83
85 {
87 {
88 std::fill(c_last.begin(), c_last.end(), 0);
89 std::fill(c_credit.begin(), c_credit.end(), 0);
90 std::fill(status.begin(), status.end(), 0);
91 }
92
93 float w_tax;
94 float d_tax;
95 int32_t o_id;
97 float total;
98
99 struct ItemInfo
100 {
101 static const char BRAND = 'B';
102 static const char GENERIC = 'G';
103
104 int32_t s_quantity;
105 float i_price;
108 std::array<char, Item::MAX_NAME + 1> i_name;
109 };
110
111 std::vector<ItemInfo> items;
112 std::array<char, Customer::MAX_LAST + 1> c_last;
113 std::array<char, Customer::CREDIT + 1> c_credit;
114
115 static const int MAX_STATUS = 25;
116 static const char INVALID_ITEM_STATUS[];
117 std::array<char, MAX_STATUS + 1> status;
118 };
119}
Definition tpcc_common.h:8
Definition tpcc_output.h:48
int32_t d_id
Definition tpcc_output.h:49
int32_t o_id
Definition tpcc_output.h:50
Definition tpcc_output.h:78
int32_t ol_quantity
Definition tpcc_output.h:81
int32_t i_id
Definition tpcc_output.h:79
int32_t ol_supply_w_id
Definition tpcc_output.h:80
Definition tpcc_output.h:100
std::array< char, Item::MAX_NAME+1 > i_name
Definition tpcc_output.h:108
char brand_generic
Definition tpcc_output.h:107
float ol_amount
Definition tpcc_output.h:106
static const char GENERIC
Definition tpcc_output.h:102
static const char BRAND
Definition tpcc_output.h:101
int32_t s_quantity
Definition tpcc_output.h:104
float i_price
Definition tpcc_output.h:105
Definition tpcc_output.h:85
static const char INVALID_ITEM_STATUS[]
Definition tpcc_output.h:116
std::array< char, MAX_STATUS+1 > status
Definition tpcc_output.h:117
std::array< char, Customer::CREDIT+1 > c_credit
Definition tpcc_output.h:113
std::array< char, Customer::MAX_LAST+1 > c_last
Definition tpcc_output.h:112
std::vector< ItemInfo > items
Definition tpcc_output.h:111
float w_tax
Definition tpcc_output.h:93
float d_tax
Definition tpcc_output.h:94
static const int MAX_STATUS
Definition tpcc_output.h:115
float total
Definition tpcc_output.h:97
float c_discount
Definition tpcc_output.h:96
int32_t o_id
Definition tpcc_output.h:95
NewOrderOutput()
Definition tpcc_output.h:86
Definition tpcc_output.h:62
int32_t quantity
Definition tpcc_output.h:65
std::array< char, DATETIME_SIZE+1 > delivery_d
Definition tpcc_output.h:67
int32_t i_id
Definition tpcc_output.h:63
int32_t supply_w_id
Definition tpcc_output.h:64
float amount
Definition tpcc_output.h:66
Definition tpcc_output.h:54
int32_t c_id
Definition tpcc_output.h:55
int32_t o_id
Definition tpcc_output.h:58
float c_balance
Definition tpcc_output.h:56
std::array< char, Customer::MIDDLE+1 > c_middle
Definition tpcc_output.h:72
int32_t o_carrier_id
Definition tpcc_output.h:59
std::array< char, Customer::MAX_FIRST+1 > c_first
Definition tpcc_output.h:71
std::array< char, Customer::MAX_LAST+1 > c_last
Definition tpcc_output.h:73
std::vector< OrderLineSubset > lines
Definition tpcc_output.h:70
std::array< char, DATETIME_SIZE+1 > o_entry_d
Definition tpcc_output.h:74
Definition tpcc_output.h:16
std::array< char, Address::MAX_STREET+1 > d_street_2
Definition tpcc_output.h:25
std::array< char, Address::MAX_STREET+1 > w_street_1
Definition tpcc_output.h:18
std::array< char, Customer::MIDDLE+1 > c_middle
Definition tpcc_output.h:34
std::array< char, Customer::PHONE+1 > c_phone
Definition tpcc_output.h:41
std::array< char, Address::MAX_CITY+1 > c_city
Definition tpcc_output.h:38
std::array< char, Address::ZIP+1 > c_zip
Definition tpcc_output.h:40
std::array< char, Address::MAX_STREET+1 > c_street_1
Definition tpcc_output.h:36
std::array< char, Address::MAX_STREET+1 > c_street_2
Definition tpcc_output.h:37
std::array< char, Address::ZIP+1 > d_zip
Definition tpcc_output.h:28
std::array< char, Customer::MAX_FIRST+1 > c_first
Definition tpcc_output.h:33
std::array< char, Address::MAX_CITY+1 > w_city
Definition tpcc_output.h:20
std::array< char, DATETIME_SIZE+1 > c_since
Definition tpcc_output.h:42
std::array< char, Address::STATE+1 > d_state
Definition tpcc_output.h:27
float c_discount
Definition tpcc_output.h:31
std::array< char, Address::STATE+1 > c_state
Definition tpcc_output.h:39
std::array< char, Address::MAX_STREET+1 > w_street_2
Definition tpcc_output.h:19
std::array< char, Address::MAX_CITY+1 > d_city
Definition tpcc_output.h:26
std::array< char, Address::MAX_STREET+1 > d_street_1
Definition tpcc_output.h:24
std::array< char, Customer::CREDIT+1 > c_credit
Definition tpcc_output.h:43
std::array< char, Customer::MAX_LAST+1 > c_last
Definition tpcc_output.h:35
std::array< char, Address::ZIP+1 > w_zip
Definition tpcc_output.h:22
float c_balance
Definition tpcc_output.h:32
float c_credit_lim
Definition tpcc_output.h:30
std::array< char, Address::STATE+1 > w_state
Definition tpcc_output.h:21
std::array< char, Customer::MAX_DATA+1 > c_data
Definition tpcc_output.h:44