| 1 | /* |
| 2 | * $Id: tpcd.h,v 1.2 2005/01/03 20:08:59 jms Exp $ |
| 3 | * |
| 4 | * Revision History |
| 5 | * =================== |
| 6 | * $Log: tpcd.h,v $ |
| 7 | * Revision 1.2 2005/01/03 20:08:59 jms |
| 8 | * change line terminations |
| 9 | * |
| 10 | * Revision 1.1.1.1 2004/11/24 23:31:47 jms |
| 11 | * re-establish external server |
| 12 | * |
| 13 | * Revision 1.1.1.1 2003/04/03 18:54:21 jms |
| 14 | * recreation after CVS crash |
| 15 | * |
| 16 | * Revision 1.1.1.1 2003/04/03 18:54:21 jms |
| 17 | * initial checkin |
| 18 | * |
| 19 | * |
| 20 | */ |
| 21 | /***************************************************************** |
| 22 | * Title: tpcd.h for TPC D |
| 23 | ***************************************************************** |
| 24 | */ |
| 25 | #define DFLT 0x0001 |
| 26 | #define OUTPUT 0x0002 |
| 27 | #define EXPLAIN 0x0004 |
| 28 | #define DBASE 0x0008 |
| 29 | #define VERBOSE 0x0010 |
| 30 | #define TIMING 0x0020 |
| 31 | #define LOG 0x0040 |
| 32 | #define QUERY 0x0080 |
| 33 | #define REFRESH 0x0100 |
| 34 | #define ANSI 0x0200 |
| 35 | #define SEED 0x0400 |
| 36 | #define 0x0800 |
| 37 | #define INIT 0x1000 |
| 38 | #define TERMINATE 0x2000 |
| 39 | #define DFLT_NUM 0x4000 |
| 40 | |
| 41 | /* |
| 42 | * general defines |
| 43 | */ |
| 44 | #define VTAG ':' /* flags a variable substitution */ |
| 45 | #define ofp stdout /* make the routine a filter */ |
| 46 | #define QDIR_TAG "DSS_QUERY" /* variable to point to queries */ |
| 47 | #define QDIR_DFLT "." /* and its default */ |
| 48 | |
| 49 | /* |
| 50 | * database portability defines |
| 51 | */ |
| 52 | #ifdef DB2 |
| 53 | #define GEN_QUERY_PLAN "SET CURRENT EXPLAIN SNAPSHOT ON;" |
| 54 | #define START_TRAN "" |
| 55 | #define END_TRAN "COMMIT WORK;" |
| 56 | #define SET_OUTPUT "" |
| 57 | #define SET_ROWCOUNT "--#SET ROWS_FETCH %d\n" |
| 58 | #define SET_DBASE "CONNECT TO %s ;\n" |
| 59 | #endif |
| 60 | |
| 61 | #ifdef INFORMIX |
| 62 | #define GEN_QUERY_PLAN "SET EXPLAIN ON;" |
| 63 | #define START_TRAN "BEGIN WORK;" |
| 64 | #define END_TRAN "COMMIT WORK;" |
| 65 | #define SET_OUTPUT "OUTPUT TO " |
| 66 | #define SET_ROWCOUNT "FIRST %d" |
| 67 | #define SET_DBASE "database %s ;\n" |
| 68 | #endif |
| 69 | |
| 70 | #ifdef ORACLE |
| 71 | #define GEN_QUERY_PLAN "" |
| 72 | #define START_TRAN "" |
| 73 | #define END_TRAN "" |
| 74 | #define SET_OUTPUT "" |
| 75 | #define SET_ROWCOUNT "where rownum <= %d;\n" |
| 76 | #define SET_DBASE "" |
| 77 | #endif |
| 78 | |
| 79 | #ifdef SQLSERVER |
| 80 | #define GEN_QUERY_PLAN "set showplan on\nset noexec on\ngo\n" |
| 81 | #define START_TRAN "begin transaction\ngo\n" |
| 82 | #define END_TRAN "commit transaction\ngo\n" |
| 83 | #define SET_OUTPUT "" |
| 84 | #define SET_ROWCOUNT "set rowcount %d\ngo\n\n" |
| 85 | #define SET_DBASE "use %s\ngo\n" |
| 86 | #endif |
| 87 | |
| 88 | #ifdef SYBASE |
| 89 | #define GEN_QUERY_PLAN "set showplan on\nset noexec on\ngo\n" |
| 90 | #define START_TRAN "begin transaction\ngo\n" |
| 91 | #define END_TRAN "commit transaction\ngo\n" |
| 92 | #define SET_OUTPUT "" |
| 93 | #define SET_ROWCOUNT "set rowcount %d\ngo\n\n" |
| 94 | #define SET_DBASE "use %s\ngo\n" |
| 95 | #endif |
| 96 | |
| 97 | #ifdef TDAT |
| 98 | #define GEN_QUERY_PLAN "EXPLAIN" |
| 99 | #define START_TRAN "BEGIN TRANSACTION" |
| 100 | #define END_TRAN "END TRANSACTION" |
| 101 | #define SET_OUTPUT ".SET FORMAT OFF\n.EXPORT REPORT file=" |
| 102 | #define SET_ROWCOUNT ".SET RETCANCEL ON\n.SET RETLIMIT %d\n" |
| 103 | #define SET_DBASE ".LOGON %s\n" |
| 104 | #endif |
| 105 | |
| 106 | #define MAX_VARS 8 /* max number of host vars in any query */ |
| 107 | #define QLEN_MAX 2048 /* max length of any query */ |
| 108 | #define QUERIES_PER_SET 22 |
| 109 | |
| 110 | EXTERN int flags; |
| 111 | EXTERN int s_cnt; |
| 112 | EXTERN char *osuff; |
| 113 | EXTERN int stream; |
| 114 | EXTERN char *lfile; |
| 115 | EXTERN char *ifile; |
| 116 | EXTERN char *tfile; |
| 117 | |
| 118 | #define MAX_PERMUTE 41 |
| 119 | #ifdef DECLARER |
| 120 | int rowcnt_dflt[QUERIES_PER_SET + 1] = |
| 121 | {-1,-1,100,10,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,100,-1,-1,100,-1}; |
| 122 | int rowcnt; |
| 123 | #define SEQUENCE(stream, query) permutation[stream % MAX_PERMUTE][query - 1] |
| 124 | #else |
| 125 | extern int rowcnt_dflt[]; |
| 126 | extern int rowcnt; |
| 127 | #endif |
| 128 | |