mariadb/src
John Esmet 56fd009567 [t:5153] fix the error handling code for toku_ltm_get_lt() and better explain what the client contract is for the on_create and on_close callbacks.
the idea is you should only pass an on_create callback if there is also an on_close callback, and vice-versa. the on_create callback is called if
the lock tree is created and the on_close callback is called only if the on_create callback was actually called, either because of a user close
of the locktree or by an error path in toku_ltm_get_lt().

we never assume that either of these callbacks are non-null and we know both can be called at most once.


git-svn-id: file:///svn/toku/tokudb@45002 c7de825b-a66e-492c-adef-691d508d4ae1
2013-04-17 00:00:54 -04:00
..
lock_tree [t:5153] fix the error handling code for toku_ltm_get_lt() and better explain what the client contract is for the on_create and on_close callbacks. 2013-04-17 00:00:54 -04:00
range_tree [t:5094] merge to main, delete dev branch. closes #5094. 2013-04-17 00:00:52 -04:00
tests closes #5146, fix test and fix bug 2013-04-17 00:00:54 -04:00
CMakeLists.txt [t:5094] merge to main, delete dev branch. closes #5094. 2013-04-17 00:00:52 -04:00
errors.c [t:4872], remove more superfluous usage of ydb lock 2013-04-17 00:00:42 -04:00
export.map [t:5062] txnid becomes separate from lsn, and optimizations for read-only txns 2013-04-17 00:00:49 -04:00
indexer-internal.h #refs 5133 merge undo-do algorithm changes to main. now, we read a row from the source db AND gather up the leaf entrie's provisional data in the cursor callback, which makes it atomic with respect to commit and abort on that DB. had to fix a few tests after changing some leaf entry signatures 2013-04-17 00:00:53 -04:00
indexer-undo-do.c #refs 5133 merge undo-do algorithm changes to main. now, we read a row from the source db AND gather up the leaf entrie's provisional data in the cursor callback, which makes it atomic with respect to commit and abort on that DB. had to fix a few tests after changing some leaf entry signatures 2013-04-17 00:00:53 -04:00
indexer.c #refs 5133 merge undo-do algorithm changes to main. now, we read a row from the source db AND gather up the leaf entrie's provisional data in the cursor callback, which makes it atomic with respect to commit and abort on that DB. had to fix a few tests after changing some leaf entry signatures 2013-04-17 00:00:53 -04:00
indexer.h close[t:5134] le_cursor api cleaned up, followed up on a TODO to get rid of the DB parameter from is_key_right (and improved its name too) by using a fake_db in the le_cursor plus the new toku_ft_get_descriptor() api to grab a descriptor reference. refactored some tests to get it all compiling. LE and hot indexer tests pass 2013-04-17 00:00:53 -04:00
loader.c [t:5029], revert fix, solution does not work 2013-04-17 00:00:48 -04:00
loader.h closes [t:4913]. Modelines now synchronized in every source/header file (and always top two lines) 2013-04-17 00:00:36 -04:00
Makefile.old [t:4901] merging brt->ft rename to main 2013-04-17 00:00:35 -04:00
README Rename 2007-07-13 19:37:47 +00:00
tokuglobals.py #3239 allow all ^toku symbols in the globals list refs[t:3239] 2013-04-16 23:59:35 -04:00
ydb-internal.h refs #4964 Cleanups during review 2013-04-17 00:00:54 -04:00
ydb.c refs #4964 Cleanups during review 2013-04-17 00:00:54 -04:00
ydb.h [t:4920], [t:4953], separate ydb lock from hot indexing and checkpointing 2013-04-17 00:00:43 -04:00
ydb_cursor.c closes [t:4913]. Modelines now synchronized in every source/header file (and always top two lines) 2013-04-17 00:00:36 -04:00
ydb_cursor.h closes [t:4913]. Modelines now synchronized in every source/header file (and always top two lines) 2013-04-17 00:00:36 -04:00
ydb_db.c refs #5130, refs #4870, merge changes of adding db->change_XXX functions to main 2013-04-17 00:00:53 -04:00
ydb_db.h [t:5062] txnid becomes separate from lsn, and optimizations for read-only txns 2013-04-17 00:00:49 -04:00
ydb_env_func.c [t:5062] txnid becomes separate from lsn, and optimizations for read-only txns 2013-04-17 00:00:49 -04:00
ydb_env_func.h [t:5062] txnid becomes separate from lsn, and optimizations for read-only txns 2013-04-17 00:00:49 -04:00
ydb_lib.c [t:4920], [t:4953], separate ydb lock from hot indexing and checkpointing 2013-04-17 00:00:43 -04:00
ydb_load.h [t:4749] [t:4878] [t:4929] [t:4947] merging these changes to main. 2013-04-17 00:00:38 -04:00
ydb_row_lock.c closes [t:4913]. Modelines now synchronized in every source/header file (and always top two lines) 2013-04-17 00:00:36 -04:00
ydb_row_lock.h closes [t:4913]. Modelines now synchronized in every source/header file (and always top two lines) 2013-04-17 00:00:36 -04:00
ydb_txn.c closes #5149 Skips taking MO lock for readonly transactions on 2013-04-17 00:00:54 -04:00
ydb_txn.h [t:5062] txnid becomes separate from lsn, and optimizations for read-only txns 2013-04-17 00:00:49 -04:00
ydb_write.c refs #4964 Cleanups during review 2013-04-17 00:00:54 -04:00
ydb_write.h [t:4877], [t:4966], [t:4952], [t:4881], [t:4918], merge to main 2013-04-17 00:00:42 -04:00

