Commit d067e0fc authored by unknown's avatar unknown

Merge mysql.com:/home/nick/mysql/repository/mysql-4.1

into mysql.com:/home/nick/mysql/mysql-4.1


BitKeeper/etc/ignore:
  auto-union
sql/sql_yacc.yy:
  Auto merged
parents c3cccf8b 5fec4687

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

...@@ -75,6 +75,7 @@ Makefile.in' ...@@ -75,6 +75,7 @@ Makefile.in'
PENDING/* PENDING/*
TAGS TAGS
aclocal.m4 aclocal.m4
autom4te.cache/*
bdb/README bdb/README
bdb/btree/btree_auto.c bdb/btree/btree_auto.c
bdb/build_unix/* bdb/build_unix/*
...@@ -192,6 +193,7 @@ config.h.in ...@@ -192,6 +193,7 @@ config.h.in
config.log config.log
config.status config.status
configure configure
configure.lineno
core core
db-*.*.* db-*.*.*
dbug/user.t dbug/user.t
...@@ -209,10 +211,13 @@ include/my_config.h ...@@ -209,10 +211,13 @@ include/my_config.h
include/my_global.h include/my_global.h
include/mysql_version.h include/mysql_version.h
include/widec.h include/widec.h
innobase/autom4te.cache/*
innobase/configure.lineno
innobase/conftest.s1 innobase/conftest.s1
innobase/conftest.subs innobase/conftest.subs
innobase/ib_config.h innobase/ib_config.h
innobase/ib_config.h.in innobase/ib_config.h.in
innobase/stamp-h1
isam/isamchk isam/isamchk
isam/isamlog isam/isamlog
isam/pack_isam isam/pack_isam
...@@ -302,6 +307,7 @@ libmysqld/sql_db.cc ...@@ -302,6 +307,7 @@ libmysqld/sql_db.cc
libmysqld/sql_delete.cc libmysqld/sql_delete.cc
libmysqld/sql_do.cc libmysqld/sql_do.cc
libmysqld/sql_handler.cc libmysqld/sql_handler.cc
libmysqld/sql_help.cc
libmysqld/sql_insert.cc libmysqld/sql_insert.cc
libmysqld/sql_lex.cc libmysqld/sql_lex.cc
libmysqld/sql_list.cc libmysqld/sql_list.cc
...@@ -361,6 +367,8 @@ myisam/myisamchk ...@@ -361,6 +367,8 @@ myisam/myisamchk
myisam/myisamlog myisam/myisamlog
myisam/myisampack myisam/myisampack
myisam/rt_test myisam/rt_test
myisam/rt_test.MYD
myisam/rt_test.MYI
myisam/sp_test myisam/sp_test
myisam/test1.MYD myisam/test1.MYD
myisam/test1.MYI myisam/test1.MYI
...@@ -405,6 +413,8 @@ repl-tests/test-repl/foo-dump-slave.master. ...@@ -405,6 +413,8 @@ repl-tests/test-repl/foo-dump-slave.master.
repl-tests/test-repl/sum-wlen-slave.master. repl-tests/test-repl/sum-wlen-slave.master.
repl-tests/test-repl/sum-wlen-slave.master.re repl-tests/test-repl/sum-wlen-slave.master.re
repl-tests/test-repl/sum-wlen-slave.master.reje repl-tests/test-repl/sum-wlen-slave.master.reje
scripts/fill_func_tables
scripts/fill_func_tables.sql
scripts/make_binary_distribution scripts/make_binary_distribution
scripts/msql2mysql scripts/msql2mysql
scripts/mysql_config scripts/mysql_config
...@@ -474,8 +484,11 @@ sql/sql_select.cc.orig ...@@ -474,8 +484,11 @@ sql/sql_select.cc.orig
sql/sql_yacc.cc sql/sql_yacc.cc
sql/sql_yacc.h sql/sql_yacc.h
sql/sql_yacc.yy.orig sql/sql_yacc.yy.orig
sql_error.cc
sql_prepare.cc
stamp-h stamp-h
stamp-h.in stamp-h.in
stamp-h1
strings/conf_to_src strings/conf_to_src
strings/ctype_autoconf.c strings/ctype_autoconf.c
strings/ctype_extra_sources.c strings/ctype_extra_sources.c
...@@ -503,15 +516,3 @@ vio/test-ssl ...@@ -503,15 +516,3 @@ vio/test-ssl
vio/test-sslclient vio/test-sslclient
vio/test-sslserver vio/test-sslserver
vio/viotest-ssl vio/viotest-ssl
sql_error.cc
sql_prepare.cc
autom4te.cache/*
innobase/autom4te.cache/*
configure.lineno
innobase/configure.lineno
innobase/stamp-h1
myisam/rt_test.MYD
myisam/rt_test.MYI
stamp-h1
scripts/fill_func_tables
scripts/fill_func_tables.sql
...@@ -1062,24 +1062,28 @@ AC_DEFUN([MYSQL_CHECK_BDB_VERSION], [ ...@@ -1062,24 +1062,28 @@ AC_DEFUN([MYSQL_CHECK_BDB_VERSION], [
test -z "$db_patch" && db_patch=0 test -z "$db_patch" && db_patch=0
# This is ugly, but about as good as it can get # This is ugly, but about as good as it can get
mysql_bdb= # mysql_bdb=
if test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 3 # if test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 3
then # then
mysql_bdb=h # mysql_bdb=h
elif test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 9 # elif test $db_major -eq 3 && test $db_minor -eq 2 && test $db_patch -eq 9
then # then
want_bdb_version="3.2.9a" # hopefully this will stay up-to-date # want_bdb_version="3.2.9a" # hopefully this will stay up-to-date
mysql_bdb=a # mysql_bdb=a
fi # fi
if test -n "$mysql_bdb" && \ dbl RAM:
grep "DB_VERSION_STRING.*:.*$mysql_bdb: " [$1] > /dev/null want_bdb_version="4.1.24"
then bdb_version_ok=yes
bdb_version_ok=yes
else # if test -n "$mysql_bdb" && \
bdb_version_ok="invalid version $db_major.$db_minor.$db_patch" # grep "DB_VERSION_STRING.*:.*$mysql_bdb: " [$1] > /dev/null
bdb_version_ok="$bdb_version_ok (must be version 3.2.3h or $want_bdb_version)" # then
fi # bdb_version_ok=yes
# else
# bdb_version_ok="invalid version $db_major.$db_minor.$db_patch"
# bdb_version_ok="$bdb_version_ok (must be version 3.2.3h or $want_bdb_version)"
# fi
]) ])
AC_DEFUN([MYSQL_TOP_BUILDDIR], [ AC_DEFUN([MYSQL_TOP_BUILDDIR], [
......
/*- /*-
* $Id: LICENSE,v 11.7 2000/11/01 20:35:49 bostic Exp $ * $Id: LICENSE,v 11.9 2002/01/11 15:51:10 bostic Exp $
*/ */
The following is the license that applies to this copy of the Berkeley DB The following is the license that applies to this copy of the Berkeley DB
...@@ -10,7 +10,7 @@ Web at http://www.sleepycat.com. ...@@ -10,7 +10,7 @@ Web at http://www.sleepycat.com.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
/* /*
* Copyright (c) 1990-2000 * Copyright (c) 1990-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
......
/*- /*-
* See the file LICENSE for redistribution information. * See the file LICENSE for redistribution information.
* *
* Copyright (c) 1996, 1997, 1998, 1999, 2000 * Copyright (c) 1996-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
*/ */
/* /*
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include "db_config.h" #include "db_config.h"
#ifndef lint #ifndef lint
static const char revid[] = "$Id: bt_compare.c,v 11.12 2000/10/26 19:00:28 krinsky Exp $"; static const char revid[] = "$Id: bt_compare.c,v 11.17 2002/03/27 04:30:42 bostic Exp $";
#endif /* not lint */ #endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES #ifndef NO_SYSTEM_INCLUDES
...@@ -51,8 +51,8 @@ static const char revid[] = "$Id: bt_compare.c,v 11.12 2000/10/26 19:00:28 krins ...@@ -51,8 +51,8 @@ static const char revid[] = "$Id: bt_compare.c,v 11.12 2000/10/26 19:00:28 krins
#endif #endif
#include "db_int.h" #include "db_int.h"
#include "db_page.h" #include "dbinc/db_page.h"
#include "btree.h" #include "dbinc/btree.h"
/* /*
* __bam_cmp -- * __bam_cmp --
...@@ -92,7 +92,7 @@ __bam_cmp(dbp, dbt, h, indx, func, cmpp) ...@@ -92,7 +92,7 @@ __bam_cmp(dbp, dbt, h, indx, func, cmpp)
case P_LBTREE: case P_LBTREE:
case P_LDUP: case P_LDUP:
case P_LRECNO: case P_LRECNO:
bk = GET_BKEYDATA(h, indx); bk = GET_BKEYDATA(dbp, h, indx);
if (B_TYPE(bk->type) == B_OVERFLOW) if (B_TYPE(bk->type) == B_OVERFLOW)
bo = (BOVERFLOW *)bk; bo = (BOVERFLOW *)bk;
else { else {
...@@ -125,7 +125,7 @@ __bam_cmp(dbp, dbt, h, indx, func, cmpp) ...@@ -125,7 +125,7 @@ __bam_cmp(dbp, dbt, h, indx, func, cmpp)
return (0); return (0);
} }
bi = GET_BINTERNAL(h, indx); bi = GET_BINTERNAL(dbp, h, indx);
if (B_TYPE(bi->type) == B_OVERFLOW) if (B_TYPE(bi->type) == B_OVERFLOW)
bo = (BOVERFLOW *)(bi->data); bo = (BOVERFLOW *)(bi->data);
else { else {
...@@ -136,7 +136,7 @@ __bam_cmp(dbp, dbt, h, indx, func, cmpp) ...@@ -136,7 +136,7 @@ __bam_cmp(dbp, dbt, h, indx, func, cmpp)
} }
break; break;
default: default:
return (__db_pgfmt(dbp, PGNO(h))); return (__db_pgfmt(dbp->dbenv, PGNO(h)));
} }
/* /*
......
/*- /*-
* See the file LICENSE for redistribution information. * See the file LICENSE for redistribution information.
* *
* Copyright (c) 1996, 1997, 1998, 1999, 2000 * Copyright (c) 1996-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
*/ */
#include "db_config.h" #include "db_config.h"
#ifndef lint #ifndef lint
static const char revid[] = "$Id: bt_conv.c,v 11.6 2000/03/31 00:30:26 ubell Exp $"; static const char revid[] = "$Id: bt_conv.c,v 11.13 2002/08/06 06:11:12 bostic Exp $";
#endif /* not lint */ #endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES #ifndef NO_SYSTEM_INCLUDES
...@@ -16,20 +16,21 @@ static const char revid[] = "$Id: bt_conv.c,v 11.6 2000/03/31 00:30:26 ubell Exp ...@@ -16,20 +16,21 @@ static const char revid[] = "$Id: bt_conv.c,v 11.6 2000/03/31 00:30:26 ubell Exp
#endif #endif
#include "db_int.h" #include "db_int.h"
#include "db_page.h" #include "dbinc/db_page.h"
#include "db_swap.h" #include "dbinc/db_swap.h"
#include "btree.h" #include "dbinc/btree.h"
/* /*
* __bam_pgin -- * __bam_pgin --
* Convert host-specific page layout from the host-independent format * Convert host-specific page layout from the host-independent format
* stored on disk. * stored on disk.
* *
* PUBLIC: int __bam_pgin __P((DB_ENV *, db_pgno_t, void *, DBT *)); * PUBLIC: int __bam_pgin __P((DB_ENV *, DB *, db_pgno_t, void *, DBT *));
*/ */
int int
__bam_pgin(dbenv, pg, pp, cookie) __bam_pgin(dbenv, dummydbp, pg, pp, cookie)
DB_ENV *dbenv; DB_ENV *dbenv;
DB *dummydbp;
db_pgno_t pg; db_pgno_t pg;
void *pp; void *pp;
DBT *cookie; DBT *cookie;
...@@ -38,12 +39,12 @@ __bam_pgin(dbenv, pg, pp, cookie) ...@@ -38,12 +39,12 @@ __bam_pgin(dbenv, pg, pp, cookie)
PAGE *h; PAGE *h;
pginfo = (DB_PGINFO *)cookie->data; pginfo = (DB_PGINFO *)cookie->data;
if (!pginfo->needswap) if (!F_ISSET(pginfo, DB_AM_SWAP))
return (0); return (0);
h = pp; h = pp;
return (TYPE(h) == P_BTREEMETA ? __bam_mswap(pp) : return (TYPE(h) == P_BTREEMETA ? __bam_mswap(pp) :
__db_byteswap(dbenv, pg, pp, pginfo->db_pagesize, 1)); __db_byteswap(dbenv, dummydbp, pg, pp, pginfo->db_pagesize, 1));
} }
/* /*
...@@ -51,11 +52,12 @@ __bam_pgin(dbenv, pg, pp, cookie) ...@@ -51,11 +52,12 @@ __bam_pgin(dbenv, pg, pp, cookie)
* Convert host-specific page layout to the host-independent format * Convert host-specific page layout to the host-independent format
* stored on disk. * stored on disk.
* *
* PUBLIC: int __bam_pgout __P((DB_ENV *, db_pgno_t, void *, DBT *)); * PUBLIC: int __bam_pgout __P((DB_ENV *, DB *, db_pgno_t, void *, DBT *));
*/ */
int int
__bam_pgout(dbenv, pg, pp, cookie) __bam_pgout(dbenv, dummydbp, pg, pp, cookie)
DB_ENV *dbenv; DB_ENV *dbenv;
DB *dummydbp;
db_pgno_t pg; db_pgno_t pg;
void *pp; void *pp;
DBT *cookie; DBT *cookie;
...@@ -64,12 +66,12 @@ __bam_pgout(dbenv, pg, pp, cookie) ...@@ -64,12 +66,12 @@ __bam_pgout(dbenv, pg, pp, cookie)
PAGE *h; PAGE *h;
pginfo = (DB_PGINFO *)cookie->data; pginfo = (DB_PGINFO *)cookie->data;
if (!pginfo->needswap) if (!F_ISSET(pginfo, DB_AM_SWAP))
return (0); return (0);
h = pp; h = pp;
return (TYPE(h) == P_BTREEMETA ? __bam_mswap(pp) : return (TYPE(h) == P_BTREEMETA ? __bam_mswap(pp) :
__db_byteswap(dbenv, pg, pp, pginfo->db_pagesize, 0)); __db_byteswap(dbenv, dummydbp, pg, pp, pginfo->db_pagesize, 0));
} }
/* /*
...@@ -93,6 +95,8 @@ __bam_mswap(pg) ...@@ -93,6 +95,8 @@ __bam_mswap(pg)
SWAP32(p); /* re_len */ SWAP32(p); /* re_len */
SWAP32(p); /* re_pad */ SWAP32(p); /* re_pad */
SWAP32(p); /* root */ SWAP32(p); /* root */
p += 92 * sizeof(u_int32_t); /* unused */
SWAP32(p); /* crypto_magic */
return (0); return (0);
} }
/*- /*-
* See the file LICENSE for redistribution information. * See the file LICENSE for redistribution information.
* *
* Copyright (c) 1996, 1997, 1998, 1999, 2000 * Copyright (c) 1996-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
*/ */
#include "db_config.h" #include "db_config.h"
#ifndef lint #ifndef lint
static const char revid[] = "$Id: bt_curadj.c,v 11.20 2001/01/17 16:15:49 bostic Exp $"; static const char revid[] = "$Id: bt_curadj.c,v 11.30 2002/07/03 19:03:48 bostic Exp $";
#endif /* not lint */ #endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES #ifndef NO_SYSTEM_INCLUDES
...@@ -16,9 +16,8 @@ static const char revid[] = "$Id: bt_curadj.c,v 11.20 2001/01/17 16:15:49 bostic ...@@ -16,9 +16,8 @@ static const char revid[] = "$Id: bt_curadj.c,v 11.20 2001/01/17 16:15:49 bostic
#endif #endif
#include "db_int.h" #include "db_int.h"
#include "db_page.h" #include "dbinc/db_page.h"
#include "btree.h" #include "dbinc/btree.h"
#include "txn.h"
static int __bam_opd_cursor __P((DB *, DBC *, db_pgno_t, u_int32_t, u_int32_t)); static int __bam_opd_cursor __P((DB *, DBC *, db_pgno_t, u_int32_t, u_int32_t));
...@@ -203,10 +202,9 @@ __bam_ca_di(my_dbc, pgno, indx, adjust) ...@@ -203,10 +202,9 @@ __bam_ca_di(my_dbc, pgno, indx, adjust)
} }
MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp); MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp);
if (found != 0 && DB_LOGGING(my_dbc)) { if (found != 0 && DBC_LOGGING(my_dbc)) {
if ((ret = __bam_curadj_log(dbenv, if ((ret = __bam_curadj_log(dbp, my_dbc->txn,
my_dbc->txn, &lsn, 0, dbp->log_fileid, &lsn, 0, DB_CA_DI, pgno, 0, 0, adjust, indx, 0)) != 0)
DB_CA_DI, pgno, 0, 0, adjust, indx, 0)) != 0)
return (ret); return (ret);
} }
...@@ -234,8 +232,13 @@ __bam_opd_cursor(dbp, dbc, first, tpgno, ti) ...@@ -234,8 +232,13 @@ __bam_opd_cursor(dbp, dbc, first, tpgno, ti)
* Allocate a new cursor and create the stack. If duplicates * Allocate a new cursor and create the stack. If duplicates
* are sorted, we've just created an off-page duplicate Btree. * are sorted, we've just created an off-page duplicate Btree.
* If duplicates aren't sorted, we've just created a Recno tree. * If duplicates aren't sorted, we've just created a Recno tree.
*
* Note that in order to get here at all, there shouldn't be
* an old off-page dup cursor--to augment the checking db_c_newopd
* will do, assert this.
*/ */
if ((ret = __db_c_newopd(dbc, tpgno, &dbc_nopd)) != 0) DB_ASSERT(orig_cp->opd == NULL);
if ((ret = __db_c_newopd(dbc, tpgno, orig_cp->opd, &dbc_nopd)) != 0)
return (ret); return (ret);
cp = (BTREE_CURSOR *)dbc_nopd->internal; cp = (BTREE_CURSOR *)dbc_nopd->internal;
...@@ -321,17 +324,16 @@ loop: MUTEX_THREAD_LOCK(dbenv, dbp->mutexp); ...@@ -321,17 +324,16 @@ loop: MUTEX_THREAD_LOCK(dbenv, dbp->mutexp);
return (ret); return (ret);
if (my_txn != NULL && dbc->txn != my_txn) if (my_txn != NULL && dbc->txn != my_txn)
found = 1; found = 1;
/* We released the MUTEX to get a cursor, start over. */ /* We released the mutex to get a cursor, start over. */
goto loop; goto loop;
} }
MUTEX_THREAD_UNLOCK(dbenv, dbp->mutexp); MUTEX_THREAD_UNLOCK(dbenv, dbp->mutexp);
} }
MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp); MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp);
if (found != 0 && DB_LOGGING(my_dbc)) { if (found != 0 && DBC_LOGGING(my_dbc)) {
if ((ret = __bam_curadj_log(dbenv, if ((ret = __bam_curadj_log(dbp, my_dbc->txn,
my_dbc->txn, &lsn, 0, dbp->log_fileid, &lsn, 0, DB_CA_DUP, fpgno, tpgno, 0, first, fi, ti)) != 0)
DB_CA_DUP, fpgno, tpgno, 0, first, fi, ti)) != 0)
return (ret); return (ret);
} }
return (0); return (0);
...@@ -372,8 +374,16 @@ loop: MUTEX_THREAD_LOCK(dbenv, dbp->mutexp); ...@@ -372,8 +374,16 @@ loop: MUTEX_THREAD_LOCK(dbenv, dbp->mutexp);
dbc != NULL; dbc = TAILQ_NEXT(dbc, links)) { dbc != NULL; dbc = TAILQ_NEXT(dbc, links)) {
orig_cp = (BTREE_CURSOR *)dbc->internal; orig_cp = (BTREE_CURSOR *)dbc->internal;
/*
* A note on the orig_cp->opd != NULL requirement here:
* it's possible that there's a cursor that refers to
* the same duplicate set, but which has no opd cursor,
* because it refers to a different item and we took
* care of it while processing a previous record.
*/
if (orig_cp->pgno != fpgno || if (orig_cp->pgno != fpgno ||
orig_cp->indx != first || orig_cp->indx != first ||
orig_cp->opd == NULL ||
((BTREE_CURSOR *)orig_cp->opd->internal)->indx ((BTREE_CURSOR *)orig_cp->opd->internal)->indx
!= ti) != ti)
continue; continue;
...@@ -383,7 +393,7 @@ loop: MUTEX_THREAD_LOCK(dbenv, dbp->mutexp); ...@@ -383,7 +393,7 @@ loop: MUTEX_THREAD_LOCK(dbenv, dbp->mutexp);
orig_cp->opd = NULL; orig_cp->opd = NULL;
orig_cp->indx = fi; orig_cp->indx = fi;
/* /*
* We released the MUTEX to free a cursor, * We released the mutex to free a cursor,
* start over. * start over.
*/ */
goto loop; goto loop;
...@@ -440,10 +450,9 @@ __bam_ca_rsplit(my_dbc, fpgno, tpgno) ...@@ -440,10 +450,9 @@ __bam_ca_rsplit(my_dbc, fpgno, tpgno)
} }
MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp); MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp);
if (found != 0 && DB_LOGGING(my_dbc)) { if (found != 0 && DBC_LOGGING(my_dbc)) {
if ((ret = __bam_curadj_log(dbenv, if ((ret = __bam_curadj_log(dbp, my_dbc->txn,
my_dbc->txn, &lsn, 0, dbp->log_fileid, &lsn, 0, DB_CA_RSPLIT, fpgno, tpgno, 0, 0, 0, 0)) != 0)
DB_CA_RSPLIT, fpgno, tpgno, 0, 0, 0, 0)) != 0)
return (ret); return (ret);
} }
return (0); return (0);
...@@ -512,9 +521,9 @@ __bam_ca_split(my_dbc, ppgno, lpgno, rpgno, split_indx, cleft) ...@@ -512,9 +521,9 @@ __bam_ca_split(my_dbc, ppgno, lpgno, rpgno, split_indx, cleft)
} }
MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp); MUTEX_THREAD_UNLOCK(dbenv, dbenv->dblist_mutexp);
if (found != 0 && DB_LOGGING(my_dbc)) { if (found != 0 && DBC_LOGGING(my_dbc)) {
if ((ret = __bam_curadj_log(dbenv, my_dbc->txn, if ((ret = __bam_curadj_log(dbp,
&lsn, 0, dbp->log_fileid, DB_CA_SPLIT, ppgno, rpgno, my_dbc->txn, &lsn, 0, DB_CA_SPLIT, ppgno, rpgno,
cleft ? lpgno : PGNO_INVALID, 0, split_indx, 0)) != 0) cleft ? lpgno : PGNO_INVALID, 0, split_indx, 0)) != 0)
return (ret); return (ret);
} }
......
This diff is collapsed.
This diff is collapsed.
/*- /*-
* See the file LICENSE for redistribution information. * See the file LICENSE for redistribution information.
* *
* Copyright (c) 1999, 2000 * Copyright (c) 1999-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
*/ */
#include "db_config.h" #include "db_config.h"
#ifndef lint #ifndef lint
static const char revid[] = "$Id: bt_method.c,v 11.20 2000/11/30 00:58:28 ubell Exp $"; static const char revid[] = "$Id: bt_method.c,v 11.29 2002/04/21 13:17:04 margo Exp $";
#endif /* not lint */ #endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES #ifndef NO_SYSTEM_INCLUDES
...@@ -16,9 +16,9 @@ static const char revid[] = "$Id: bt_method.c,v 11.20 2000/11/30 00:58:28 ubell ...@@ -16,9 +16,9 @@ static const char revid[] = "$Id: bt_method.c,v 11.20 2000/11/30 00:58:28 ubell
#endif #endif
#include "db_int.h" #include "db_int.h"
#include "db_page.h" #include "dbinc/db_page.h"
#include "btree.h" #include "dbinc/btree.h"
#include "qam.h" #include "dbinc/qam.h"
static int __bam_set_bt_compare static int __bam_set_bt_compare
__P((DB *, int (*)(DB *, const DBT *, const DBT *))); __P((DB *, int (*)(DB *, const DBT *, const DBT *)));
...@@ -82,7 +82,8 @@ __bam_db_close(dbp) ...@@ -82,7 +82,8 @@ __bam_db_close(dbp)
{ {
BTREE *t; BTREE *t;
t = dbp->bt_internal; if ((t = dbp->bt_internal) == NULL)
return (0);
/* Recno */ /* Recno */
/* Close any backing source file descriptor. */ /* Close any backing source file descriptor. */
if (t->re_fp != NULL) if (t->re_fp != NULL)
...@@ -90,9 +91,9 @@ __bam_db_close(dbp) ...@@ -90,9 +91,9 @@ __bam_db_close(dbp)
/* Free any backing source file name. */ /* Free any backing source file name. */
if (t->re_source != NULL) if (t->re_source != NULL)
__os_freestr(t->re_source); __os_free(dbp->dbenv, t->re_source);
__os_free(t, sizeof(BTREE)); __os_free(dbp->dbenv, t);
dbp->bt_internal = NULL; dbp->bt_internal = NULL;
return (0); return (0);
...@@ -127,7 +128,7 @@ __bam_set_flags(dbp, flagsp) ...@@ -127,7 +128,7 @@ __bam_set_flags(dbp, flagsp)
if (LF_ISSET(DB_DUP | DB_DUPSORT)) { if (LF_ISSET(DB_DUP | DB_DUPSORT)) {
/* DB_DUP/DB_DUPSORT is incompatible with DB_RECNUM. */ /* DB_DUP/DB_DUPSORT is incompatible with DB_RECNUM. */
if (F_ISSET(dbp, DB_BT_RECNUM)) if (F_ISSET(dbp, DB_AM_RECNUM))
goto incompat; goto incompat;
if (LF_ISSET(DB_DUPSORT)) { if (LF_ISSET(DB_DUPSORT)) {
...@@ -145,12 +146,12 @@ __bam_set_flags(dbp, flagsp) ...@@ -145,12 +146,12 @@ __bam_set_flags(dbp, flagsp)
if (F_ISSET(dbp, DB_AM_DUP)) if (F_ISSET(dbp, DB_AM_DUP))
goto incompat; goto incompat;
F_SET(dbp, DB_BT_RECNUM); F_SET(dbp, DB_AM_RECNUM);
LF_CLR(DB_RECNUM); LF_CLR(DB_RECNUM);
} }
if (LF_ISSET(DB_REVSPLITOFF)) { if (LF_ISSET(DB_REVSPLITOFF)) {
F_SET(dbp, DB_BT_REVSPLIT); F_SET(dbp, DB_AM_REVSPLITOFF);
LF_CLR(DB_REVSPLITOFF); LF_CLR(DB_REVSPLITOFF);
} }
...@@ -279,12 +280,12 @@ __ram_set_flags(dbp, flagsp) ...@@ -279,12 +280,12 @@ __ram_set_flags(dbp, flagsp)
DB_ILLEGAL_METHOD(dbp, DB_OK_RECNO); DB_ILLEGAL_METHOD(dbp, DB_OK_RECNO);
if (LF_ISSET(DB_RENUMBER)) { if (LF_ISSET(DB_RENUMBER)) {
F_SET(dbp, DB_RE_RENUMBER); F_SET(dbp, DB_AM_RENUMBER);
LF_CLR(DB_RENUMBER); LF_CLR(DB_RENUMBER);
} }
if (LF_ISSET(DB_SNAPSHOT)) { if (LF_ISSET(DB_SNAPSHOT)) {
F_SET(dbp, DB_RE_SNAPSHOT); F_SET(dbp, DB_AM_SNAPSHOT);
LF_CLR(DB_SNAPSHOT); LF_CLR(DB_SNAPSHOT);
} }
...@@ -310,7 +311,7 @@ __ram_set_re_delim(dbp, re_delim) ...@@ -310,7 +311,7 @@ __ram_set_re_delim(dbp, re_delim)
t = dbp->bt_internal; t = dbp->bt_internal;
t->re_delim = re_delim; t->re_delim = re_delim;
F_SET(dbp, DB_RE_DELIMITER); F_SET(dbp, DB_AM_DELIMITER);
return (0); return (0);
} }
...@@ -336,7 +337,7 @@ __ram_set_re_len(dbp, re_len) ...@@ -336,7 +337,7 @@ __ram_set_re_len(dbp, re_len)
q = dbp->q_internal; q = dbp->q_internal;
q->re_len = re_len; q->re_len = re_len;
F_SET(dbp, DB_RE_FIXEDLEN); F_SET(dbp, DB_AM_FIXEDLEN);
return (0); return (0);
} }
...@@ -362,7 +363,7 @@ __ram_set_re_pad(dbp, re_pad) ...@@ -362,7 +363,7 @@ __ram_set_re_pad(dbp, re_pad)
q = dbp->q_internal; q = dbp->q_internal;
q->re_pad = re_pad; q->re_pad = re_pad;
F_SET(dbp, DB_RE_PAD); F_SET(dbp, DB_AM_PAD);
return (0); return (0);
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*- /*-
* See the file LICENSE for redistribution information. * See the file LICENSE for redistribution information.
* *
* Copyright (c) 1998, 1999, 2000 * Copyright (c) 1998-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
*/ */
#include "db_config.h" #include "db_config.h"
#ifndef lint #ifndef lint
static const char revid[] = "$Id: bt_reclaim.c,v 11.5 2000/03/22 04:21:01 ubell Exp $"; static const char revid[] = "$Id: bt_reclaim.c,v 11.11 2002/03/29 20:46:26 bostic Exp $";
#endif /* not lint */ #endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES #ifndef NO_SYSTEM_INCLUDES
...@@ -18,10 +18,8 @@ static const char revid[] = "$Id: bt_reclaim.c,v 11.5 2000/03/22 04:21:01 ubell ...@@ -18,10 +18,8 @@ static const char revid[] = "$Id: bt_reclaim.c,v 11.5 2000/03/22 04:21:01 ubell
#endif #endif
#include "db_int.h" #include "db_int.h"
#include "db_page.h" #include "dbinc/db_page.h"
#include "db_shash.h" #include "dbinc/btree.h"
#include "lock.h"
#include "btree.h"
/* /*
* __bam_reclaim -- * __bam_reclaim --
...@@ -51,3 +49,38 @@ __bam_reclaim(dbp, txn) ...@@ -51,3 +49,38 @@ __bam_reclaim(dbp, txn)
return (ret); return (ret);
} }
/*
* __bam_truncate --
* Truncate a database.
*
* PUBLIC: int __bam_truncate __P((DB *, DB_TXN *, u_int32_t *));
*/
int
__bam_truncate(dbp, txn, countp)
DB *dbp;
DB_TXN *txn;
u_int32_t *countp;
{
DBC *dbc;
db_trunc_param trunc;
int ret, t_ret;
/* Acquire a cursor. */
if ((ret = dbp->cursor(dbp, txn, &dbc, 0)) != 0)
return (ret);
trunc.count = 0;
trunc.dbc = dbc;
/* Walk the tree, freeing pages. */
ret = __bam_traverse(dbc,
DB_LOCK_WRITE, dbc->internal->root, __db_truncate_callback, &trunc);
/* Discard the cursor. */
if ((t_ret = dbc->c_close(dbc)) != 0 && ret == 0)
ret = t_ret;
*countp = trunc.count;
return (ret);
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*- /*-
* See the file LICENSE for redistribution information. * See the file LICENSE for redistribution information.
* *
* Copyright (c) 1996, 1997, 1998, 1999, 2000 * Copyright (c) 1996-2002
* Sleepycat Software. All rights reserved. * Sleepycat Software. All rights reserved.
*/ */
#include "db_config.h" #include "db_config.h"
#ifndef lint #ifndef lint
static const char revid[] = "$Id: bt_upgrade.c,v 11.19 2000/11/30 00:58:29 ubell Exp $"; static const char revid[] = "$Id: bt_upgrade.c,v 11.25 2002/08/06 06:11:13 bostic Exp $";
#endif /* not lint */ #endif /* not lint */
#ifndef NO_SYSTEM_INCLUDES #ifndef NO_SYSTEM_INCLUDES
...@@ -18,11 +18,9 @@ static const char revid[] = "$Id: bt_upgrade.c,v 11.19 2000/11/30 00:58:29 ubell ...@@ -18,11 +18,9 @@ static const char revid[] = "$Id: bt_upgrade.c,v 11.19 2000/11/30 00:58:29 ubell
#endif #endif
#include "db_int.h" #include "db_int.h"
#include "db_page.h" #include "dbinc/db_page.h"
#include "db_swap.h" #include "dbinc/db_am.h"
#include "btree.h" #include "dbinc/db_upgrade.h"
#include "db_am.h"
#include "db_upgrade.h"
/* /*
* __bam_30_btreemeta -- * __bam_30_btreemeta --
...@@ -107,7 +105,7 @@ __bam_31_btreemeta(dbp, real_name, flags, fhp, h, dirtyp) ...@@ -107,7 +105,7 @@ __bam_31_btreemeta(dbp, real_name, flags, fhp, h, dirtyp)
newmeta->minkey = oldmeta->minkey; newmeta->minkey = oldmeta->minkey;
newmeta->maxkey = oldmeta->maxkey; newmeta->maxkey = oldmeta->maxkey;
memmove(newmeta->dbmeta.uid, memmove(newmeta->dbmeta.uid,
oldmeta->dbmeta.uid, sizeof(oldmeta->dbmeta.uid)); oldmeta->dbmeta.uid, sizeof(oldmeta->dbmeta.uid));
newmeta->dbmeta.flags = oldmeta->dbmeta.flags; newmeta->dbmeta.flags = oldmeta->dbmeta.flags;
newmeta->dbmeta.record_count = 0; newmeta->dbmeta.record_count = 0;
newmeta->dbmeta.key_count = 0; newmeta->dbmeta.key_count = 0;
...@@ -126,7 +124,7 @@ __bam_31_btreemeta(dbp, real_name, flags, fhp, h, dirtyp) ...@@ -126,7 +124,7 @@ __bam_31_btreemeta(dbp, real_name, flags, fhp, h, dirtyp)
/* /*
* __bam_31_lbtree -- * __bam_31_lbtree --
* Upgrade the database btree leaf pages. * Upgrade the database btree leaf pages.
* *
* PUBLIC: int __bam_31_lbtree * PUBLIC: int __bam_31_lbtree
* PUBLIC: __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *)); * PUBLIC: __P((DB *, char *, u_int32_t, DB_FH *, PAGE *, int *));
...@@ -147,15 +145,15 @@ __bam_31_lbtree(dbp, real_name, flags, fhp, h, dirtyp) ...@@ -147,15 +145,15 @@ __bam_31_lbtree(dbp, real_name, flags, fhp, h, dirtyp)
ret = 0; ret = 0;
for (indx = O_INDX; indx < NUM_ENT(h); indx += P_INDX) { for (indx = O_INDX; indx < NUM_ENT(h); indx += P_INDX) {
bk = GET_BKEYDATA(h, indx); bk = GET_BKEYDATA(dbp, h, indx);
if (B_TYPE(bk->type) == B_DUPLICATE) { if (B_TYPE(bk->type) == B_DUPLICATE) {
pgno = GET_BOVERFLOW(h, indx)->pgno; pgno = GET_BOVERFLOW(dbp, h, indx)->pgno;
if ((ret = __db_31_offdup(dbp, real_name, fhp, if ((ret = __db_31_offdup(dbp, real_name, fhp,
LF_ISSET(DB_DUPSORT) ? 1 : 0, &pgno)) != 0) LF_ISSET(DB_DUPSORT) ? 1 : 0, &pgno)) != 0)
break; break;
if (pgno != GET_BOVERFLOW(h, indx)->pgno) { if (pgno != GET_BOVERFLOW(dbp, h, indx)->pgno) {
*dirtyp = 1; *dirtyp = 1;
GET_BOVERFLOW(h, indx)->pgno = pgno; GET_BOVERFLOW(dbp, h, indx)->pgno = pgno;
} }
} }
} }
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -10,12 +10,17 @@ Workspace ...@@ -10,12 +10,17 @@ Workspace
<BEGIN> projectList <BEGIN> projectList
$(PRJ_DIR)/BerkeleyDB.wpj \ $(PRJ_DIR)/BerkeleyDB.wpj \
$(PRJ_DIR)/ex_access/ex_access.wpj \ $(PRJ_DIR)/db_archive/db_archive.wpj \
$(PRJ_DIR)/ex_btrec/ex_btrec.wpj \ $(PRJ_DIR)/db_checkpoint/db_checkpoint.wpj \
$(PRJ_DIR)/ex_env/ex_env.wpj \ $(PRJ_DIR)/db_deadlock/db_deadlock.wpj \
$(PRJ_DIR)/ex_mpool/ex_mpool.wpj \ $(PRJ_DIR)/db_dump/db_dump.wpj \
$(PRJ_DIR)/ex_tpcb/ex_tpcb.wpj \ $(PRJ_DIR)/db_load/db_load.wpj \
$(PRJ_DIR)/ex_dbclient/ex_dbclient.wpj $(PRJ_DIR)/db_printlog/db_printlog.wpj \
$(PRJ_DIR)/db_recover/db_recover.wpj \
$(PRJ_DIR)/db_stat/db_stat.wpj \
$(PRJ_DIR)/db_upgrade/db_upgrade.wpj \
$(PRJ_DIR)/db_verify/db_verify.wpj \
$(PRJ_DIR)/dbdemo/dbdemo.wpj
<END> <END>
<BEGIN> userComments <BEGIN> userComments
......
#
# Custom Makefile shell
#
# This file may be edited freely, since it will not be regenerated
# by the project manager.
#
# Use this makefile to define rules to make external binaries
# and deposit them in the $(EXTERNAL_BINARIES_DIR) directory.
#
# If you have specified external modules during your component
# creation, you will find make rules already in place below.
# You will likely have to edit these to suit your individual
# build setup.
#
# You may wish to use the CPU, BUILD_SPEC or TOOL make variables in
# your Makefile to support builds for different architectures. Use
# the FORCE_EXTERNAL_MAKE phony target to ensure that your external
# make always runs.
#
# The example below assumes that your custom makefile is in the
# mySourceTree directory, and that the binary file it produces
# is placed into the $(BUILD_SPEC) sub-directory.
#
# EXTERNAL_SOURCE_BASE = /folk/me/mySourceTree
# EXTERNAL_MODULE = myLibrary.o
# EXTERNAL_MAKE = make
#
# $(EXTERNAL_BINARIES_DIR)/$(EXTERNAL_MODULE) : FORCE_EXTERNAL_MAKE
# $(EXTERNAL_MAKE) -C $(EXTERNAL_SOURCE_BASE) \
# -f $(EXTERNAL_SOURCE_BASE)/Makefile \
# CPU=$(CPU) BUILD_SPEC=$(BUILD_SPEC) $(@F)
# $(CP) $(subst /,$(DIRCHAR),$(EXTERNAL_SOURCE_BASE)/$(BUILD_SPEC)/$(@F) $@)
#
# If you are not adding your external modules from the component wizard,
# you will have to include them in your component yourself:
#
# From the GUI, you can do this with the Component's 'Add external module'
# dialog.
#
# If you are using the command line, add the module(s) by editing the
# MODULES line in component.cdf file, e.g.
#
# Component INCLUDE_MYCOMPONENT {
#
# MODULES foo.o goo.o \
# myLibrary.o
#
# rules to build custom libraries
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#
# Custom Makefile shell
#
# This file may be edited freely, since it will not be regenerated
# by the project manager.
#
# Use this makefile to define rules to make external binaries
# and deposit them in the $(EXTERNAL_BINARIES_DIR) directory.
#
# If you have specified external modules during your component
# creation, you will find make rules already in place below.
# You will likely have to edit these to suit your individual
# build setup.
#
# You may wish to use the CPU, BUILD_SPEC or TOOL make variables in
# your Makefile to support builds for different architectures. Use
# the FORCE_EXTERNAL_MAKE phony target to ensure that your external
# make always runs.
#
# The example below assumes that your custom makefile is in the
# mySourceTree directory, and that the binary file it produces
# is placed into the $(BUILD_SPEC) sub-directory.
#
# EXTERNAL_SOURCE_BASE = /folk/me/mySourceTree
# EXTERNAL_MODULE = myLibrary.o
# EXTERNAL_MAKE = make
#
# $(EXTERNAL_BINARIES_DIR)/$(EXTERNAL_MODULE) : FORCE_EXTERNAL_MAKE
# $(EXTERNAL_MAKE) -C $(EXTERNAL_SOURCE_BASE) \
# -f $(EXTERNAL_SOURCE_BASE)/Makefile \
# CPU=$(CPU) BUILD_SPEC=$(BUILD_SPEC) $(@F)
# $(CP) $(subst /,$(DIRCHAR),$(EXTERNAL_SOURCE_BASE)/$(BUILD_SPEC)/$(@F) $@)
#
# If you are not adding your external modules from the component wizard,
# you will have to include them in your component yourself:
#
# From the GUI, you can do this with the Component's 'Add external module'
# dialog.
#
# If you are using the command line, add the module(s) by editing the
# MODULES line in component.cdf file, e.g.
#
# Component INCLUDE_MYCOMPONENT {
#
# MODULES foo.o goo.o \
# myLibrary.o
#
# rules to build custom libraries
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.
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.
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.
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.
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.
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.
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