| 1 | /* | 
|---|
| 2 | * Legal Notice | 
|---|
| 3 | * | 
|---|
| 4 | * This document and associated source code (the "Work") is a part of a | 
|---|
| 5 | * benchmark specification maintained by the TPC. | 
|---|
| 6 | * | 
|---|
| 7 | * The TPC reserves all right, title, and interest to the Work as provided | 
|---|
| 8 | * under U.S. and international laws, including without limitation all patent | 
|---|
| 9 | * and trademark rights therein. | 
|---|
| 10 | * | 
|---|
| 11 | * No Warranty | 
|---|
| 12 | * | 
|---|
| 13 | * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION | 
|---|
| 14 | *     CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE | 
|---|
| 15 | *     AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER | 
|---|
| 16 | *     WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY, | 
|---|
| 17 | *     INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES, | 
|---|
| 18 | *     DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR | 
|---|
| 19 | *     PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF | 
|---|
| 20 | *     WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE. | 
|---|
| 21 | *     ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, | 
|---|
| 22 | *     QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT | 
|---|
| 23 | *     WITH REGARD TO THE WORK. | 
|---|
| 24 | * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO | 
|---|
| 25 | *     ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE | 
|---|
| 26 | *     COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS | 
|---|
| 27 | *     OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT, | 
|---|
| 28 | *     INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY, | 
|---|
| 29 | *     OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT | 
|---|
| 30 | *     RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD | 
|---|
| 31 | *     ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. | 
|---|
| 32 | * | 
|---|
| 33 | * Contributors: | 
|---|
| 34 | * Gradient Systems | 
|---|
| 35 | */ | 
|---|
| 36 | #ifndef CONSTANTS_H | 
|---|
| 37 | #define CONSTANTS_H | 
|---|
| 38 | /*** | 
|---|
| 39 | *** Multi-table/Global Defines | 
|---|
| 40 | ***/ | 
|---|
| 41 | #define DATA_START_DATE "1998-01-01" /* earliest date in the data set */ | 
|---|
| 42 | #define DATA_END_DATE "2003-12-31"   /* latest date in the data set */ | 
|---|
| 43 | #define LINES_PER_ORDER 16           /* max number of lineitems per order for all channels */ | 
|---|
| 44 |  | 
|---|
| 45 | /*** | 
|---|
| 46 | *** C_xxx Cutomer Defines | 
|---|
| 47 | ***/ | 
|---|
| 48 | #define C_PREFERRED_PCT 50 | 
|---|
| 49 |  | 
|---|
| 50 | /*** | 
|---|
| 51 | *** CC_xxx Call Center Defines | 
|---|
| 52 | ***/ | 
|---|
| 53 | #define CC_EMPLOYEE_MAX 7 /* rises ~ scale ^ 2 */ | 
|---|
| 54 |  | 
|---|
| 55 | /*** | 
|---|
| 56 | *** CP_xxx Catalog Page Defines | 
|---|
| 57 | ***/ | 
|---|
| 58 | #define CP_CATALOGS_PER_YEAR 18 | 
|---|
| 59 | #define CP_SK(c, s, p) (c * s + p) | 
|---|
| 60 |  | 
|---|
| 61 | /*** | 
|---|
| 62 | *** CR_xxx Catalog Returns Defines | 
|---|
| 63 | ***/ | 
|---|
| 64 | #define CR_RETURN_PCT 10 /* percentage of catalog sales that are returned */ | 
|---|
| 65 |  | 
|---|
| 66 | /*** | 
|---|
| 67 | *** CS_xxx Customer Sales Defines | 
|---|
| 68 | ***/ | 
|---|
| 69 | #define CS_QUANTITY_MAX "100" | 
|---|
| 70 | #define CS_MARKUP_MAX "2.00" | 
|---|
| 71 | #define CS_DISCOUNT_MAX "1.00" | 
|---|
| 72 | #define CS_WHOLESALE_MAX "100.00" | 
|---|
| 73 | #define CS_COUPON_MAX "0.50" | 
|---|
| 74 | #define CS_MIN_SHIP_DELAY 2   /* minimum days from order to ship */ | 
|---|
| 75 | #define CS_MAX_SHIP_DELAY 90  /* maximum days from order to ship */ | 
|---|
| 76 | #define CS_ITEMS_PER_ORDER 10 /* number of items in each order */ | 
|---|
| 77 | #define CS_GIFT_PCT 10        /* ship-to != bill-to */ | 
|---|
| 78 |  | 
|---|
| 79 | /* | 
|---|
| 80 | * DATE SETTINGS | 
|---|
| 81 | * | 
|---|
| 82 | * The benchmarks sense of "today". Should this be a sliding scale/parameter? | 
|---|
| 83 | */ | 
|---|
| 84 | #define CURRENT_YEAR 2003 | 
|---|
| 85 | #define CURRENT_MONTH 1 | 
|---|
| 86 | #define CURRENT_DAY 8 | 
|---|
| 87 | #define CURRENT_QUARTER 1 | 
|---|
| 88 | #define CURRENT_WEEK 2 | 
|---|
| 89 | #define DATE_MINIMUM "1998-01-01" | 
|---|
| 90 | #define DATE_MAXIMUM "2002-12-31" | 
|---|
| 91 | #define YEAR_MINIMUM 1998 | 
|---|
| 92 | #define YEAR_MAXIMUM 2002 | 
|---|
| 93 | #define WAREHOUSE_LOAD_DATE "2001-07-18" | 
|---|
| 94 | #define UPDATE_INTERVAL 30 /* refresh interval in days */ | 
|---|
| 95 | #define TODAYS_DATE "2003-01-08" | 
|---|
| 96 |  | 
|---|
| 97 | /*** | 
|---|
| 98 | *** INV_xxx Inventory Defines | 
|---|
| 99 | ***/ | 
|---|
| 100 | #define INV_QUANTITY_MIN 0 | 
|---|
| 101 | #define INV_QUANTITY_MAX 1000 | 
|---|
| 102 |  | 
|---|
| 103 | /*** | 
|---|
| 104 | *** ITEM_xxx Item Defines | 
|---|
| 105 | ***/ | 
|---|
| 106 | #define ITEM_DESC_LEN 5 | 
|---|
| 107 | #define ITEM_NAME_LEN 10 | 
|---|
| 108 | #define ITEM_MANFACTURER_COUNT 1000 /* number of brands handled by a particular manufacturer */ | 
|---|
| 109 |  | 
|---|
| 110 | /*** | 
|---|
| 111 | *** PROMO_xxx Promotions Defines | 
|---|
| 112 | ***/ | 
|---|
| 113 | #define PROMO_NAME_LEN 5 | 
|---|
| 114 | #define PROMO_START_MIN -720 | 
|---|
| 115 | #define PROMO_START_MAX 100 | 
|---|
| 116 | #define PROMO_START_MEAN 0 | 
|---|
| 117 | #define PROMO_LEN_MIN 1 | 
|---|
| 118 | #define PROMO_LEN_MAX 60 | 
|---|
| 119 | #define PROMO_LEN_MEAN 0 | 
|---|
| 120 | #define PROMO_DETAIL_LEN_MIN 20 | 
|---|
| 121 | #define PROMO_DETAIL_LEN_MAX 60 | 
|---|
| 122 |  | 
|---|
| 123 | /*** | 
|---|
| 124 | *** SR_xxx Store Returns Defines | 
|---|
| 125 | ***/ | 
|---|
| 126 | #define SR_RETURN_PCT 10 /* percentage of store sales that are returned */ | 
|---|
| 127 |  | 
|---|
| 128 | /*** | 
|---|
| 129 | *** SS_xxx Store Sales Defines | 
|---|
| 130 | ***/ | 
|---|
| 131 | #define SS_MIN_SHIP_DELAY 2  /* minimum days from order to ship */ | 
|---|
| 132 | #define SS_MAX_SHIP_DELAY 90 /* maximum days from order to ship */ | 
|---|
| 133 | #define SS_QUANTITY_MAX "100" | 
|---|
| 134 | #define SS_MARKUP_MAX "1.00" | 
|---|
| 135 | #define SS_DISCOUNT_MAX "1.00" | 
|---|
| 136 | #define SS_WHOLESALE_MAX "100.00" | 
|---|
| 137 | #define SS_COUPON_MAX "0.50" | 
|---|
| 138 |  | 
|---|
| 139 | /*** | 
|---|
| 140 | *** WP_xxx Web Page Defines | 
|---|
| 141 | ***/ | 
|---|
| 142 | #define WP_AUTOGEN_PCT 30 | 
|---|
| 143 | #define WP_LINK_MIN 2 | 
|---|
| 144 | #define WP_LINK_MAX 25 | 
|---|
| 145 | #define WP_IMAGE_MIN 1 | 
|---|
| 146 | #define WP_IMAGE_MAX 7 | 
|---|
| 147 | #define WP_AD_MIN 0 | 
|---|
| 148 | #define WP_AD_MAX 4 | 
|---|
| 149 | #define WP_MAX_REC_DURATION                                                                                            \ | 
|---|
| 150 | 1000                     /* maximum time from start to end of record                                               \ | 
|---|
| 151 | */ | 
|---|
| 152 | #define WP_IDLE_TIME_MAX 100 /* maximum time since last page access */ | 
|---|
| 153 |  | 
|---|
| 154 | /*** | 
|---|
| 155 | *** W_xxx Warehouse Defines | 
|---|
| 156 | ***/ | 
|---|
| 157 | #define W_DESC_MIN 5 | 
|---|
| 158 | #define W_SQFT_MIN 50000 | 
|---|
| 159 | #define W_SQFT_MAX 1000000 | 
|---|
| 160 | #define W_NAME_MIN 10 | 
|---|
| 161 |  | 
|---|
| 162 | /*** | 
|---|
| 163 | *** WR_xxx Web Returns Defines | 
|---|
| 164 | ***/ | 
|---|
| 165 | #define WR_RETURN_PCT 10  /* percentage of web sales that are returned */ | 
|---|
| 166 | #define WR_SHIP_LAG_MIN 2 /* lag time between receiving and returning */ | 
|---|
| 167 | #define WR_SHIP_LAG_MAX 12 | 
|---|
| 168 |  | 
|---|
| 169 | /*** | 
|---|
| 170 | *** WEB_xxx Web Site Defines | 
|---|
| 171 | ***/ | 
|---|
| 172 | #define WEB_START_DATE                                                                                                 \ | 
|---|
| 173 | DATE_MINIMUM                  /* range of open/close dates; actual dates can exceed these                          \ | 
|---|
| 174 | values */ | 
|---|
| 175 | #define WEB_END_DATE DATE_MAXIMUM /* due to staggered start of each site */ | 
|---|
| 176 | #define WEB_DATE_STAGGER 17       /* time between site creation on leading/trailing edge */ | 
|---|
| 177 | #define WEB_PAGES_PER_SITE 123    /* number of pages on a web site */ | 
|---|
| 178 | /* some of the web sites are completely replaced in the date range. */ | 
|---|
| 179 | #define WEB_MORTALITY 50                                      /* percentage of sites that "die" between start and end */ | 
|---|
| 180 | #define WEB_IS_REPLACED(j) ((j % (100 / WEB_MORTALITY)) == 0) /* does this site get replaced? */ | 
|---|
| 181 | #define WEB_IS_REPLACEMENT(j) ((j / (100 / WEB_MORTALITY)) % 2) /* is this the replacement? */ | 
|---|
| 182 |  | 
|---|
| 183 | /*** | 
|---|
| 184 | *** SOURCE SCHEMA CONSTANTS | 
|---|
| 185 | ***/ | 
|---|
| 186 | #define DAYS_PER_UPDATE 3 | 
|---|
| 187 |  | 
|---|
| 188 | /*** | 
|---|
| 189 | *** RS_xxx: Row and column sizes | 
|---|
| 190 | ***/ | 
|---|
| 191 | /* sizes used in various tables */ | 
|---|
| 192 | #define RS_BKEY 16 | 
|---|
| 193 | /* table-specific sizes */ | 
|---|
| 194 |  | 
|---|
| 195 | #define RS_BRND_NAME 50 | 
|---|
| 196 | #define RS_C_SALUTATION 5 | 
|---|
| 197 | #define RS_C_FIRST_NAME 20 | 
|---|
| 198 | #define RS_C_LAST_NAME 30 | 
|---|
| 199 | #define RS_C_BIRTH_COUNTRY 20 | 
|---|
| 200 | #define RS_C_LOGIN 13 | 
|---|
| 201 | #define RS_C_PASSWORD 13 | 
|---|
| 202 | #define RS_C_EMAIL 50 | 
|---|
| 203 | #define RS_C_PRIMARY_MACHINE_ID 15 | 
|---|
| 204 | #define RS_C_SECONDARY_MACHINE_ID 15 | 
|---|
| 205 | #define RS_CA_SUITE_NUMBER 10 | 
|---|
| 206 | #define RS_CA_STREET_NAME 60 | 
|---|
| 207 | #define RS_CA_STREET_TYPE 15 | 
|---|
| 208 | #define RS_CA_CITY 60 | 
|---|
| 209 | #define RS_CA_COUNTY 30 | 
|---|
| 210 | #define RS_CA_STATE 2 | 
|---|
| 211 | #define RS_CA_COUNTRY 20 | 
|---|
| 212 | #define RS_CA_ZIP 10 | 
|---|
| 213 | #define RS_CA_LOCATION_TYPE 20 | 
|---|
| 214 | #define RS_CATG_DESC 20 | 
|---|
| 215 | #define RS_CC_NAME 50 | 
|---|
| 216 | #define RS_CC_CLASS 50 | 
|---|
| 217 | #define RS_CC_HOURS 20 | 
|---|
| 218 | #define RS_CC_MANAGER 40 | 
|---|
| 219 | #define RS_CC_MARKET_MANAGER 40 | 
|---|
| 220 | #define RS_CC_MARKET_CLASS 50 | 
|---|
| 221 | #define RS_CC_MARKET_DESC 100 | 
|---|
| 222 | #define RS_CC_DIVISION_NAME 50 | 
|---|
| 223 | #define RS_CC_COMPANY_NAME 60 | 
|---|
| 224 | #define RS_CC_SUITE_NUM 10 | 
|---|
| 225 | #define RS_CC_STREET_NAME 60 | 
|---|
| 226 | #define RS_CC_STREET_TYPE 15 | 
|---|
| 227 | #define RS_CC_CITY 60 | 
|---|
| 228 | #define RS_CC_COUNTY 30 | 
|---|
| 229 | #define RS_CC_STATE 2 | 
|---|
| 230 | #define RS_CC_COUNTRY 20 | 
|---|
| 231 | #define RS_CC_ZIP 10 | 
|---|
| 232 | #define RS_CD_GENDER 1 | 
|---|
| 233 | #define RS_CD_MARITAL_STATUS 1 | 
|---|
| 234 | #define RS_CD_EDUCATION_STATUS 20 | 
|---|
| 235 | #define RS_CD_CREDIT_RATING 10 | 
|---|
| 236 | #define RS_CP_DEPARTMENT 20 | 
|---|
| 237 | #define RS_CLAS_DESC 100 | 
|---|
| 238 | #define RS_CMPY_NAME 50 | 
|---|
| 239 | #define RS_CP_DESCRIPTION 100 | 
|---|
| 240 | #define RS_CP_TYPE 100 | 
|---|
| 241 | #define RS_CTGR_NAME 25 | 
|---|
| 242 | #define RS_CTGR_DESC 100 | 
|---|
| 243 | #define RS_CUST_CREDIT 100 | 
|---|
| 244 | #define RS_D_DAY_NAME 4 | 
|---|
| 245 | #define RS_D_QUARTER_NAME 4 | 
|---|
| 246 | #define RS_DVSN_NAME 50 | 
|---|
| 247 | #define RS_HD_BUY_POTENTIAL 7 | 
|---|
| 248 | #define RS_I_ITEM_DESC 200 | 
|---|
| 249 | #define RS_I_BRAND 50 | 
|---|
| 250 | #define RS_I_SUBCLASS 50 | 
|---|
| 251 | #define RS_I_CLASS 50 | 
|---|
| 252 | #define RS_I_SUBCATEGORY 50 | 
|---|
| 253 | #define RS_I_CATEGORY 50 | 
|---|
| 254 | #define RS_I_MANUFACT 50 | 
|---|
| 255 | #define RS_I_SIZE 20 | 
|---|
| 256 | #define RS_I_FORMULATION 20 | 
|---|
| 257 | #define RS_I_FLAVOR 20 | 
|---|
| 258 | #define RS_I_UNITS 10 | 
|---|
| 259 | #define RS_I_CONTAINER 10 | 
|---|
| 260 | #define RS_I_PRODUCT_NAME 50 | 
|---|
| 261 | #define RS_MANF_NAME 50 | 
|---|
| 262 | #define RS_MNGR_NAME 50 | 
|---|
| 263 | #define RS_P_PROMO_NAME 50 | 
|---|
| 264 | #define RS_P_CHANNEL_DETAILS 100 | 
|---|
| 265 | #define RS_P_PURPOSE 15 | 
|---|
| 266 | #define RS_PB_DESCRIPTION 100 | 
|---|
| 267 | #define  100 | 
|---|
| 268 | #define RS_PROD_NAME 100 | 
|---|
| 269 | #define RS_PROD_TYPE 100 | 
|---|
| 270 | #define RS_R_REASON_DESCRIPTION 100 | 
|---|
| 271 | #define RS_STORE_NAME 50 | 
|---|
| 272 | #define RS_STORE_HOURS 20 | 
|---|
| 273 | #define RS_S_STORE_MANAGER 40 | 
|---|
| 274 | #define RS_S_GEOGRAPHY_CLASS 100 | 
|---|
| 275 | #define RS_S_MARKET_DESC 100 | 
|---|
| 276 | #define RS_S_MARKET_MANAGER 40 | 
|---|
| 277 | #define RS_S_DIVISION_NAME 50 | 
|---|
| 278 | #define RS_S_COMPANY_NAME 50 | 
|---|
| 279 | #define RS_S_SUITE_NUM 10 | 
|---|
| 280 | #define RS_S_STREET_NAME 60 | 
|---|
| 281 | #define RS_S_STREET_TYPE 15 | 
|---|
| 282 | #define RS_S_CITY 60 | 
|---|
| 283 | #define RS_S_STATE 2 | 
|---|
| 284 | #define RS_S_COUNTY 30 | 
|---|
| 285 | #define RS_S_COUNTRY 30 | 
|---|
| 286 | #define RS_S_ZIP 10 | 
|---|
| 287 | #define RS_SM_TYPE 30 | 
|---|
| 288 | #define RS_SM_CODE 10 | 
|---|
| 289 | #define RS_SM_CONTRACT 20 | 
|---|
| 290 | #define RS_SM_CARRIER 20 | 
|---|
| 291 | #define RS_SBCT_NAME 100 | 
|---|
| 292 | #define RS_SBCT_DESC 100 | 
|---|
| 293 | #define RS_SUBC_NAME 100 | 
|---|
| 294 | #define RS_SUBC_DESC 100 | 
|---|
| 295 | #define RS_T_AM_PM 2 | 
|---|
| 296 | #define RS_T_SHIFT 20 | 
|---|
| 297 | #define RS_T_SUB_SHIFT 20 | 
|---|
| 298 | #define RS_T_MEAL_TIME 20 | 
|---|
| 299 | #define RS_W_WAREHOUSE_NAME 20 | 
|---|
| 300 | #define RS_W_STREET_NAME 60 | 
|---|
| 301 | #define RS_W_SUITE_NUM 10 | 
|---|
| 302 | #define RS_W_STREET_TYPE 15 | 
|---|
| 303 | #define RS_W_CITY 60 | 
|---|
| 304 | #define RS_W_COUNTY 30 | 
|---|
| 305 | #define RS_W_STATE 2 | 
|---|
| 306 | #define RS_W_COUNTRY 20 | 
|---|
| 307 | #define RS_W_ZIP 10 | 
|---|
| 308 | #define RS_WEB_MANAGER 50 | 
|---|
| 309 | #define RS_WEB_NAME 50 | 
|---|
| 310 | #define RS_WEB_CLASS 50 | 
|---|
| 311 | #define RS_WEB_MARKET_CLASS 50 | 
|---|
| 312 | #define RS_WEB_MARKET_DESC 100 | 
|---|
| 313 | #define RS_WEB_MARKET_MANAGER 40 | 
|---|
| 314 | #define RS_WEB_COMPANY_NAME 100 | 
|---|
| 315 | #define RS_WEB_SUITE_NUMBER 10 | 
|---|
| 316 | #define RS_WEB_STREET_NAME 60 | 
|---|
| 317 | #define RS_WEB_STREET_TYPE 15 | 
|---|
| 318 | #define RS_WEB_CITY 60 | 
|---|
| 319 | #define RS_WEB_COUNTY 30 | 
|---|
| 320 | #define RS_WEB_STATE 2 | 
|---|
| 321 | #define RS_WEB_COUNTRY 20 | 
|---|
| 322 | #define RS_WEB_ZIP 10 | 
|---|
| 323 | #define RS_WP_URL 100 | 
|---|
| 324 | #define RS_WEB_TYPE 50 | 
|---|
| 325 | #define RS_WRHS_DESC 100 | 
|---|
| 326 | #define  100 | 
|---|
| 327 | #define RS_ZIPG_ZIP 5 | 
|---|
| 328 | #endif /* CONSTANTS_H */ | 
|---|
| 329 |  | 
|---|