cd ~/yobiduck/ydb/src
make


cd ~/mysql/bdbi/mysql-5.0.27/
export LD_RUN_PATH=/home/bradley/yobiduck/ydb/src
./configure --with-berkeley-db-includes=/home/bradley/yobiduck/ydb/include --with-berkeley-db --with-berkeley-db-libs=/home/bradley/yobiduck/ydb/src --prefix=/home/bradley/usr

make

make install

#This one may not be needed
~/mysql/bdbi/usr/bin/mysql_install_db

#
pushd /home/bradley/mysql/bdbi/usr/ ; /home/bradley/mysql/bdbi/usr//bin/mysqld_safe &
popd

~/mysql/bdbi/usr/bin/mysql -u root
mysql> show databases;
mysql> create database yobitest;
mysql> use yobitest;
mysql> create table t1 (i int) engine=bdb;

Look for the error in /home/bradley/mysql/bdbi/usr/var/yobert.err



----
This links right:
 LD_LIBRARY_PATH=/home/bradley/mysql/bdbi/usr/lib/mysql/ ldd sql/mysqld
----
This works, 
 LD_LIBRARY_PATH=/home/bradley/mysql/bdbi/usr/lib/mysql/ /home/bradley/mysql/bdbi/usr//bin/mysqld
producing the following in the log

061208 16:11:35  InnoDB: Started; log sequence number 0 43655
ydb.c:78 db_env_create flags=0

----
 the LD_RUN_PATH thing above works.


--- on laptop I did this instead:

export LD_RUN_PATH=/home/bradley/yobiduck/ydb/src
./configure --with-berkeley-db-includes=/home/bradley/yobiduck/ydb/include --with-berkeley-db --with-berkeley-db-libs=/home/bradley/yobiduck/src --prefix=/home/bradley/usr

make
make install
/home/bradley/usr/bin/mysql_install_db 
/home/bradley/usr/bin/mysqld_safe &
/home/bradley/usr/bin/mysql -u root
~/mysql/bdbi/usr/bin/mysql -u root
mysql> show databases;
mysql> create database yobitest;
mysql> use yobitest;
mysql> create table t1 (i int) engine=bdb;

Look for the error in ~/usr/var/localhost.localdomain.err

---
To clean up after a total screwup:

rm -rf ~/usr/var/

Didn't manage to clean it up very well.

---
Goal: compiler mysql wiht debugging

export LD_RUN_PATH=/home/bradley/yobiduck/ydb/src
./configure CFLAGS="-g -O2" --with-berkeley-db-includes=/home/bradley/yobiduck/ydb/include --with-berkeley-db --with-berkeley-db-libs=/home/bradley/yobiduck/src --prefix=/home/bradley/usr

If you want to debug, you might need to start mysqld without using mysqld_safe.
Here is one way to do it:

gdb ~/usr/libexec/mysqld
(gdb) run --basedir=/home/bradley/usr --datadir=/home/bradley/usr/var --pid-file=/home/bradley/usr/var/localhost.localdomain.pid --skip-external-locking


That was screwed up (the configure args were wrong.)  Try again:

---
export LD_RUN_PATH=/home/bradley/yobiduck/ydb/src
./configure CXXFLAGS="-g -O2" CFLAGS="-g -O2" --with-berkeley-db-includes=/home/bradley/yobiduck/ydb/include --with-berkeley-db --with-berkeley-db-libs=/home/bradley/yobiduck/ydb/src --prefix=/home/bradley/usr

gdb ~/usr/libexec/mysqld
(gdb) run --basedir=/home/bradley/usr --datadir=/home/bradley/usr/var --pid-file=/home/bradley/usr/var/localhost.localdomain.pid --skip-external-locking