Commit 6dc7e55e authored by df@kahlann.erinye.com's avatar df@kahlann.erinye.com

Merge dfischer@bk-internal.mysql.com:/home/bk/mysql-5.1

into  kahlann.erinye.com:/home/df/mysql/build/mysql-5.1-build
parents 68b63d17 4e76f699
......@@ -212,6 +212,11 @@ bdb/dist/autom4te.cache/requests
bdb/dist/autom4te.cache/traces.0
bdb/dist/config.hin
bdb/dist/configure
bdb/dist/db.h
bdb/dist/db_config.h
bdb/dist/db_cxx.h
bdb/dist/db_int.h
bdb/dist/include.tcl
bdb/dist/tags
bdb/dist/template/db_server_proc
bdb/dist/template/gen_client_ret
......
......@@ -9,6 +9,9 @@ then
if test "$CCACHE_VER" == "2.4-gcov"
then
CCACHE_GCOV_VERSION_ENABLED=1
else
CCACHE_DISABLE=1
export CCACHE_DISABLE
fi
fi
export CCACHE_GCOV_VERSION_ENABLED
......
......@@ -27,7 +27,7 @@ SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
@sql_union_dirs@ unittest storage plugin \
@sql_server@ scripts @man_dirs@ tests \
netware @libmysqld_dirs@ \
mysql-test support-files @tools_dirs@ \
mysql-test support-files sql-bench @tools_dirs@ \
win
DIST_SUBDIRS = $(SUBDIRS) BUILD
......@@ -85,11 +85,14 @@ bin-dist: all
# Create initial database files for Windows installations.
dist-hook:
rm -rf `find $(distdir) -type d -name SCCS -print`
rm -f `find $(distdir) -type l -print`
if echo "$(distdir)" | grep -q '^/' ; then \
mkdir -p "$(distdir)/win" ; \
scripts/mysql_install_db --no-defaults --windows \
--basedir=$(top_srcdir) \
--datadir="$(distdir)/win/data"; \
else \
mkdir -p "$$(pwd)/$(distdir)/win" ; \
scripts/mysql_install_db --no-defaults --windows \
--basedir=$(top_srcdir) \
--datadir="$$(pwd)/$(distdir)/win/data"; \
......
......@@ -3437,7 +3437,6 @@ server_version_string(MYSQL *mysql)
{
char *bufp = buf;
MYSQL_RES *result;
MYSQL_ROW cur;
bufp = strnmov(buf, mysql_get_server_info(mysql), sizeof buf);
......
......@@ -2149,7 +2149,7 @@ continue_xml:
write_footer(sql_file);
my_fclose(sql_file, MYF(MY_WME));
}
DBUG_RETURN(num_fields);
DBUG_RETURN((uint) num_fields);
} /* get_table_structure */
......
......@@ -979,7 +979,9 @@ drop_schema(MYSQL *mysql, const char *db)
static int
run_scheduler(stats *sptr, statement *stmts, uint concur, ulonglong limit)
{
#ifndef __WIN__
uint x;
#endif
File lock_file;
struct timeval start_time, end_time;
thread_context con;
......
......@@ -3134,14 +3134,15 @@ void do_connect(struct st_command *command)
else if (!strncmp(con_options, "COMPRESS", 8))
con_compress= 1;
else
die("Illegal option to connect: %.*s", (int) (end - con_options), con_options);
die("Illegal option to connect: %.*s",
(int) (end - con_options), con_options);
/* Process next option */
con_options= end;
}
if (next_con == connections_end)
die("Connection limit exhausted, you can have max %ld connections",
(long) (sizeof(connections)/sizeof(struct st_connection)));
die("Connection limit exhausted, you can have max %d connections",
(int) (sizeof(connections)/sizeof(struct st_connection)));
if (find_connection_by_name(ds_connection_name.str))
die("Connection %s already exists", ds_connection_name.str);
......@@ -3462,10 +3463,10 @@ int read_line(char *buf, int size)
DBUG_RETURN(0);
}
else if ((c == '{' &&
(!my_strnncoll_simple(charset_info, "while", 5,
buf, min(5, p - buf), 0) ||
!my_strnncoll_simple(charset_info, "if", 2,
buf, min(2, p - buf), 0))))
(!my_strnncoll_simple(charset_info, (const uchar*) "while", 5,
(uchar*) buf, min(5, p - buf), 0) ||
!my_strnncoll_simple(charset_info, (const uchar*) "if", 2,
(uchar*) buf, min(2, p - buf), 0))))
{
/* Only if and while commands can be terminated by { */
*p++= c;
......
......@@ -337,6 +337,7 @@ rl_generic_bind (type, keyseq, data, map)
KEYMAP_ENTRY k;
k.function = 0;
k.type= 0;
/* If no keys to bind to, exit right away. */
if (!keyseq || !*keyseq)
......
......@@ -2510,7 +2510,7 @@ AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
dbug/Makefile scripts/Makefile include/Makefile dnl
tests/Makefile Docs/Makefile support-files/Makefile dnl
support-files/MacOSX/Makefile mysql-test/Makefile dnl
mysql-test/ndb/Makefile netware/Makefile dnl
mysql-test/ndb/Makefile netware/Makefile sql-bench/Makefile dnl
include/mysql_version.h plugin/Makefile win/Makefile)
AC_CONFIG_COMMANDS([default], , test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h)
......
This diff is collapsed.
......@@ -1052,8 +1052,10 @@ static int convert_file(REPLACE *rep, my_string name)
{
int error;
FILE *in,*out;
char dir_buff[FN_REFLEN], tempname[FN_REFLEN];
char link_name[FN_REFLEN], *org_name = name;
char dir_buff[FN_REFLEN], tempname[FN_REFLEN], *org_name = name;
#ifdef HAVE_READLINK
char link_name[FN_REFLEN];
#endif
File temp_file;
DBUG_ENTER("convert_file");
......
......@@ -46,8 +46,8 @@ typedef struct st_heapinfo /* Struct from heap_info */
ulong records; /* Records in database */
ulong deleted; /* Deleted records in database */
ulong max_records;
ulong data_length;
ulong index_length;
ulonglong data_length;
ulonglong index_length;
uint reclength; /* Length of one record */
int errkey;
ulonglong auto_increment;
......@@ -135,7 +135,7 @@ typedef struct st_heap_share
HP_BLOCK block;
HP_KEYDEF *keydef;
ulong min_records,max_records; /* Params to open */
ulong data_length,index_length,max_table_size;
ulonglong data_length,index_length,max_table_size;
uint key_stat_version; /* version to indicate insert/delete */
uint records; /* records */
uint blength; /* records rounded up to 2^n */
......@@ -187,7 +187,7 @@ typedef struct st_heap_create_info
{
uint auto_key; /* keynr [1 - maxkey] for auto key */
uint auto_key_type;
ulong max_table_size;
ulonglong max_table_size;
ulonglong auto_increment;
my_bool with_auto_increment;
} HP_CREATE_INFO;
......
......@@ -1136,8 +1136,8 @@ typedef char bool; /* Ordinary boolean values 0 1 */
#define set_timespec_nsec(ABSTIME,NSEC) \
{\
ulonglong now= my_getsystime() + (NSEC/100); \
(ABSTIME).tv_sec= (now / ULL(10000000)); \
(ABSTIME).tv_nsec= (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
(ABSTIME).tv_sec= (time_t) (now / ULL(10000000)); \
(ABSTIME).tv_nsec= (long) (now % ULL(10000000) * 100 + ((NSEC) % 100)); \
}
#endif /* !set_timespec_nsec */
#endif /* HAVE_TIMESPEC_TS_SEC */
......
......@@ -602,14 +602,13 @@ struct st_my_thread_var
};
extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const));
extern uint my_thread_end_wait_time;
#define my_thread_var (_my_thread_var())
#define my_errno my_thread_var->thr_errno
/*
Keep track of shutdown,signal, and main threads so that my_end() will not
report errors with them
*/
extern pthread_t shutdown_th, main_th, signal_th;
/* statistics_xxx functions are for not essential statistic */
#ifndef thread_safe_increment
......
......@@ -51,7 +51,8 @@ typedef struct st_tree_element {
typedef struct st_tree {
TREE_ELEMENT *root,null_element;
TREE_ELEMENT **parents[MAX_TREE_HEIGHT];
uint offset_to_key,elements_in_tree,size_of_element,memory_limit,allocated;
uint offset_to_key,elements_in_tree,size_of_element;
ulong memory_limit, allocated;
qsort_cmp2 compare;
void *custom_arg;
MEM_ROOT mem_root;
......@@ -61,7 +62,7 @@ typedef struct st_tree {
} TREE;
/* Functions on whole tree */
void init_tree(TREE *tree, uint default_alloc_size, uint memory_limit,
void init_tree(TREE *tree, ulong default_alloc_size, ulong memory_limit,
int size, qsort_cmp2 compare, my_bool with_delete,
tree_element_free free_element, void *custom_arg);
void delete_tree(TREE*);
......
......@@ -340,7 +340,7 @@ extern "C" {
my_bool my_net_init(NET *net, Vio* vio);
void my_net_local_init(NET *net);
void net_end(NET *net);
void net_clear(NET *net);
void net_clear(NET *net, my_bool clear_buffer);
my_bool net_realloc(NET *net, unsigned long length);
my_bool net_flush(NET *net);
my_bool my_net_write(NET *net,const char *packet,unsigned long len);
......
......@@ -175,8 +175,10 @@ void STDCALL mysql_server_end()
#ifdef EMBEDDED_LIBRARY
end_embedded_server();
#endif
/* If library called my_init(), free memory allocated by it */
finish_client_errs();
vio_end();
/* If library called my_init(), free memory allocated by it */
if (!org_my_init_done)
{
my_end(MY_DONT_FREE_DBUG);
......@@ -184,8 +186,11 @@ void STDCALL mysql_server_end()
DBUG_POP();
}
else
{
free_charsets();
mysql_thread_end();
vio_end();
}
mysql_client_init= org_my_init_done= 0;
#ifdef EMBEDDED_SERVER
if (stderror_file)
......@@ -2522,7 +2527,7 @@ int cli_stmt_execute(MYSQL_STMT *stmt)
DBUG_RETURN(1);
}
net_clear(net); /* Sets net->write_pos */
net_clear(net, 1); /* Sets net->write_pos */
/* Reserve place for null-marker bytes */
null_count= (stmt->param_count+7) /8;
if (my_realloc_str(net, null_count + 1))
......
......@@ -1059,7 +1059,7 @@ sub sleep_until_file_created ($$$) {
# Print extra message every 60 seconds
my $seconds= ($loop * $sleeptime) / 1000;
if ( $seconds > 1 and int($seconds) % 60 == 0 )
if ( $seconds > 1 and int($seconds * 10) % 600 == 0 )
{
my $left= $timeout - $seconds;
mtr_warning("Waited $seconds seconds for $pidfile to be created, " .
......
......@@ -1236,6 +1236,12 @@ sub command_line_setup () {
sub set_mtr_build_thread_ports($) {
my $mtr_build_thread= shift;
if ( lc($mtr_build_thread) eq 'auto' ) {
print "Requesting build thread... ";
$ENV{'MTR_BUILD_THREAD'} = $mtr_build_thread = mtr_require_unique_id_and_wait("/tmp/mysql-test-ports", 200, 299);
print "got ".$mtr_build_thread."\n";
}
# Up to two masters, up to three slaves
$opt_master_myport= $mtr_build_thread * 10 + 10000; # and 1
$opt_slave_myport= $opt_master_myport + 2; # and 3 4
......
......@@ -334,7 +334,7 @@ SET sql_quote_show_create= @old_sql_quote_show_create;
SET sql_mode= @old_sql_mode;
select @@max_heap_table_size;
@@max_heap_table_size
1047552
1048576
CREATE TABLE t1 (
a int(11) default NULL,
KEY a USING BTREE (a)
......
......@@ -610,4 +610,12 @@ select hex(a), b from t1;
hex(a) b
1 2
drop table t1;
create table t1(bit_field bit(2), int_field int, key a(bit_field));
insert into t1 values (1,2);
handler t1 open as t1;
handler t1 read a=(1);
bit_field int_field
 2
handler t1 close;
drop table t1;
End of 5.0 tests
--loose-debug=d,make_global_read_lock_block_commit_loop
--loose-debug=+d,make_global_read_lock_block_commit_loop
......@@ -261,4 +261,15 @@ insert into t1 (b, a) values ('2', '1');
select hex(a), b from t1;
drop table t1;
#
# type was not properly initalized, which caused key_copy to fail
#
create table t1(bit_field bit(2), int_field int, key a(bit_field));
insert into t1 values (1,2);
handler t1 open as t1;
handler t1 read a=(1);
handler t1 close;
drop table t1;
--echo End of 5.0 tests
......@@ -469,15 +469,6 @@
# Safe warnings, that may happen because of thread scheduling
#
{
dbug initialization
Memcheck:Leak
fun:malloc
fun:DbugMalloc
fun:ListAdd
fun:_db_set_
}
{
dbug initialization by kill_server
Memcheck:Leak
......
#
# Suppress some common (not fatal) errors in system libraries found by valgrind
#
#
# Pthread doesn't free all thread specific memory before program exists
#
{
pthread allocate_tls memory loss
Memcheck:Leak
fun:calloc
fun:_dl_allocate_tls
fun:allocate_stack
fun:pthread_create@@GLIBC_2.1
}
{
pthread allocate_dtv memory loss
Memcheck:Leak
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls_storage
fun:__GI__dl_allocate_tls
fun:pthread_create
}
{
pthread allocate_dtv memory loss second
Memcheck:Leak
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls
fun:pthread_create*
}
{
pthread allocate_dtv memory loss second
Memcheck:Leak
fun:calloc
fun:allocate_dtv
fun:_dl_allocate_tls
fun:pthread_create*
}
{
pthread memalign memory loss
Memcheck:Leak
fun:memalign
fun:_dl_allocate_tls_storage
fun:__GI__dl_allocate_tls
fun:pthread_create
}
{
pthread pthread_key_create
Memcheck:Leak
fun:malloc
fun:*
fun:*
fun:pthread_key_create
fun:my_thread_global_init
}
{
pthread strstr uninit
Memcheck:Cond
fun:strstr
obj:/lib/tls/libpthread.so.*
obj:/lib/tls/libpthread.so.*
fun:call_init
fun:_dl_init
obj:/lib/ld-*.so
}
{
pthread strstr uninit
Memcheck:Cond
fun:strstr
obj:/lib/tls/libpthread.so.*
obj:/lib/tls/libpthread.so.*
fun:call_init
fun:_dl_init
obj:/lib/ld-*.so
}
{
pthread errno
Memcheck:Leak
fun:calloc
fun:_dlerror_run
fun:dlsym
fun:__errno_location
}
#
# Warnings in libz becasue it works with aligned memory(?)
#
{
libz tr_flush_block
Memcheck:Cond
fun:_tr_flush_block
fun:deflate_slow
fun:deflate
fun:do_flush
fun:gzclose
}
{
libz tr_flush_block2
Memcheck:Cond
fun:_tr_flush_block
fun:deflate_slow
fun:deflate
fun:compress2
}
{
libz longest_match
Memcheck:Cond
fun:longest_match
fun:deflate_slow
fun:deflate
fun:do_flush
}
{
libz longest_match2
Memcheck:Cond
fun:longest_match
fun:deflate_slow
fun:deflate
fun:compress2
}
{
libz deflate
Memcheck:Cond
obj:*/libz.so.*
obj:*/libz.so.*
fun:deflate
fun:compress2
}
{
libz deflate2
Memcheck:Cond
obj:*/libz.so.*
obj:*/libz.so.*
fun:deflate
obj:*/libz.so.*
fun:gzflush
}
{
libz deflate3
Memcheck:Cond
obj:*/libz.so.*
obj:*/libz.so.*
fun:deflate
fun:do_flush
}
#
# Warning from my_thread_init becasue mysqld dies before kill thread exists
#
{
my_thread_init kill thread memory loss second
Memcheck:Leak
fun:calloc
fun:my_thread_init
fun:kill_server_thread
}
#
# Warning when printing stack trace (to suppress some not needed warnings)
#
{
vprintf on stacktrace
Memcheck:Cond
fun:vfprintf
fun:uffered_vfprintf
fun:vfprintf
fun:fprintf
fun:print_stacktrace
}
......@@ -42,7 +42,7 @@ base64_needed_encoded_length(int length_of_data)
int
base64_needed_decoded_length(int length_of_encoded_data)
{
return (int)ceil(length_of_encoded_data * 3 / 4);
return (int) ceil(length_of_encoded_data * 3 / 4);
}
......@@ -153,7 +153,7 @@ pos(unsigned char c)
Number of bytes written at 'dst' or -1 in case of failure
*/
int
base64_decode(const char *const src_base, size_t const len,
base64_decode(const char *src_base, size_t len,
void *dst, const char **end_ptr)
{
char b[3];
......
......@@ -30,7 +30,10 @@ pthread_key(struct st_my_thread_var, THR_KEY_mysys);
#endif /* USE_TLS */
pthread_mutex_t THR_LOCK_malloc,THR_LOCK_open,
THR_LOCK_lock,THR_LOCK_isam,THR_LOCK_myisam,THR_LOCK_heap,
THR_LOCK_net, THR_LOCK_charset;
THR_LOCK_net, THR_LOCK_charset, THR_LOCK_threads;
pthread_cond_t THR_COND_threads;
uint THR_thread_count= 0;
uint my_thread_end_wait_time= 5;
#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
pthread_mutex_t LOCK_localtime_r;
#endif
......@@ -79,7 +82,7 @@ my_bool my_thread_global_init(void)
#endif
#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
/*
Set mutex type to "errorcheck" a.k.a "adaptive"
Set mutex type to "errorcheck"
*/
pthread_mutexattr_init(&my_errorcheck_mutexattr);
pthread_mutexattr_settype(&my_errorcheck_mutexattr,
......@@ -94,7 +97,9 @@ my_bool my_thread_global_init(void)
pthread_mutex_init(&THR_LOCK_heap,MY_MUTEX_INIT_FAST);
pthread_mutex_init(&THR_LOCK_net,MY_MUTEX_INIT_FAST);
pthread_mutex_init(&THR_LOCK_charset,MY_MUTEX_INIT_FAST);
#if defined( __WIN__)
pthread_mutex_init(&THR_LOCK_threads,MY_MUTEX_INIT_FAST);
pthread_cond_init(&THR_COND_threads, NULL);
#if defined( __WIN__) || defined(OS2)
win_pthread_init();
#endif
#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
......@@ -114,6 +119,27 @@ my_bool my_thread_global_init(void)
void my_thread_global_end(void)
{
struct timespec abstime;
my_bool all_threads_killed= 1;
set_timespec(abstime, my_thread_end_wait_time);
pthread_mutex_lock(&THR_LOCK_threads);
while (THR_thread_count > 0)
{
int error= pthread_cond_timedwait(&THR_COND_threads, &THR_LOCK_threads,
&abstime);
if (error == ETIMEDOUT || error == ETIME)
{
if (THR_thread_count)
fprintf(stderr,
"Error in my_thread_global_end(): %d threads didn't exit\n",
THR_thread_count);
all_threads_killed= 0;
break;
}
}
pthread_mutex_unlock(&THR_LOCK_threads);
pthread_key_delete(THR_KEY_mysys);
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_destroy(&my_fast_mutexattr);
......@@ -129,6 +155,11 @@ void my_thread_global_end(void)
pthread_mutex_destroy(&THR_LOCK_heap);
pthread_mutex_destroy(&THR_LOCK_net);
pthread_mutex_destroy(&THR_LOCK_charset);
if (all_threads_killed)
{
pthread_mutex_destroy(&THR_LOCK_threads);
pthread_cond_destroy (&THR_COND_threads);
}
#if !defined(HAVE_LOCALTIME_R) || !defined(HAVE_GMTIME_R)
pthread_mutex_destroy(&LOCK_localtime_r);
#endif
......@@ -140,10 +171,23 @@ void my_thread_global_end(void)
static long thread_id=0;
/*
Allocate thread specific memory for the thread, used by mysys and dbug
SYNOPSIS
my_thread_init()
NOTES
We can't use mutex_locks here if we are using windows as
we may have compiled the program with SAFE_MUTEX, in which
case the checking of mutex_locks will not work until
the pthread_self thread specific variable is initialized.
This function may called multiple times for a thread, for example
if one uses my_init() followed by mysql_server_init().
RETURN
0 ok
1 Fatal error; mysys/dbug functions can't be used
*/
my_bool my_thread_init(void)
......@@ -154,9 +198,6 @@ my_bool my_thread_init(void)
#ifdef EXTRA_DEBUG_THREADS
fprintf(stderr,"my_thread_init(): thread_id=%ld\n",pthread_self());
#endif
#if !defined(__WIN__) || defined(USE_TLS) || ! defined(SAFE_MUTEX)
pthread_mutex_lock(&THR_LOCK_lock);
#endif
#if !defined(__WIN__) || defined(USE_TLS)
if (my_pthread_getspecific(struct st_my_thread_var *,THR_KEY_mysys))
......@@ -174,7 +215,7 @@ my_bool my_thread_init(void)
}
pthread_setspecific(THR_KEY_mysys,tmp);
#else
#else /* defined(__WIN__) && !(defined(USE_TLS) */
/*
Skip initialization if the thread specific variable is already initialized
*/
......@@ -182,7 +223,6 @@ my_bool my_thread_init(void)
goto end;
tmp= &THR_KEY_mysys;
#endif
tmp->id= ++thread_id;
#if defined(__WIN__) && defined(EMBEDDED_LIBRARY)
tmp->thread_self= (pthread_t)getpid();
#endif
......@@ -190,22 +230,35 @@ my_bool my_thread_init(void)
pthread_cond_init(&tmp->suspend, NULL);
tmp->init= 1;
pthread_mutex_lock(&THR_LOCK_threads);
tmp->id= ++thread_id;
++THR_thread_count;
pthread_mutex_unlock(&THR_LOCK_threads);
end:
#if !defined(__WIN__) || defined(USE_TLS) || ! defined(SAFE_MUTEX)
pthread_mutex_unlock(&THR_LOCK_lock);
#endif
return error;
}
/*
Deallocate memory used by the thread for book-keeping
SYNOPSIS
my_thread_end()
NOTE
This may be called multiple times for a thread.
This happens for example when one calls 'mysql_server_init()'
mysql_server_end() and then ends with a mysql_end().
*/
void my_thread_end(void)
{
struct st_my_thread_var *tmp;
tmp= my_pthread_getspecific(struct st_my_thread_var*,THR_KEY_mysys);
#ifdef EXTRA_DEBUG_THREADS
fprintf(stderr,"my_thread_end(): tmp=%p,thread_id=%ld\n",
tmp,pthread_self());
fprintf(stderr,"my_thread_end(): tmp: 0x%lx thread_id=%ld\n",
(long) tmp, pthread_self());
#endif
if (tmp && tmp->init)
{
......@@ -227,6 +280,18 @@ void my_thread_end(void)
#else
tmp->init= 0;
#endif
/*
Decrement counter for number of running threads. We are using this
in my_thread_global_end() to wait until all threads have called
my_thread_end and thus freed all memory they have allocated in
my_thread_init() and DBUG_xxxx
*/
pthread_mutex_lock(&THR_LOCK_threads);
DBUG_ASSERT(THR_thread_count != 0);
if (--THR_thread_count == 0)
pthread_cond_signal(&THR_COND_threads);
pthread_mutex_unlock(&THR_LOCK_threads);
}
/* The following free has to be done, even if my_thread_var() is 0 */
#if !defined(__WIN__) || defined(USE_TLS)
......@@ -282,7 +347,7 @@ const char *my_thread_name(void)
if (!tmp->name[0])
{
long id=my_thread_id();
sprintf(name_buff,"T@%lu", id);
sprintf(name_buff,"T@%ld", id);
strmake(tmp->name,name_buff,THREAD_NAME_SIZE);
}
return tmp->name;
......
......@@ -52,7 +52,7 @@ my_vle_encode(byte* out, my_size_t max, ulong n)
do
{
*ptr++= (n & 0x7F);
*ptr++= (byte) (n & 0x7F);
n>>= 7;
}
while (n > 0);
......
......@@ -185,7 +185,7 @@ my_off_t my_get_ptr(byte *ptr, uint pack_length)
case 4: pos= (my_off_t) mi_uint4korr(ptr); break;
case 3: pos= (my_off_t) mi_uint3korr(ptr); break;
case 2: pos= (my_off_t) mi_uint2korr(ptr); break;
case 1: pos= (my_off_t) mi_uint2korr(ptr); break;
case 1: pos= (my_off_t) *(uchar*) ptr; break;
default: DBUG_ASSERT(0);
}
return pos;
......
......@@ -84,7 +84,7 @@ static void rb_delete_fixup(TREE *tree,TREE_ELEMENT ***parent);
static int test_rb_tree(TREE_ELEMENT *element);
#endif
void init_tree(TREE *tree, uint default_alloc_size, uint memory_limit,
void init_tree(TREE *tree, ulong default_alloc_size, ulong memory_limit,
int size, qsort_cmp2 compare, my_bool with_delete,
tree_element_free free_element, void *custom_arg)
{
......@@ -128,7 +128,7 @@ void init_tree(TREE *tree, uint default_alloc_size, uint memory_limit,
}
if (!(tree->with_delete=with_delete))
{
init_alloc_root(&tree->mem_root, default_alloc_size,0);
init_alloc_root(&tree->mem_root, (uint) default_alloc_size, 0);
tree->mem_root.min_malloc=(sizeof(TREE_ELEMENT)+tree->size_of_element);
}
DBUG_VOID_RETURN;
......
......@@ -97,7 +97,7 @@ mkdir $BASE $BASE/bin $BASE/docs \
$BASE/mysql-test/extra/binlog_tests $BASE/mysql-test/extra/rpl_tests
if [ $BASE_SYSTEM != "netware" ] ; then
mkdir $BASE/share/mysql $BASE/tests $BASE/man \
mkdir $BASE/share/mysql $BASE/tests $BASE/sql-bench $BASE/man \
$BASE/man/man1 $BASE/man/man8 $BASE/data $BASE/data/mysql $BASE/data/test
chmod o-rwx $BASE/data $BASE/data/*
......@@ -275,7 +275,8 @@ if [ $BASE_SYSTEM != "netware" ] ; then
mv $BASE/support-files/binary-configure $BASE/configure
chmod a+x $BASE/bin/* $BASE/scripts/* $BASE/support-files/mysql-* \
$BASE/support-files/mysql.server $BASE/configure
rm -f $BASE/lib/*.la
$CP -r sql-bench/* $BASE/sql-bench
rm -f $BASE/sql-bench/*.sh $BASE/sql-bench/Makefile* $BASE/lib/*.la
rm -f $BASE/bin/*.sql
fi
......@@ -320,6 +321,7 @@ fi
# Clean up if we did this from a bk tree
if [ -d $BASE/share/SCCS ] ; then
find $BASE/share -name SCCS -print | xargs rm -rf
find $BASE/sql-bench -name SCCS -print | xargs rm -rf
fi
# NDB Cluster
......
......@@ -15,7 +15,6 @@
#define snprintf _snprintf
#define SIGKILL 9
#define SHUT_RDWR 0x2
/*TODO: fix this */
#define PROTOCOL_VERSION 10
......
Access 97 tested through ODBC 1998.04.19, by monty@mysql.com
Access 97 has a bug when on executes a SELECT follwed very fast with a
DROP TABLE or a DROP INDEX command:
[Microsoft][ODBC Microsoft Access 97 Driver] The database engine couldn't lock table 'crash_q' because it's already in use by another person or process. (SQL-S1
000)(DBD: st_execute/SQLExecute err=-1)
Debugging SQL queries in Access 97 is terrible because most error messages
are of type:
Error: [Microsoft][ODBC Microsoft Access 97 Driver] Syntax error in CREATE TABLE statement. (SQL-37000)(DBD: st_prepare/SQLPrepare err=-1)
Which doesn't tell a thing!
--------------
Access 2000 tested through ODBC 2000.01.02, by monty@mysql.com
crash-me takes a LONG time to run under Access 2000.
The '1+NULL' and the 'OR and AND in WHERE' tests kills
Activestate Perl, build 521, DBI-DBC with an OUT OF MEMORY error.
The later test also kills perl/access with some internal errors.
To go around this one must run crash-me repeatedly with the --restart option.
Testing of the 'constant string size' (< 500K) takes a LOT of memory
in Access (at least 250M on My computer).
Testing of number of 'simple expressions' takes REALLY a lot of time
and memory; At some point I was up to 350M of used memory!
To fix the above, I modified crash-me to have lower max limits in the
above tests.
Benchmarks (under Win98):
Running the connect-test will take up all available memory and this
will not be freed even after quitting perl! There is probably some
bug in the Access connect code that eats memory!
I did not spend much time for tuning crash-me or the limits file. In short,
here's what I did:
- Put engine into ANSI SQL mode by using the following odbc.ini:
[ODBC Data Sources]
test
[test]
ServerDB=test
ServerNode=
SQLMode=3
- Grabbed the db_Oracle package and copied it to db_Adabas
- Implemented a 'version' method.
- Ran crash-me with the --restart option; it failed when guessing the
query_size.
- Reran crash-me 3 or 4 times until it succeeded. At some point it
justified its name; I had to restart the Adabas server in the
table name length test ...
- Finally crash-me succeeded.
That's it, folks. The benchmarks have been running on my P90 machine,
32 MB RAM, with Red Hat Linux 5.0 (Kernel 2.0.33, glibc-2.0.7-6).
Mysql was version 3.21.30, Adabas was version 6.1.15.42 (the one from
the promotion CD of 1997). I was using X11 and Emacs while benchmarking.
An interesting note: The mysql server had 4 processes, the three usual
ones and a process for serving me, each about 2 MB RAM, including a
shared memory segment of about 900K. Adabas had 10 processes running from
the start, each about 16-20 MB, including a shared segment of 1-5 MB. You
guess which one I prefer ... :-)
Jochen Wiedmann, joe@ispsoft.de
*****************************************************************
NOTE:
This is an old comment about how it was to run crash-me on empress
the first time. I think it was on Empress 6.0
*****************************************************************
start testing empress ...
added a nice line for the max join ....
strip the as out of the from field ...
that's working on empress ....
at this moment with ....
max constant string size in where .... taking a lot of memory ...
at this moment (it's still growing just waiting till it stops ..) 99mb ..
sorry it started growing again ...
max 170 mb ... then it gives an error ...
Yes it crashed .....
at max constant string size in where ... with IOT trap/Abort(core dumped) :-)
nice isn't it ... hope it saved the things ....
I outcommented the sig story because I could see how the script is running
and I wasn't sure if SIG{PIPE} ='DEFAULT' ... is working ...
restarting with limit 8333xxx ... couldn't see it any more ...
query is printed ...(200000 lines ..). mmm Nice IOT trap/Abort ...
and again ..and again ...
aha ... and now it's going further ...
max constant string string size in select: ...
taking 100 mb
crashing over and over again ....
max simple expressions ...
is taking ... 82 mb ...
mmmm this is taking very very very long .... after 10 minutes I will kill it and run it again ... I think he can't proces this query that fast ... and will crash any way ...
still growing very slow to the 90 mb ...
killed it ... strange is ... it don't react on ctrl-c ... but kill 15 does work
mmm still bussy with killing his self ... memory is growing to 128 mb ...
sorry .. 150 mb .. and then the output ..
maybe something for the extra things for crash-me ...
if debug ....
if length $query > 300 ... just print $errstr .. else print $query + $errstr ..
at this moment he is still bussy printing ....
first clear all locks ... with empadm test lockclear ... else it will give me
the error with a lock ...
restarting at 4194297 .... mmm a bit high I think ...
after 5 minutes I will kill it ...
mmm have to kill it again ... took 30 mb ..now growing to 42 mb ..
restarting at 838859 ... hope this will crash normaly ... :-)
I will give it again 5 minutes to complete ...
taking 12 mb .... will kill it ... after 4 minutes ....
restarting at 167771 ... taking 6 mb ... give it again 5 minutes ....
will kill it again ... else it becomes to late tonight ...
mmm started with 33xxxx and it crashes ...:-) yes ...
can't we build in a function which will restart his self again ...
mmmm this is really boring .. start it over and over again ...
WHO .... NICE >>>>
Restarting this with high limit: 4097
.................
*** Program Bug *** setexpr: unknown EXPR = 1254 (4e6)
isn't it ... starting it again ...
finally finished with 4092 ....
now max big expression .....
directly taking .. 85 mb ... give it again 5 minutes ...
mmm I am going to kill it again ... mmm it grows to 146 mb ...
restarting with 1026 ... taking 25 mb ..
won't give him that long ... because it will crash any way (just a ques) ..
killed it ...
restarting at 205 ... hope this will work ....
won't think so ... give it 2 minutes ... taking 12 mb ...
killed it ...restarting at ... 40 ... yes it crashes ...
7 is crashing ... 1 ....is good .. finaly ... a long way ...
now max stacked expressions ....
taking 80 mb ... mmmm what sort of test is this ...it looks more like a harddisk test .. but it crashes .. nice ...
mmm a YACC overflow ... that's a nice error ...
but it goes on ... yep it didn't crashed just an error ...
mmm
my patch for the join didn't work ... let's take a look what goes wrong ...
saw it ... forgot some little thing .. mm not .. them ... another little typo
mmm again a really nice bug ...
Restarting this with high limit: 131
...
*** Program Bug *** xflkadd: too many read locks
them the lock forgotten ....
mmmm bigger problem ...
with empadm test lockinfo ... gives ...
*** System Problem *** no more clients can be registered in coordinator
*** User Error *** '/usr/local/empress/rdbms/bin/test' is not a valid database
that's really really nice ....
hmmm after coordclear ... it's fine again ...
strange ...
after restarting it again the script ... it is going further ....
the overflow trick is nice and working good ...
now I have table 'crash_q' does not exist for every thing ...
normal ...???? mmm went after all good .. so I think it's normal ...
mmmm a lot of table 'crash_q' does not exist ... again ...
sometimes when the overflow is there ... I restart it and it is saying ...
restarting at xxxx that's not good ... but hey ... what the hack ...
maybe that's good because if one test run's more then 200 times ....
it won't exceeds that test ...
....
yes finally the end of crash-me ...
at last ... crash-me safe: yes ...
yep don't think so he ....
# This file describes how to run benchmarks and crash-me with FrontBase
Installed components:
- FrontBase-2.1-8.rpm
(had to run with rpm -i --nodeps; the rpm wanted libreadline.so.4.0,
but only libreadline.so.4.1 was available)
- DBD-FB-0.03.tar.gz
(perl Makefile.Pl;
make;
make test;
make install;)
- DBI-1.14.tar.gz
(perl Makefile.Pl;
make;
make test;
make install;)
- Msql-Mysql-modules-1.2215.tar.gz
(perl Makefile.Pl;
make;
make test;
make install;)
After installations:
- cd /etc/rc.d
FBWeb start
FrontBase start
- cd /usr/local/mysql/sql-bench
- FBExec &
- FrontBase test
crash-me:
There were a lot of troubles running the crash-me; FrontBase core
dumped several tens of times while crash-me was trying to determine
the maximum values in different areas.
The crash-me program itself was also needed to be tuned quite a lot
for FB. There were also some bugs/lacking features in the crash-me
program, which are now fixed to the new version.
After we finally got the limits, we runned the benchmarks.
benchmarks:
Problems again. Frontbase core dumped with every part of the
benchmark (8/8) tests. After a lot of fine-tuning we got the
benchmarks to run through. The maximum values had to be dropped
down a lot in many of the tests.
The benchmarks were run with the following command:
perl run-all-tests --server=frontbase --host=prima
--cmp=frontbase,mysql --tcpip --log
*****************************************************************
NOTE:
I, Monty, pulled this comment out from the public mail I got from
Honza when he published the first crash-me run on Informix
*****************************************************************
Also attached are diffs from server-cfg and crash-me -- some of
them are actual bugs in the code, some add extensions for Informix,
some of the comment-outs were necessary to finish the test. Some of
the problematic pieces that are commented out sent Informix to
veeeery long load 1 on the machine (max_conditions for example), so
could be considered crashes, but I'd prefer that someone checks the
code before giving out such a conclusion.
Some of the code that is commented out failed with some other SQL
error message which might mean a problem with the sequence of commands
in crash-me. Interesting thing, some of the tests failed for the
first time but in the next or third run went OK, so the results are
results of more iterations (like column doesn't exist in the first
try but the second pass goes OK).
I'd like to hear your comments on the bug fixes and Informix specific
code before we go into debugging the problems.
Yours,
Honza Pazdziora
Running crash-me on Interbase:
I
- got opensource version of interbase 6.0.1
(both mode, classic and superserver),
- set up DBD::InterBase from cpan,
- created database "test" and set sql_dialect for that database to 3
- executed crash-me for both interbase's models (classic and superserver).
There were some problems during the execution:
1) Sometimes client side got SIGSEGV , At that moment server side
writes
gds__alloc: non-positive size allocation request
to log file.
This problem has both models. I am not shure if it's interbase or
DBD:InterBase problem (though DBD::InterBase made all nesessary
tests during the installation without any problem)
2) In "superserver" mode ibserver several times died (and ibguard restarted it)
# This file describes how to run MySQL benchmarks with MySQL
#
# The test was run on a Intel Xeon 2x 550 Mzh machine with 1G memory,
# 9G hard disk. The OS is Suse 6.4, with Linux 2.2.14 compiled with SMP
# support
# Both the perl client and the database server is run
# on the same machine. No other cpu intensive process was used during
# the benchmark.
#
#
# First, install MySQL from RPM or compile it according to the
# recommendations in the MySQL manual
#
# Start MySQL
bin/safe_mysqld -O key_buffer=16M &
#
# Now we run the test that can be found in the sql-bench directory in the
# MySQL 3.23 source distribution with and without --fast
#
# Note that if you want to make a results that is comparead to some database,
# You should add "--cmp=databasename" as an extra option to the test
#
$CMP=--cmp=pg
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, key_buffer=16M" $CMP
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, key_buffer=16M" --fast $CMP
# If you want to store the results in a output/RUN-xxx file, you should
# repeate the benchmark with the extra option --log --use-old-result
# This will create a the RUN file based of the previous results
#
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, key_buffer=16M" --log --use-old-result $CMP
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, key_buffer=16M" --fast --log --use-old-result $CMP
# This file describes how to run MySQL benchmark suite with PostgreSQL
#
# WARNING:
#
# Don't run the --fast test on a PostgreSQL 7.1.1 database on
# which you have any critical data; During one of our test runs
# PostgreSQL got a corrupted database and all data was destroyed!
# When we tried to restart postmaster, It died with a
# 'no such file or directory' error and never recovered from that!
#
# Another time vacuum() filled our system disk with had 6G free
# while vaccuming a table of 60 M.
#
# WARNING
# The test was run on a Intel Xeon 2x 550 Mzh machine with 1G memory,
# 9G hard disk. The OS is Suse 7.1, with Linux 2.4.2 compiled with SMP
# support
# Both the perl client and the database server is run
# on the same machine. No other cpu intensive process was used during
# the benchmark.
#
# During the test we run PostgreSQL with -o -F, not async mode (not ACID safe)
# because when we started postmaster without -o -F, PostgreSQL log files
# filled up a 9G disk until postmaster crashed.
# We did however notice that with -o -F, PostgreSQL was a magnitude slower
# than when not using -o -F.
#
# First, install postgresql-7.1.2.tar.gz
# Adding the following lines to your ~/.bash_profile or
# corresponding file. If you are using csh, use ´setenv´.
export POSTGRES_INCLUDE=/usr/local/pg/include
export POSTGRES_LIB=/usr/local/pg/lib
PATH=$PATH:/usr/local/pg/bin
MANPATH=$MANPATH:/usr/local/pg/man
#
# Add the following line to /etc/ld.so.conf:
#
/usr/local/pg/lib
# and run:
ldconfig
# untar the postgres source distribution, cd to postgresql-*
# and run the following commands:
CFLAGS=-O3 ./configure
gmake
gmake install
mkdir /usr/local/pg/data
chown postgres /usr/local/pg/data
su - postgres
/usr/local/pg/bin/initdb -D /usr/local/pg/data
/usr/local/pg/bin/postmaster -o -F -D /usr/local/pg/data &
/usr/local/pg/bin/createdb test
exit
#
# Second, install packages DBD-Pg-1.00.tar.gz and DBI-1.18.tar.gz,
# available from http://www.perl.com/CPAN/
export POSTGRES_LIB=/usr/local/pg/lib/
export POSTGRES_INCLUDE=/usr/local/pg/include/postgresql
perl Makefile.PL
make
make install
#
# Now we run the test that can be found in the sql-bench directory in the
# MySQL 3.23 source distribution.
#
# We did run two tests:
# The standard test
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512M, pg started with -o -F" --user=postgres --server=pg --cmp=mysql
# When running with --fast we run the following vacuum commands on
# the database between each major update of the tables:
# vacuum anlyze table
# vacuum table
# or
# vacuum analyze
# vacuum
# The time for vacuum() is accounted for in the book-keeping() column, not
# in the test that updates the database.
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512M, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --fast
# If you want to store the results in a output/RUN-xxx file, you should
# repeate the benchmark with the extra option --log --use-old-result
# This will create a the RUN file based of the previous results
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512M, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --log --use-old-result
run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512MG, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --fast --log --use-old-result
# Between running the different tests we dropped and recreated the PostgreSQL
# database to ensure that PostgreSQL should get a clean start,
# independent of the previous runs.
*****************************************************************
NOTE:
This is an old comment about how it was to run crash-me on postgreSQL
the first time. I think it was on pg 6.2
*****************************************************************
mmm memory use of postgres is very very much ...
at this moment I am testing it ...
and the tables in join: is taking 200MB memory ...
I am happy to have 400mb swap ... so he can do have it ...
but other programs will give some errors ...
just a second ago ... vim core dumped .. XFree crashed full ... to the prompt
the menu bar of redhat disappeared ....
at this momemt the max is 215 mb memore postgres is taking ...
the problem with postgres is the following error:
PQexec() -- Request was sent to backend, but backend closed the channel before r
esponding. This probably means the backend terminated abnormally before or whil
e processing the request
I think we can solve this with a goto command ... to go back again ... after
the connect again ...
postgres is taking 377 mb .... mmm allmost out of memory ... 53mb left ..
mmm it's growing ... 389 mb ..393 mb ... 397 mb .. better can wait for the out of memory ... i think 409 412 max ...
ps added some nice code for the channel closing ...
it must now do again the query when the error is the above error ...
hopes this helps ...
after crashing my X again ...
I stopped testing postgres
This diff is collapsed.
This diff is collapsed.
'ATL','WILLIAM B. HARTSFIELD','ATLANTA,GEORGIA','GA','USA','EST'
'BOS','LOGAN INTERNATIONAL','BOSTON,MASSACHUSETTS','MA','USA','EST'
'BWI','BALTIMORE/WASHINGTON INTERNATIONAL','BALTIMORE,MARYLAND','MD','USA','EST'
'DEN','STAPLETON INTERNATIONAL','DENVER,COLORADO','CO','USA','MST'
'DFW','DALLAS/FORT WORTH INTERNATIONAL','DALLAS/FT. WORTH,TEXAS','TX','USA','CST'
'OAK','METROPOLITAN OAKLAND INTERNATIONAL','OAKLAND,CALIFORNIA','CA','USA','PST'
'PHL','PHILADELPHIA INTERNATIONAL','PHILADELPHIA PA/WILM\'TON,DE','PA','USA','EST'
'PIT','GREATER PITTSBURGH','PITTSBURGH,PENNSYLVANIA','PA','USA','EST'
'SFO','SAN FRANCISCO INTERNATIONAL','SAN FRANCISCO,CALIFORNIA','CA','USA','PST'
'MATL','ATL',9.0,'S',45
'BBOS','BOS',3.0,'NE',30
'DDFW','DFW',13.0,'NW',70
'FDFW','DFW',17.0,'E',55
'DDEN','DEN',6.5,'NE',30
'PPHL','PHL',7.0,'SW',35
'PPIT','PIT',17.0,'W',55
'OOAK','OAK',10.0,'SE',15
'OOAK','SFO',24.0,'SW',60
'SSFO','SFO',8.0,'SE',30
'SSFO','OAK',18.0,'SE',60
'WWAS','BWI',32.0,'NE',50
'BBWI','BWI',10.0,'S',25
'','',0.0,'',0
'MATL','ATLANTA','GA','USA','EST'
'BBOS','BOSTON','MA','USA','EST'
'DDFW','DALLAS','TX','USA','CST'
'FDFW','FORT WORTH','TX','USA','CST'
'DDEN','DENVER','CO','USA','MST'
'PPHL','PHILADELPHIA','PA','USA','EST'
'PPIT','PITTSBURGH','PA','USA','EST'
'SSFO','SAN FRANCISCO','CA','USA','PST'
'OOAK','OAKLAND','CA','USA','PST'
'WWAS','WASHINGTON','DC','USA','EST'
'BBWI','BALTIMORE','MD','USA','EST'
'R',1,'SUPERSONIC AIRCRAFT'
'P',2,'FIRST CLASS PREMIUM'
'F',3,'FIRST CLASS'
'A',4,'FIRST CLASS DISCOUNTED'
'J',5,'BUSINESS CLASS PREMIUM'
'C',6,'BUSINESS CLASS'
'D',7,'BUSINESS CLASS DISCOUNTED'
'S',8,'STANDARD CLASS'
'W',9,'COACH ECONOMY CLASS PREMIUM'
'FN',10,'FIRST CLASS NIGHT SERVICE'
'Y',11,'COACH ECONOMY CLASS'
'CN',12,'BUSINESS CLASS NIGHT SERVICE'
'YN',13,'COACH ECONOMY CLASS NIGHT SERVICE'
'B',14,'COACH ECONOMY CLASS DISCOUNTED'
'H',15,'COACH ECONOMY CLASS DISCOUNTED'
'Q',16,'COACH ECONOMY CLASS DISCOUNTED'
'M',17,'COACH ECONOMY CLASS DISCOUNTED'
'T',18,'COACH ECONOMY CLASS DISCOUNTED'
'K',19,'THRIFT ECONOMY CLASS'
'L',20,'THRIFT ECONOMY CLASS DISCOUNTED'
'V',21,'THRIFT ECONOMY CLASS DISCOUNTED'
'BN',22,'COACH ECONOMY CLASS DISCOUNTED NIGHT SERVICE'
'QN',23,'COACH ECONOMY CLASS DISCOUNTED NIGHT SERVICE'
'KN',24,'THRIFT ECONOMY CLASS DISCOUNTED NIGHT SERVICE'
'VN',25,'THRIFT ECONOMY CLASS DISCOUNTED NIGHT SERVICE'
'U',26,'SHUTTLE SERVICE (NO RESERVATION NEEDED - SEAT GUARANTEED)'
'E',27,'SHUTTLE SERVICE (NO RESERVATION ALLOWED - SEAT TO BE CONFIRMED AT CHECK-IN)'
'-','A DASH IN A DAY CODE POSITION INDICATES NON-OPERATION ON THAT DAY'
'AP','ADVANCE PURCHASE EXCURSION FARE'
'CAD','CANADIAN DOLLARS'
'EX','EXCURSION FARE'
'H','HIGHEST LEVEL OF FARE HAVING MORE THAN ONE SEASONAL LEVEL'
'J','THIRD LEVEL OF FARE HAVING MORE THAN THREE SEASONAL LEVELS'
'K','SECOND LEVEL OF A FARE HAVING MORE THAN TWO SEASONAL LEVELS'
'L','LOWEST LEVEL OF FARE HAVING MORE THAN ONE SEASONAL LEVEL'
'MEP','MEXICAN PESOS'
'O','SECOND LEVEL OF A FARE HAVING MORE THAN TWO SEASONAL LEVELS'
'N','NIGHT SERVICE'
'VU','VISIT USA FARE'
'W','WHEN USED AS PART OF A FARE CLASS SUCH AS YW,INDICATES WEEKEND APPLICATION.'
'X','WHEN USED AS PART OF A FARE CLASS SUCH AS YX,INDICATES WEEKDAY APPLICATION.'
'U.S.','48 CONTIGUOUS STATES (NOT INCLUDING ALASKA AND HAWAII) UNLESS OTHERWISE NOTED.'
'A','A','FIRST','NO','NO','YES','NO','NONE','1234567'
'AH','A','FIRST','NO','NO','YES','NO','HIGH','1234567'
'AJ','A','FIRST','NO','NO','YES','NO','MID','1234567'
'AL','A','FIRST','NO','NO','YES','NO','LOW','1234567'
'B','B','COACH','NO','YES','YES','NO','NONE','1234567'
'BH','B','COACH','NO','YES','YES','NO','HIGH','1234567'
'BHW','B','COACH','NO','YES','YES','NO','HIGH','-----67'
'BHX','B','COACH','NO','YES','YES','NO','HIGH','12345--'
'BL','B','COACH','NO','YES','YES','NO','LOW','1234567'
'BLW','B','COACH','NO','YES','YES','NO','LOW','-----67'
'BLX','B','COACH','NO','YES','YES','NO','LOW','12345--'
'BN','BN','COACH','NO','YES','YES','YES','NONE','1234567'
'BO','B','COACH','NO','YES','YES','NO','MID','1234567'
'BOW','B','COACH','NO','YES','YES','NO','MID','-----67'
'BOX','B','COACH','NO','YES','YES','NO','MID','12345--'
'BW','B','COACH','NO','YES','YES','NO','NONE','-----67'
'BX','B','COACH','NO','YES','YES','NO','NONE','12345--'
'C','C','BUSINESS','NO','NO','NO','NO','NONE','1234567'
'CH','C','BUSINESS','NO','NO','NO','NO','HIGH','1234567'
'CHW','C','BUSINESS','NO','NO','NO','NO','HIGH','-----67'
'CHX','C','BUSINESS','NO','NO','NO','NO','HIGH','12345--'
'CL','C','BUSINESS','NO','NO','NO','NO','LOW','1234567'
'CLW','C','BUSINESS','NO','NO','NO','NO','LOW','-----67'
'CLX','C','BUSINESS','NO','NO','NO','NO','LOW','12345--'
'CN','CN','BUSINESS','NO','NO','NO','YES','NONE','1234567'
'CO','C','BUSINESS','NO','NO','NO','NO','MID','1234567'
'CW','C','BUSINESS','NO','NO','NO','NO','NONE','-----67'
'CX','C','BUSINESS','NO','NO','NO','NO','NONE','12345--'
'D','D','BUSINESS','NO','NO','YES','NO','NONE','1234567'
'F','F','FIRST','NO','NO','NO','NO','NONE','1234567'
'FH','F','FIRST','NO','NO','NO','NO','HIGH','1234567'
'FHW','F','FIRST','NO','NO','NO','NO','HIGH','-----67'
'FHX','F','FIRST','NO','NO','NO','NO','HIGH','12345--'
'FL','F','FIRST','NO','NO','NO','NO','LOW','1234567'
'FLW','F','FIRST','NO','NO','NO','NO','LOW','-----67'
'FLX','F','FIRST','NO','NO','NO','NO','LOW','12345--'
'FN','FN','FIRST','NO','NO','NO','YES','NONE','1234567'
'FO','F','FIRST','NO','NO','NO','NO','MID','1234567'
'FW','F','FIRST','NO','NO','NO','NO','NONE','-----67'
'FX','F','FIRST','NO','NO','NO','NO','NONE','12345--'
'H','H','COACH','NO','YES','YES','NO','NONE','1234567'
'HH','H','COACH','NO','YES','YES','NO','HIGH','1234567'
'HHW','H','COACH','NO','YES','YES','NO','HIGH','-----67'
'HHX','H','COACH','NO','YES','YES','NO','HIGH','12345--'
'HK','H','COACH','NO','YES','YES','NO','MID','1234567'
'HKW','H','COACH','NO','YES','YES','NO','MID','-----67'
'HKX','H','COACH','NO','YES','YES','NO','MID','12345--'
'HL','H','COACH','NO','YES','YES','NO','LOW','1234567'
'HLW','H','COACH','NO','YES','YES','NO','LOW','-----67'
'HLX','H','COACH','NO','YES','YES','NO','LOW','12345--'
'HO','H','COACH','NO','YES','YES','NO','MID','1234567'
'HOW','H','COACH','NO','YES','YES','NO','MID','-----67'
'HOX','H','COACH','NO','YES','YES','NO','MID','12345--'
'HW','H','COACH','NO','YES','YES','NO','NONE','-----67'
'HX','H','COACH','NO','YES','YES','NO','NONE','12345--'
'J','J','BUSINESS','YES','NO','NO','NO','NONE','1234567'
'JH','J','BUSINESS','YES','NO','NO','NO','HIGH','1234567'
'JK','J','BUSINESS','YES','NO','NO','NO','MID','1234567'
'JL','J','BUSINESS','YES','NO','NO','NO','LOW','1234567'
'JO','J','BUSINESS','YES','NO','NO','NO','MID','1234567'
'K','K','THRIFT','NO','YES','NO','NO','NONE','1234567'
'KH','K','THRIFT','NO','YES','NO','NO','HIGH','1234567'
'KHW','K','THRIFT','NO','YES','NO','NO','HIGH','-----67'
'KHX','K','THRIFT','NO','YES','NO','NO','HIGH','12345--'
'KL','K','THRIFT','NO','YES','NO','NO','LOW','1234567'
'KLW','K','THRIFT','NO','YES','NO','NO','LOW','-----67'
'KLX','K','THRIFT','NO','YES','NO','NO','LOW','12345--'
'KN','KN','THRIFT','NO','YES','YES','YES','NONE','1234567'
'KO','K','THRIFT','NO','YES','NO','NO','MID','1234567'
'KW','K','THRIFT','NO','YES','NO','NO','NONE','-----67'
'KX','K','THRIFT','NO','YES','NO','NO','NONE','12345--'
'L','L','THRIFT','NO','YES','YES','NO','NONE','1234567'
'LH','L','THRIFT','NO','YES','YES','NO','HIGH','1234567'
'LHW','L','THRIFT','NO','YES','YES','NO','HIGH','-----67'
'LHX','L','THRIFT','NO','YES','YES','NO','HIGH','12345--'
'LL','L','THRIFT','NO','YES','YES','NO','LOW','1234567'
'LLW','L','THRIFT','NO','YES','YES','NO','LOW','-----67'
'LLX','L','THRIFT','NO','YES','YES','NO','LOW','12345--'
'LO','L','THRIFT','NO','YES','YES','NO','MID','1234567'
'LOW','L','THRIFT','NO','YES','YES','NO','MID','-----67'
'LOX','L','THRIFT','NO','YES','YES','NO','MID','12345--'
'LW','L','THRIFT','NO','YES','YES','NO','NONE','-----67'
'LX','L','THRIFT','NO','YES','YES','NO','NONE','12345--'
'M','M','COACH','NO','YES','YES','NO','NONE','1234567'
'MH','M','COACH','NO','YES','YES','NO','HIGH','1234567'
'MHW','M','COACH','NO','YES','YES','NO','HIGH','-----67'
'MHX','M','COACH','NO','YES','YES','NO','HIGH','12345--'
'MKW','M','COACH','NO','YES','YES','NO','MID','-----67'
'MKX','M','COACH','NO','YES','YES','NO','MID','12345--'
'ML','M','COACH','NO','YES','YES','NO','LOW','1234567'
'MLW','M','COACH','NO','YES','YES','NO','LOW','-----67'
'MLX','M','COACH','NO','YES','YES','NO','LOW','12345--'
'MO','M','COACH','NO','YES','YES','NO','MID','1234567'
'MOW','M','COACH','NO','YES','YES','NO','MID','-----67'
'MOX','M','COACH','NO','YES','YES','NO','MID','12345--'
'MW','M','COACH','NO','YES','YES','NO','NONE','-----67'
'MX','M','COACH','NO','YES','YES','NO','NONE','12345--'
'P','P','FIRST','YES','NO','NO','NO','NONE','1234567'
'Q','Q','COACH','NO','YES','YES','NO','NONE','1234567'
'QH','Q','COACH','NO','YES','YES','NO','HIGH','1234567'
'QHW','Q','COACH','NO','YES','YES','NO','HIGH','-----67'
'QHX','Q','COACH','NO','YES','YES','NO','HIGH','12345--'
'QL','Q','COACH','NO','YES','YES','NO','LOW','1234567'
'QLW','Q','COACH','NO','YES','YES','NO','LOW','-----67'
'QLX','Q','COACH','NO','YES','YES','NO','LOW','12345--'
'QN','QN','COACH','NO','YES','YES','YES','NONE','1234567'
'QO','Q','COACH','NO','YES','YES','NO','MID','1234567'
'QOW','Q','COACH','NO','YES','YES','NO','MID','-----67'
'QOX','Q','COACH','NO','YES','YES','NO','MID','12345--'
'QW','Q','COACH','NO','YES','YES','NO','NONE','-----67'
'QX','Q','COACH','NO','YES','YES','NO','NONE','12345--'
'R','R','SUPERSONIC','NO','NO','NO','NO','NONE','1234567'
'S','S','STANDARD','NO','NO','NO','NO','NONE','1234567'
'SH','S','STANDARD','NO','NO','NO','NO','HIGH','1234567'
'SL','S','STANDARD','NO','NO','NO','NO','LOW','1234567'
'T','T','COACH','NO','YES','YES','NO','NONE','1234567'
'TH','T','COACH','NO','YES','YES','NO','HIGH','1234567'
'TL','T','COACH','NO','YES','YES','NO','LOW','1234567'
'TO','T','COACH','NO','YES','YES','NO','MID','1234567'
'V','V','THRIFT','NO','YES','YES','NO','NONE','1234567'
'VH','V','THRIFT','NO','YES','YES','NO','HIGH','1234567'
'VHW','V','THRIFT','NO','YES','YES','NO','HIGH','-----67'
'VHX','V','THRIFT','NO','YES','YES','NO','HIGH','12345--'
'VK','V','THRIFT','NO','YES','YES','NO','MID','1234567'
'VL','V','THRIFT','NO','YES','YES','NO','LOW','1234567'
'VLW','V','THRIFT','NO','YES','YES','NO','LOW','-----67'
'VLX','V','THRIFT','NO','YES','YES','NO','LOW','12345--'
'VO','V','THRIFT','NO','YES','YES','NO','MID','1234567'
'VOW','V','THRIFT','NO','YES','YES','NO','MID','-----67'
'VOX','V','THRIFT','NO','YES','YES','NO','MID','12345--'
'VW','V','THRIFT','NO','YES','YES','NO','NONE','-----67'
'VX','V','THRIFT','NO','YES','YES','NO','NONE','12345--'
'Y','Y','COACH','NO','YES','NO','NO','NONE','1234567'
'YH','Y','COACH','NO','YES','NO','NO','HIGH','1234567'
'YHW','Y','COACH','NO','YES','NO','NO','HIGH','-----67'
'YHX','Y','COACH','NO','YES','NO','NO','HIGH','12345--'
'YJ','Y','COACH','NO','YES','NO','NO','MID','1234567'
'YJW','Y','COACH','NO','YES','NO','NO','MID','-----67'
'YJX','Y','COACH','NO','YES','NO','NO','MID','12345--'
'YK','Y','COACH','NO','YES','NO','NO','MID','1234567'
'YL','Y','COACH','NO','YES','NO','NO','LOW','1234567'
'YLW','Y','COACH','NO','YES','NO','NO','LOW','-----67'
'YLX','Y','COACH','NO','YES','NO','NO','LOW','12345--'
'YN','YN','COACH','NO','YES','NO','YES','NONE','1234567'
'YO','Y','COACH','NO','YES','NO','NO','MID','1234567'
'YOW','Y','COACH','NO','YES','NO','NO','MID','-----67'
'YOX','Y','COACH','NO','YES','NO','NO','MID','12345--'
'YW','Y','COACH','NO','YES','NO','NO','NONE','-----67'
'YX','Y','COACH','NO','YES','NO','NO','NONE','12345--'
305276,1,106231
305276,2,137225
305277,1,106237
305277,2,137231
305280,1,106247
305280,2,137237
305416,1,112030
305416,1,112031
305416,2,112773
305424,1,112033
305424,2,112784
305429,1,112040
305429,2,112793
305429,2,112794
305435,1,112046
305435,2,112806
305436,1,112051
305436,2,112808
306026,1,133430
306026,2,111891
306031,1,133432
306031,2,111896
306304,1,144155
306304,2,112766
306307,1,144143
306307,2,111891
306309,1,144158
306309,2,112784
306314,1,144163
306314,2,112793
306314,2,112794
306317,1,144167
306317,2,112805
306318,1,144150
306318,2,111896
306319,1,144169
306319,2,112808
308292,1,112766
308292,2,101952
308296,1,112773
308296,2,101953
308301,1,112784
308301,2,101955
308304,1,112793
308304,1,112794
308304,2,101958
308320,1,112030
308320,1,112031
308320,2,112904
308330,1,111892
308330,2,101955
308334,1,112040
308334,2,112907
308924,1,133432
308924,2,111941
309189,1,144060
309189,2,101955
309198,1,144163
309198,2,112907
309204,1,144150
309204,2,111941
312733,1,102767
312733,2,137320
312734,1,102771
312734,2,137326
312737,1,102777
312737,2,137335
313006,1,112805
313006,2,101929
313024,1,111886
313024,2,101909
313025,1,112030
313025,1,112031
313025,2,112866
313025,2,112867
313030,1,111888
313030,2,101916
313030,2,101917
313034,1,112033
313034,2,112870
313037,1,111892
313037,2,101922
313041,1,112040
313041,2,112873
313048,1,111895
313048,2,101929
313867,1,133430
313867,2,111928
314256,1,144143
314256,2,111928
314259,1,144158
314259,2,112870
314263,1,144060
314263,2,101922
314268,1,144163
314268,2,112873
314269,1,144148
314269,2,111931
329933,1,107159
329933,2,102144
329937,1,107162
329937,2,102150
329941,1,107165
329941,2,102166
329944,1,107166
329944,2,102177
329947,1,107168
329947,2,102191
330865,1,133430
330865,2,112034
330867,1,133431
330867,2,112043
330870,1,133432
330870,2,112049
330947,1,137221
330947,2,102144
330956,1,137224
330956,2,102150
330962,1,137228
330962,2,102166
330964,1,137230
330964,2,102173
330967,1,137233
330967,2,102177
330971,1,137235
330971,2,102190
330974,1,137238
330974,2,102191
330977,1,138817
330977,2,102144
330981,1,138821
330981,2,102150
330984,1,138823
330984,2,102166
330989,1,138830
330989,1,138831
330989,2,102191
331132,1,144143
331132,2,112034
331133,1,144148
331133,2,112043
331134,1,144150
331134,2,112049
333051,1,102136
333051,1,102137
333051,2,112992
333054,1,102148
333054,2,113000
333059,1,102162
333059,1,102163
333059,2,113003
333067,1,102190
333067,2,113012
333067,2,113013
333086,1,107159
333086,2,102122
333091,1,107258
333091,2,113000
333099,1,107165
333099,2,102127
333110,1,107168
333110,2,102135
333153,1,105700
333153,2,107255
333158,1,105592
333158,2,102127
333168,1,105599
333168,2,102135
334183,1,137221
334183,2,102122
334190,1,137354
334190,2,107255
334198,1,137233
334198,2,102133
334202,1,137238
334202,2,102135
334210,1,138817
334210,2,102122
334218,1,138879
334218,2,107255
334222,1,138823
334222,2,102127
334230,1,138830
334230,1,138831
334230,2,102135
393490,1,102125
393490,2,112352
393507,1,107254
393507,2,112352
393546,1,105794
393546,2,112352
393547,1,105795
393547,2,112352
393553,1,105799
393553,2,112354
393637,1,112991
393637,2,112351
393641,1,113004
393641,2,112353
393643,1,113008
393643,2,112354
393950,1,137407
393950,2,112352
393953,1,137412
393953,2,112354
402327,1,112766
402327,2,102770
402332,1,112773
402332,2,102773
402339,1,112784
402339,2,102776
402343,1,112790
402343,2,102779
402346,1,112793
402346,1,112794
402346,2,102782
402350,1,112805
402350,2,102784
402376,1,112030
402376,1,112031
402376,2,113577
402382,1,111888
402382,2,102773
402388,1,111892
402388,2,102776
402391,1,111939
402391,2,107478
402397,1,112046
402397,2,113583
402398,1,111895
402398,2,102784
403125,1,133430
403125,2,112415
403128,1,133431
403128,2,112417
403468,1,144143
403468,2,112415
403472,1,144158
403472,2,113579
403474,1,144060
403474,2,102776
403479,1,144148
403479,2,112417
403481,1,144062
403481,1,144063
403481,2,102782
403485,1,144167
403485,2,113583
403486,1,144066
403486,2,102784
403488,1,144067
403488,2,102766
405211,1,112773
405211,2,102800
405214,1,112784
405214,2,102802
405214,2,102803
405217,1,112793
405217,1,112794
405217,2,102807
405219,1,112805
405219,2,102809
405235,1,111886
405235,2,102795
405236,1,111886
405236,2,102796
405241,1,111888
405241,2,102800
405250,1,111892
405250,2,102802
405250,2,102803
405253,1,111939
405253,2,107492
405258,1,111895
405258,2,102809
405963,1,144060
405963,2,102802
405963,2,102803
405970,1,144066
405970,2,102809
405971,1,144067
405971,2,102796
420730,1,102136
420730,1,102137
420730,2,113705
420735,1,102148
420735,2,113712
420736,1,102125
420736,2,112516
420739,1,102162
420739,1,102163
420739,2,113715
420745,1,102173
420745,2,113719
420747,1,102129
420747,2,112526
420751,1,102190
420751,2,113721
420782,1,107486
420782,2,139353
420783,1,107258
420783,2,113712
420785,1,107254
420785,2,112516
420791,1,107165
420791,2,102929
420792,1,107487
420792,2,139355
420798,1,107489
420798,2,139356
420887,1,105802
420887,2,113712
420888,1,105794
420888,2,112516
420893,1,105805
420893,2,113715
420894,1,106266
420894,2,139355
420903,1,105595
420903,2,102932
420911,1,105799
420911,2,112526
420912,1,105812
420912,2,113721
421176,1,112991
421176,2,112513
421177,1,112998
421177,2,112516
421179,1,113004
421179,2,112524
421180,1,113008
421180,2,112526
421181,1,113010
421181,2,112527
422233,1,137221
422233,2,102923
422233,2,102924
422240,1,137415
422240,2,113712
422241,1,137407
422241,2,112516
422249,1,137228
422249,2,102929
422262,1,137412
422262,2,112526
422263,1,137423
422263,2,113721
422277,1,138821
422277,2,102927
422281,1,138823
422281,2,102929
This diff is collapsed.
1,'MONDAY'
2,'TUESDAY'
3,'WEDNESDAY'
4,'THURSDAY'
5,'FRIDAY'
6,'SATURDAY'
7,'SUNDAY'
'AA','AA',3000,5799,'AMERICAN EAGLE'
'AC','RJ',1001,1010,'AIR CANADA'
'AC','CS',1100,1199,'AIR CANADA'
'AC','GX',1200,1499,'AIR CANADA'
'AC','ZX',1500,1799,'AIR CANADA'
'AC','QK',1800,1899,'AIR CANADA'
'AC','3J',1900,1949,'AIR CANADA'
'AC','3J',1977,1981,'AIR CANADA'
'AC','3J',1990,1999,'AIR CANADA'
'AC','NV',1950,1976,'AIR CANADA'
'AC','NV',1982,1989,'AIR CANADA'
'AQ','WP',1000,1999,'ALOHA AIRLINES,INC'
'AS','QX',2000,2199,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','QX',2260,2999,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','BF',2200,2259,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','BF',4000,4199,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','JF',4400,4499,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','KN',4500,4599,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','8E',4600,4699,'ALASKA AIRLINES COMMUTER SERVICE'
'AS','7H',4800,4899,'ALASKA AIRLINES COMMUTER SERVICE'
'BA','BE',8001,8002,'BRITISH AIRWAYS'
'BA','BE',8004,8004,'BRITISH AIRWAYS'
'BA','UA',8022,8022,'BRITISH AIRWAYS'
'BA','UA',8154,8155,'BRITISH AIRWAYS'
'BA','UA',8159,8159,'BRITISH AIRWAYS'
'BA','UA',8235,8235,'BRITISH AIRWAYS'
'BA','UA',8243,8243,'BRITISH AIRWAYS'
'BA','UA',8246,8246,'BRITISH AIRWAYS'
'BA','UA',8064,8064,'BRITISH AIRWAYS'
'BA','UA',8269,8269,'BRITISH AIRWAYS'
'BA','UA',8300,8300,'BRITISH AIRWAYS'
'BF','2E',1100,1399,'MARKAIR,INC.'
'BF','2E',1800,1899,'MARKAIR,INC.'
'CO','CO',950,967,'CONTINENTAL AIRLINES/AIR MICRONESIA'
'CO','CO',970,997,'CONTINENTAL AIRLINES/AIR MICRONESIA'
'CO','CO',1880,1899,'CONTINENTAL AIRLINES/AIR MICRONESIA'
'CO','CO',3300,3399,'CONTINENTAL AIRLINES/AIR MICRONESIA'
'CO','SK',8900,8949,'CONTINENTAL AIRLINES/SAS SCANDINAVIAN AIRLINES SYSTEM'
'CO','SK',9000,9125,'CONTINENTAL AIRLINES/SAS SCANDINAVIAN AIRLINES SYSTEM'
'CO','SK',9370,9435,'CONTINENTAL AIRLINES/SAS SCANDINAVIAN AIRLINES SYSTEM'
'CO','JC',2000,2499,'CONTINENTAL EXPRESS'
'CO','RU',2500,2799,'CONTINENTAL EXPRESS'
'CO','RU',3000,3025,'CONTINENTAL EXPRESS'
'CO','RU',4400,4999,'CONTINENTAL EXPRESS'
'CO','CO',2800,2999,'CONTINENTAL EXPRESS/RESORT EXPRESS'
'CO','CO',3026,3099,'CONTINENTAL EXPRESS/HOME JAMES'
'CO','CO',3100,3199,'CONTINENTAL EXPRESS/COLORADO MOUNTAIN EXPRESS'
'CO','6J',3200,3299,'CONTINENTAL EXPRESS/SOUTHERN JERSEY AIRWAYS,INC.'
'CO','QO',3400,3999,'CONTINENTAL EXPRESS/BAR HARBOR AIRLINES'
'CP','SK',68,69,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','LH',144,145,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',950,951,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',954,955,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',957,958,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',960,961,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',963,964,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',967,968,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',983,983,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',986,986,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',988,988,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',991,992,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','WD',994,995,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','PJ',1001,1010,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','KI',1100,1272,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','KI',1274,1274,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','KI',1276,1276,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','KI',1278,1283,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','KI',1285,1288,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','MO',1300,1359,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','9A',1400,1499,'CANADIAN AIRLINES INTERNATIONAL LTD. CANADIAN PARTNERS'
'CP','CP',1800,1999,'CANADIAN AIRLINES INTERNATIONAL LTD./ONTARIO EXPRESS LTD.'
'DL','EV',2000,2999,'DELTA CONNECTION'
'DL','OH',3000,3699,'DELTA CONNECTION'
'DL','HQ',4300,4999,'DELTA CONNECTION'
'DL','OO',5200,5999,'DELTA CONNECTION'
'EA','LI',2300,2399,'EASTERN EXPRESS'
'EA','HY',2900,3299,'EASTERN EXPRESS'
'EA','QO',3700,3999,'EASTERN EXPRESS'
'KL','UK',2843,2843,'KLM-ROYAL DUTCH AIRLINES'
'KL','UK',2845,2845,'KLM-ROYAL DUTCH AIRLINES'
'KL','UK',2847,2847,'KLM-ROYAL DUTCH AIRLINES'
'ML','JT',1500,1550,'THE MIDWAY CONNECTION/IOWA AIRWAYS'
'ML','ML',1600,1999,'THE MIDWAY CONNECTION/MIDWAY COMMUTER/FISCHER BROS. AVIATION'
'ND','QR',240,259,'INTAIR'
'ND','ND',940,959,'INTAIR/ALEXANDAIR,INC.'
'NW','QX',2000,2399,'NORTHWEST AIRLINES'
'NW','US',4000,4999,'NORTHWEST AIRLINES'
'NW','9E',2500,2999,'NORTHWEST AIRLINK'
'NW','XJ',3000,3399,'NORTHWEST AIRLINK'
'NW','RP',3500,3799,'NORTHWEST AIRLINK'
'NW','GQ',3800,3999,'NORTHWEST AIRLINK'
'PA','RZ',270,271,'PAN AM EXPRESS,INC.'
'PA','RZ',4500,4999,'PAN AM EXPRESS,INC.'
'PA','MA',4072,4073,'PAN AMERICAN WORLD AIRWAYS,INC./MALEV-HUNGARIAN AIRLINES'
'PA','JP',4076,4077,'PAN AMERICAN WORLD AIRWAYS,INC./ADRIA AIRWAYS'
'QF','AA',301,302,'QANTAS AIRWAYS LTD.'
'QK','QK',803,804,'AIR NOVA INC./NEWFOUNDLAND LABRADOR AIR TRANSPORT,LTD.'
'QY','QY',600,615,'AERO VIRGIN ISLANDS CORP./TAINO AIRWAYS'
'TW','US',8150,8155,'TRANS WORLD AIRLINES,INC.'
'TW','US',8156,8199,'TRANS WORLD AIRLINES,INC.'
'TW','9N',7000,7199,'TRANS WORLD EXPRESS,'
'TW','ZV',7300,7499,'TRANS WORLD EXPRESS,'
'TW','JI',7550,7569,'TRANS WORLD EXPRESS,'
'TW','8P',7570,7699,'TRANS WORLD EXPRESS,'
'TW','SS',7750,7949,'TRANS WORLD EXPRESS,'
'UA','XV',2100,2349,'UNITED EXPRESS'
'UA','NO',2375,2624,'UNITED EXPRESS'
'UA','ZW',2640,3099,'UNITED EXPRESS'
'UA','OE',3100,3569,'UNITED EXPRESS'
'UA','AP',3640,3999,'UNITED EXPRESS'
'US','US',3000,4999,'USAIR EXPRESS'
'YX','YX',1000,1999,'MIDWEST EXPRESS CONNECTION/SKYWAY AIRLINES INC.'
'2F','2F',526,529,'FRONTIER FLYING SERVICE/TATONDUK AIR SERVICE'
'','',0,0,''
This diff is collapsed.
312733,'ATL','BOS',740,1127,'1234567',0,1,227
312734,'ATL','BOS',1200,1548,'1234567',0,1,228
312737,'ATL','BOS',1650,2053,'1234567',0,1,243
333051,'ATL','DEN',630,910,'1234567',0,1,280
333054,'ATL','DEN',1000,1245,'1234567',0,1,285
333059,'ATL','DEN',1319,1554,'1234567',0,1,275
333067,'ATL','DEN',2029,2320,'1234567',0,1,291
393490,'ATL','OAK',1000,1339,'1234567',0,1,399
420730,'ATL','SFO',630,955,'1234567',0,1,385
420735,'ATL','SFO',1000,1325,'1234567',0,1,385
420736,'ATL','SFO',1000,1336,'1234567',0,1,396
420739,'ATL','SFO',1319,1650,'1234567',0,1,391
420745,'ATL','SFO',1650,2050,'1234567',0,1,420
420747,'ATL','SFO',1825,2214,'1234567',0,1,409
420751,'ATL','SFO',2029,2350,'1234567',0,1,381
305276,'BOS','ATL',705,1110,'1234567',0,1,245
305277,'BOS','ATL',1125,1615,'1234567',0,1,290
305280,'BOS','ATL',1645,2101,'1234567',0,1,256
333153,'BOS','DEN',1000,1410,'1234567',0,1,370
333158,'BOS','DEN',1156,1615,'1234567',0,1,379
333168,'BOS','DEN',1850,2320,'1234567',0,1,390
393546,'BOS','OAK',838,1339,'123456-',0,1,481
393547,'BOS','OAK',840,1339,'------7',0,1,479
393553,'BOS','OAK',1720,2205,'1234567',0,1,465
420887,'BOS','SFO',805,1325,'1234567',0,1,500
420888,'BOS','SFO',838,1336,'123456-',0,1,478
420893,'BOS','SFO',1132,1650,'1234567',0,1,498
420894,'BOS','SFO',1210,1652,'1234567',0,1,462
420903,'BOS','SFO',1520,2115,'1234567',0,1,535
420911,'BOS','SFO',1720,2214,'1234567',0,1,474
420912,'BOS','SFO',1845,2350,'1234567',0,1,485
333086,'BWI','DEN',550,955,'1234567',0,1,365
333091,'BWI','DEN',845,1245,'1234567',0,1,360
333099,'BWI','DEN',1230,1615,'1234567',0,1,345
333110,'BWI','DEN',1945,2320,'1234567',0,1,335
329933,'BWI','DFW',550,930,'1234567',0,1,280
329937,'BWI','DFW',900,1250,'1234567',0,1,290
329941,'BWI','DFW',1230,1620,'1234567',0,1,290
329944,'BWI','DFW',1600,1955,'1234567',0,1,295
329947,'BWI','DFW',1945,2321,'1234567',0,1,276
393507,'BWI','OAK',915,1339,'1234567',0,1,444
420782,'BWI','SFO',800,1217,'123456-',0,1,437
420783,'BWI','SFO',845,1325,'1234567',0,1,460
420785,'BWI','SFO',915,1336,'1234567',0,1,441
420791,'BWI','SFO',1230,1730,'1234567',0,1,480
420792,'BWI','SFO',1240,1652,'1234567',0,1,432
420798,'BWI','SFO',1620,2022,'1234567',0,1,422
305416,'DEN','ATL',620,1244,'1234567',0,1,264
305424,'DEN','ATL',950,1606,'1234567',0,1,256
305429,'DEN','ATL',1325,1943,'1234567',0,1,258
305435,'DEN','ATL',1700,100,'1234567',0,1,360
305436,'DEN','ATL',1955,230,'1234567',0,1,275
313024,'DEN','BOS',55,855,'1234567',0,1,360
313025,'DEN','BOS',620,1435,'1234567',0,1,375
313030,'DEN','BOS',800,1550,'1234567',0,1,350
313034,'DEN','BOS',950,1755,'1234567',0,1,365
313037,'DEN','BOS',1055,1920,'1234567',0,1,385
313041,'DEN','BOS',1325,2125,'1234567',0,1,360
313048,'DEN','BOS',1815,153,'1234567',0,1,338
308320,'DEN','BWI',620,1400,'1234567',0,1,340
308330,'DEN','BWI',1055,1850,'1234567',0,1,355
308334,'DEN','BWI',1325,2045,'1234567',0,1,320
402376,'DEN','PHL',620,1350,'1234567',0,1,330
402382,'DEN','PHL',800,1515,'1234567',0,1,315
402388,'DEN','PHL',1055,1840,'1234567',0,1,345
402391,'DEN','PHL',1455,2146,'12345-7',0,1,291
402397,'DEN','PHL',1700,15,'1234567',0,1,315
402398,'DEN','PHL',1815,130,'1234567',0,1,315
405235,'DEN','PIT',55,803,'1234567',0,1,308
405236,'DEN','PIT',55,1000,'1234567',0,1,425
405241,'DEN','PIT',800,1510,'1234567',0,1,310
405250,'DEN','PIT',1055,1845,'1234567',0,1,350
405253,'DEN','PIT',1455,2202,'1234567',0,1,307
405258,'DEN','PIT',1815,59,'1234567',0,1,284
313006,'DFW','BOS',2010,153,'1234567',0,1,283
308292,'DFW','BWI',625,1145,'1234567',0,1,260
308296,'DFW','BWI',945,1510,'1234567',0,1,265
308301,'DFW','BWI',1305,1850,'1234567',0,1,285
308304,'DFW','BWI',1650,2230,'1234567',0,1,280
393637,'DFW','OAK',700,1014,'123456-',0,1,314
393641,'DFW','OAK',1547,1852,'1234567',0,1,305
393643,'DFW','OAK',1850,2205,'12345-7',0,1,315
402327,'DFW','PHL',625,1200,'1234567',0,1,275
402332,'DFW','PHL',945,1515,'1234567',0,1,270
402339,'DFW','PHL',1305,1840,'1234567',0,1,275
402343,'DFW','PHL',1501,2045,'1234567',0,1,284
402346,'DFW','PHL',1650,2220,'1234567',0,1,270
402350,'DFW','PHL',2010,130,'1234567',0,1,260
405211,'DFW','PIT',945,1510,'1234567',0,1,265
405214,'DFW','PIT',1305,1845,'1234567',0,1,280
405217,'DFW','PIT',1650,2205,'1234567',0,1,255
405219,'DFW','PIT',2010,59,'1234567',0,1,229
421176,'DFW','SFO',700,1006,'123456-',0,1,306
421177,'DFW','SFO',1032,1336,'1234567',0,1,304
421179,'DFW','SFO',1547,1912,'1234567',0,1,325
421180,'DFW','SFO',1850,2214,'12345-7',0,1,324
421181,'DFW','SFO',1940,2310,'1234567',0,1,330
306026,'OAK','ATL',625,1537,'1234567',0,1,372
306031,'OAK','ATL',1425,2330,'1234567',0,1,365
313867,'OAK','BOS',625,1619,'1234567',0,1,414
308924,'OAK','BWI',1425,2332,'1234567',0,1,367
330865,'OAK','DFW',625,1312,'1234567',0,1,287
330867,'OAK','DFW',1105,1753,'1234567',0,1,288
330870,'OAK','DFW',1425,2122,'12345-7',0,1,297
403125,'OAK','PHL',625,1553,'1234567',0,1,388
403128,'OAK','PHL',1105,2041,'1234567',0,1,396
334183,'PHL','DEN',540,955,'1234567',0,1,375
334190,'PHL','DEN',840,1410,'123456-',0,1,450
334198,'PHL','DEN',1600,2015,'1234567',0,1,375
334202,'PHL','DEN',1935,2320,'1234567',0,1,345
330947,'PHL','DFW',540,930,'1234567',0,1,290
330956,'PHL','DFW',900,1250,'1234567',0,1,290
330962,'PHL','DFW',1230,1620,'1234567',0,1,290
330964,'PHL','DFW',1405,1805,'1234567',0,1,300
330967,'PHL','DFW',1600,1955,'1234567',0,1,295
330971,'PHL','DFW',1750,2140,'1234567',0,1,290
330974,'PHL','DFW',1935,2321,'1234567',0,1,286
393950,'PHL','OAK',905,1339,'1234567',0,1,454
393953,'PHL','OAK',1753,2205,'1234567',0,1,432
422233,'PHL','SFO',540,1110,'1234567',0,1,510
422240,'PHL','SFO',830,1325,'1234567',0,1,475
422241,'PHL','SFO',905,1336,'1234567',0,1,451
422249,'PHL','SFO',1230,1730,'1234567',0,1,480
422262,'PHL','SFO',1753,2214,'1234567',0,1,441
422263,'PHL','SFO',1915,2350,'1234567',0,1,455
334210,'PIT','DEN',600,955,'1234567',0,1,355
334218,'PIT','DEN',1030,1410,'1234567',0,1,340
334222,'PIT','DEN',1245,1615,'1234567',0,1,330
334230,'PIT','DEN',1945,2320,'1234567',0,1,335
330977,'PIT','DFW',600,930,'1234567',0,1,270
330981,'PIT','DFW',910,1250,'1234567',0,1,280
330984,'PIT','DFW',1245,1620,'1234567',0,1,275
330989,'PIT','DFW',1945,2321,'1234567',0,1,276
422277,'PIT','SFO',910,1410,'1234567',0,1,480
422281,'PIT','SFO',1245,1730,'1234567',0,1,465
306304,'SFO','ATL',20,917,'1234567',0,1,357
306307,'SFO','ATL',620,1537,'1234567',0,1,377
306309,'SFO','ATL',700,1606,'1234567',0,1,366
306314,'SFO','ATL',1059,1943,'1234567',0,1,344
306317,'SFO','ATL',1425,2258,'1234567',0,1,333
306318,'SFO','ATL',1431,2330,'1234567',0,1,359
306319,'SFO','ATL',1750,230,'1234567',0,1,340
314256,'SFO','BOS',620,1619,'1234567',0,1,419
314259,'SFO','BOS',700,1755,'1234567',0,1,475
314263,'SFO','BOS',815,1920,'1234567',0,1,485
314268,'SFO','BOS',1059,2125,'1234567',0,1,446
314269,'SFO','BOS',1108,2056,'1234567',0,1,408
309189,'SFO','BWI',815,1850,'1234567',0,1,455
309198,'SFO','BWI',1059,2045,'1234567',0,1,406
309204,'SFO','BWI',1431,2332,'1234567',0,1,361
331132,'SFO','DFW',620,1312,'1234567',0,1,292
331133,'SFO','DFW',1108,1753,'1234567',0,1,285
331134,'SFO','DFW',1431,2122,'12345-7',0,1,291
403468,'SFO','PHL',620,1553,'1234567',0,1,393
403472,'SFO','PHL',700,1705,'1234567',0,1,425
403474,'SFO','PHL',815,1840,'1234567',0,1,445
403479,'SFO','PHL',1108,2041,'1234567',0,1,393
403481,'SFO','PHL',1215,2220,'1234567',0,1,425
403485,'SFO','PHL',1425,15,'1234567',0,1,410
403486,'SFO','PHL',1530,130,'1234567',0,1,420
403488,'SFO','PHL',2220,825,'1234567',0,1,425
405963,'SFO','PIT',815,1845,'1234567',0,1,450
405970,'SFO','PIT',1530,59,'1234567',0,1,389
405971,'SFO','PIT',2220,1000,'1234567',0,1,520
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
'B',1,'FIRST','BREAKFAST'
'B',1,'COACH','BREAKFAST'
'B/',1,'FIRST','BREAKFAST'
'B/S',1,'FIRST','BREAKFAST'
'B/S',1,'COACH','SNACK'
'BD',1,'FIRST','BREAKFAST'
'BD',2,'FIRST','DINNER'
'BD',1,'COACH','BREAKFAST'
'BD',2,'COACH','DINNER'
'BDS',1,'FIRST','BREAKFAST'
'BDS',2,'FIRST','DINNER'
'BDS',3,'FIRST','SNACK'
'BDS',1,'COACH','BREAKFAST'
'BDS',2,'COACH','DINNER'
'BDS',3,'COACH','SNACK'
'BL',1,'FIRST','BREAKFAST'
'BL',2,'FIRST','LUNCH'
'BL',1,'COACH','BREAKFAST'
'BL',2,'COACH','LUNCH'
'BLD',1,'FIRST','BREAKFAST'
'BLD',2,'FIRST','LUNCH'
'BLD',3,'FIRST','DINNER'
'BLD',1,'COACH','BREAKFAST'
'BLD',2,'COACH','LUNCH'
'BLD',3,'COACH','DINNER'
'BLS',1,'FIRST','BREAKFAST'
'BLS',2,'FIRST','LUNCH'
'BLS',3,'FIRST','SNACK'
'BLS',1,'COACH','BREAKFAST'
'BLS',2,'COACH','LUNCH'
'BLS',3,'COACH','SNACK'
'BS',1,'FIRST','BREAKFAST'
'BS',2,'FIRST','SNACK'
'BS',1,'COACH','BREAKFAST'
'BS',2,'COACH','SNACK'
'BSD',1,'FIRST','BREAKFAST'
'BSD',2,'FIRST','SNACK'
'BSD',3,'FIRST','DINNER'
'BSD',1,'COACH','BREAKFAST'
'BSD',2,'COACH','SNACK'
'BSD',3,'COACH','DINNER'
'BSL',1,'FIRST','BREAKFAST'
'BSL',2,'FIRST','SNACK'
'BSL',3,'FIRST','LUNCH'
'BSL',1,'COACH','BREAKFAST'
'BSL',2,'COACH','SNACK'
'BSL',3,'COACH','LUNCH'
'D',1,'FIRST','DINNER'
'D',2,'COACH','DINNER'
'D/',1,'FIRST','DINNER'
'D/S',1,'FIRST','DINNER'
'D/S',1,'COACH','SNACK'
'DB',1,'FIRST','DINNER'
'DB',2,'FIRST','BREAKFAST'
'DB',1,'COACH','DINNER'
'DB',2,'COACH','BREAKFAST'
'DS',1,'FIRST','DINNER'
'DS',2,'FIRST','SNACK'
'DS',1,'COACH','DINNER'
'DS',2,'COACH','SNACK'
'L',1,'FIRST','LUNCH'
'L',1,'COACH','LUNCH'
'L/',1,'FIRST','LUNCH'
'L/S',1,'FIRST','LUNCH'
'L/S',1,'COACH','SNACK'
'LD',1,'FIRST','LUNCH'
'LD',2,'FIRST','DINNER'
'LD',1,'COACH','LUNCH'
'LD',2,'COACH','DINNER'
'LDS',1,'FIRST','LUNCH'
'LDS',2,'FIRST','DINNER'
'LDS',3,'FIRST','SNACK'
'LDS',1,'COACH','LUNCH'
'LDS',2,'COACH','DINNER'
'LDS',3,'COACH','SNACK'
'LS',1,'FIRST','LUNCH'
'LS',2,'FIRST','SNACK'
'LS',1,'COACH','LUNCH'
'LS',2,'COACH','SNACK'
'LS/L',1,'FIRST','LUNCH'
'LS/L',2,'FIRST','SNACK'
'LS/L',1,'COACH','LUNCH'
'LSD',1,'FIRST','LUNCH'
'LSD',2,'FIRST','SNACK'
'LSD',3,'FIRST','DINNER'
'LSD',1,'COACH','LUNCH'
'LSD',2,'COACH','SNACK'
'LSD',3,'COACH','DINNER'
'S',1,'FIRST','SNACK'
'S',1,'COACH','SNACK'
'S/',1,'FIRST','SNACK'
'SB',1,'FIRST','SNACK'
'SB',2,'FIRST','BREAKFAST'
'SB',1,'COACH','SNACK'
'SB',2,'COACH','BREAKFAST'
'SBD',1,'FIRST','SNACK'
'SBD',2,'FIRST','BREAKFAST'
'SBD',3,'FIRST','DINNER'
'SBD',1,'COACH','SNACK'
'SBD',2,'COACH','BREAKFAST'
'SBD',3,'COACH','DINNER'
'SBL',1,'FIRST','SNACK'
'SBL',2,'FIRST','BREAKFAST'
'SBL',3,'FIRST','LUNCH'
'SBL',1,'COACH','SNACK'
'SBL',2,'COACH','BREAKFAST'
'SBL',3,'COACH','LUNCH'
'SD',1,'FIRST','SNACK'
'SD',2,'FIRST','DINNER'
'SD',1,'COACH','SNACK'
'SD',2,'COACH','DINNER'
'SL',1,'FIRST','SNACK'
'SL',2,'FIRST','LUNCH'
'SL',1,'COACH','SNACK'
'SL',2,'COACH','LUNCH'
'SLD',1,'FIRST','SNACK'
'SLD',2,'FIRST','LUNCH'
'SLD',3,'FIRST','DINNER'
'SLD',1,'COACH','SNACK'
'SLD',2,'COACH','LUNCH'
'SLD',3,'COACH','DINNER'
'MATL','ATL','L',9.00
'MATL','ATL','R',0.00
'MATL','ATL','A',0.00
'BBOS','BOS','L',5.00
'BBOS','BOS','R',0.00
'BBOS','BOS','A',0.00
'DDFW','DFW','R',0.00
'DDFW','DFW','L',6.00
'FDFW','DFW','L',6.00
'FDFW','DFW','R',0.00
'DDEN','DEN','L',5.00
'DDEN','DEN','R',0.00
'DDEN','DEN','A',0.00
'PPHL','PHL','L',4.75
'PPHL','PHL','R',0.00
'PPHL','PHL','A',0.00
'PPIT','PIT','L',7.50
'PPIT','PIT','R',0.00
'PPIT','PIT','A',0.00
'OOAK','OAK','L',3.50
'OOAK','OAK','R',0.00
'OOAK','SFO','L',6.00
'OOAK','SFO','R',0.00
'OOAK','SFO','A',0.00
'SSFO','SFO','L',4.00
'SSFO','SFO','R',0.00
'SSFO','SFO','A',0.00
'SSFO','OAK','L',5.00
'WWAS','BWI','L',12.00
'BBWI','BWI','L',5.00
'BBWI','BWI','R',0.00
'BBWI','BWI','A',0.00
'','','',0.00
1,'JANUARY'
2,'FEBRUARY'
3,'MARCH'
4,'APRIL'
5,'MAY'
6,'JUNE'
7,'JULY'
8,'AUGUST'
9,'SEPTEMBER'
10,'OCTOBER'
11,'NOVEMBER'
12,'DECEMBER'
This diff is collapsed.
'AP/2','B7NR'
'AP/2','BW7NR'
'AP/2','BWE14'
'AP/2','YAP14'
'AP/1','FOR TRAVEL ORIGINATING AND TERMINATING IN HAWAII','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,150
'AP/2','FOR TRAVEL BETWEEN UNITED STATES AND CARIBBEAN','TOUR CONDUCTORS',7,'N',3,14
'AP/4','FOR TRAVEL BETWEEN UNITED STATES AND MEXICO','CHILDREN\'S FARES,SALES AGENTS',7,'Y',3,21
'AP/6','FOR TRAVEL TO/FROM CANADA','CHILDREN\'S FARES,FAMILY FARES,TOUR CONDUCTORS,VISIT USA FARES',7,'Y',3,30
'AP/10','FOR TRAVEL TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',30,'Y',3,21
'AP/12','FOR TRAVEL BETWEEN UNITED STATES AND CARIBBEAN','CONTACT CARRIER',14,'N',3,21
'AP/13','TRAVEL BETWEEN U.S. AND CANADA,AND POINTS IN CARIBBEAN','CONTACT CARRIER',3,'Y',0,180
'AP/14','TRAVEL BETWEEN POINTS NAMED AND ARE NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',3,'Y',1,3
'AP/16','FARES ARE NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',14,'Y',3,21
'AP/17','ROUND TRIP TRAVEL BETWEEN U.S. AND MEXICO','SALES AGENTS (VIA AA TOUR CONDUCTORS)',7,'N',3,30
'AP/18','ROUND TRIP TRAVEL BETWEEN CANADA AND MEXICO','FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',7,'N',7,180
'AP/19','RND TRIP BETWEEN CANADA AND CARIBBEAN. NOT APPLICABLE TO/FROM INTERMEDIATE PNTS','CHILDREN\'S FARES,SALES AGENT,TOUR CONDUCTORS',7,'N',7,30
'AP/20','ROUND TRIP EXCURSION FARES,NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\S FARES,FAMILY FARES,TOUR CONDUCTORS',14,'Y',3,180
'AP/21','TRAVEL TO/FROM U.S.A. AND CANADA,NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS',14,'N',7,7
'AP/25','FARES DO NOT APPLY TO/FROM INTERMEDIATE POINTS ON THE ROUTING','SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,60
'AP/27','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',7,'Y',0,180
'AP/32','ROUND TRIP CHARTER TO HAWAII. FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S AND FAMILY FARES,HAWAII COMMON FARE,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,30
'AP/33','ROUND TRIP BETWEEN U.S. AND CARIBBEAN','CHILDREN\'S FARE,SALES AGENTS,TOUR CONDUCTORS',14,'Y',6,21
'AP/35','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS',7,'Y',0,30
'AP/43','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARE,SALES AGENTS,TOUR CONDUCTORS',14,'N',3,3
'AP/44','ONE_WAY TRAVEL,DURING PEAK/NON-PEAK HOURS','CONTACT CARRIER',4,'Y',0,0
'AP/47','ROUND TRIP TRAVEL','CONTACT CARRIER',14,'Y',7,30
'AP/48','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS,VISIT USA FARES,CHILDREN\'S FARES',7,'Y',0,0
'AP/55','MAY COMBINE FARES (EXCEPT VIA DELTA AIRLINES) SEATS LIMITED VIA UNITED AIRLINES','CONTACT CARRIER',3,'N',0,0
'AP/56','SEATS ARE LIMITED','CONTACT CARRIERS',7,'Y',3,45
'AP/57','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,180
'AP/58','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',3,330
'AP/59','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',14,'N',7,30
'AP/60','ROUND TRIP TRAVEL BETWEEN U.S. AND CANADA','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'N',3,365
'AP/61','FARES MAYBE COMBINED','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',0,60
'AP/68','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',7,'Y',0,0
'AP/70','ROUND TRIP TRAVEL. FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS,VISIT U.S.A. FARES,CHILDREN\'S FARES',14,'Y',7,14
'AP/73','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',7,'N',0,30
'AP/75','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','SALES AGENTS,TOUR CONDUCTORS,VISIT U.S.A. FARES,CHILDREN\'S FARES',7,'Y',3,60
'AP/76','ROUND TRIP TRAVEL BETWEEN U.S. AND JAMAICA','SALES AGENTS,TOUR CONDUCTORS',7,'N',0,14
'AP/80','FARES APPLY TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',14,'N',3,30
'AP/87','FARES APPLY TO ROUND TRIP TRAVEL','CONTACT CARRIER',14,'Y',7,21
'AP/94','FOR ROUND TRIP TRAVEL. FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',7,'Y',7,21
'EX/1','FOR CIRCLE TRIP TRAVEL','CHILDREN\'S FARES,SALES AGENTS',0,'Y',5,60
'EX/2','ECONOMY CLASS EXCURSION FARES','SALES AGENTS,TOUR CONDUCTORS',0,'Y',0,21
'EX/3','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CONTACT CARRIER',0,'Y',2,45
'EX/5','FOR ROUND TRIP TRAVEL','CONTACT CARRIER',0,'N',5,30
'EX/9','FARES DO NOT APPLY TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',0,'N',0,30
'EX/11','FARES MAY BE COMBINED','CONTACT CARRIER',0,'Y',0,60
'EX/12','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES',0,'Y',3,180
'EX/13','FARES NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',0,'Y',0,3
'EX/14','FARES MAY BE COMBINED','CONTACT CARRIER',0,'N',3,330
'EX/15','ROUND TRIP TRAVEL BETWEEN CANADA AND CARIBBEAN','CONTACT CARRIER',0,'Y',7,45
'EX/17','ROUND TRIP EXCURSION FARES','SALES AGENTS,TOUR CONDUCTORS',0,'N',0,180
'EX/19','ROUND TRIP EXCURSION FARES BETWEEN CANADA AND CARIBBEAN','CONTACT CARRIER',0,'Y',7,7
'EX/20','ROUND TRIP EXCURSION FARES','CONTACT CARRIER',0,'Y',0,14
'EX/21','TRAVEL BETWEEN THE U.S.A. AND CARIBBEAN','SALES AGENTS,TOUR CONDUCTORS',0,'N',0,7
'EX/25','VIA AA,ROUND TRIP TRAVEL BETWEEN SAN JUAN AND ACAPULCO/MEXICO CITY','SALES AGENTS,TOUR CONDUCTORS',0,'Y',3,14
'EX/29','ROUND TRIP TRAVEL BETWEEN U.S.,CARIBBEAN,AND MEXICO','CHILDREN\'S FARES',0,'Y',0,21
'EX/32','TRAVEL ORIGINATING IN JAMAICA','SALES AGENTS,TOUR CONDUCTORS',0,'N',0,365
'EX/33','ROUND TRIP TRAVEL TO JAMAICA/CARIBBEAN','CHILDREN\'S FARES,TOUR CONDUCTORS',0,'N',0,21
'EX/34','ONE DAY AWAY ROUND TRIP FARES','SALES AGENTS,TOUR CONDUCTORS',0,'N',1,1
'EX/36','ROUND TRIP TRAVEL. NOT APPLICABLE TO/FROM INTERMEDIATE POINTS','CHILDREN\'S FARES,FAMILY FARES,TOUR CONDUCTORS',0,'Y',1,2
'EX/38','SAME DAY FARES (VIA EASTERN AIRLINES)','SALES AGENTS,TOUR CONDUCTORS',0,'N',1,1
'EX/43','ROUND TRIP EXCURSION FARES','CONTACT CARRIER',0,'Y',0,365
'EX/45','VIA AMERICAN AIRLINES ROUND TRIP TRAVEL BETWEEN KINGSTON/MONTEGO BAY','CHILDREN\'S FARES,SALES AGENTS,TOUR CONDUCTORS',0,'N',3,21
'EX/47','ROUND TRIP TRAVEL BETWEEN U.S.,CANADA,AND CARIBBEAN','CONTACT CARRIER',0,'Y',3,21
'EX/48','WEEKEND EXCURSION FARE','CHILDREN\'S FARE,FAMILY FARES,SALES AGENTS,TOUR CONDUCTORS',0,'N',7,365
'EX/55','FARES MAY BE COMBINED','SALES AGENTS',0,'Y',3,21
'VU/1','VISIT USA: INTERNATIONAL TRAVEL BEGINNING AND ENDING OUTSIDE U.S.','SALES AGENTS',0,'Y',3,21
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
'morning',0000,1200
'afternoon',1200,1800
'evening',1800,2000
'day',600,1800
'night',1800,2400
'night',000,600
'early morning',0000,800
'mid-morning',800,1000
'late morning',1000,1200
'early afternoon',1200,1400
'mid-afternoon',1400,1600
'late afternoon',1600,1800
This diff is collapsed.
'L','LIMOUSINE'
'T','TAXI'
'R','RENTAL CAR'
'A','AIR TAXI OPERATION'
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment