[Maria-developers] Rev 2733: Backport into MariaDB-5.2 the following: in file:///home/psergey/dev/maria-5.2-dsmrr/

2009-12-14 Thread Sergey Petrunya
At file:///home/psergey/dev/maria-5.2-dsmrr/


revno: 2733
revision-id: pser...@askmonty.org-20091215071646-gbq7406d2xpopd82
parent: i...@askmonty.org-20091112043128-yd6odg8zr5ribjal
committer: Sergey Petrunya 
branch nick: maria-5.2-dsmrr
timestamp: Tue 2009-12-15 10:16:46 +0300
message:
  Backport into MariaDB-5.2 the following:
  WL#2474 "Multi Range Read: Change the default MRR implementation to implement 
new MRR interface"
  WL#2475 "Batched range read functions for MyISAM/InnoDb"
  "Index condition pushdown for MyISAM/InnoDB"
  Igor's fix from sp1r-i...@olga.mysql.com-20080330055902-07614:
There could be observed the following problems:
1. EXPLAIN did not mention pushdown conditions from on expressions in the 
'extra' column.  As a result if a query had no where conditions pushed 
down to a table, but had on conditions pushed to this table the 'extra' 
column in the EXPLAIN for the table missed 'using where'.
2. Conditions for ref access were not eliminated from on expressions 
though such conditions were eliminated from the where condition.

Diff too large for email (23741 lines, the limit is 1000).

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2785)

2009-12-14 Thread Kristian Nielsen
Arjen Lentz  writes:

> Which other external libraries are currently still embedded into the
> source tree?

These are the ones I know of:

  zlib
  libedit
  libreadline
  yassl
  libevent

I think most (all?) of them have a ./configure option to use the system one
instead of the bundled one.

I guess the main problem with boost is the sheer size. The largest of the
above is yassl, with 182 files and <2 MB total size.

 - Kristian

___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2785)

2009-12-14 Thread Arjen Lentz

Hi Timour

On 14/12/2009, at 11:40 PM, Timour Katchaounov wrote:
Do you think that it is reasonable that all such projects should  
follow
the approach you suggest, and internally embed the libraries they  
use (or parts

thereof)?



I did not suggest this, I was following the existing way of doing it  
from MySQL, and stated its reasoning.
I dislike it as much as anybody else here, so questioning/arguing me  
over it is not going to solve the problem.


What you need to do is invalidate the original reasoning for embedding  
libraries into the tree.
The key aspect as I understand it is availability of the correct  
version on some build platforms, particularly older distros.
That's a technical aspect, not an arbitrary choice by anyone that you  
can just change by arguing. However, distros have changed since the  
decision long ago, and so the assertions may no longer hold true. We  
can investigate that and that way perhaps be able to declare the issue  
obsolete!


Which other external libraries are currently still embedded into the  
source tree?

For each, let's identify why, and in any case try to remove them.
If that works out, major win!


Cheers,
Arjen.
--
Arjen Lentz, Exec.Director @ Open Query (http://openquery.com)
Exceptional Services for MySQL at a fixed budget.

Follow our blog at http://openquery.com/blog/
OurDelta: packages for MySQL and MariaDB @ http://ourdelta.org


___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2785)

2009-12-14 Thread Timour Katchaounov

Hi Arjen,


Hi Igor

On 14/12/2009, at 12:39 PM, Igor Babaev wrote:

There should be a common sense after all.
Adding 7K files from boost doesn't comply with a common sense.
no matter what Arjen thinks about it.
If oqgraph cannot do without boost in the MariaDB development tree we'd
better drop oqgraph.


It's not much in size, it's numbers of files that you're concerned about 
- and I fully share your concern.
I'd need to check (and possibly verify with Antony) how the Boost 
include logic works and if we can therefore strip it to the bits OQGRAPH 
actually uses.


My concern is that Oqgraph includes as a major part of its implementation a
generic library like Boost. Suppose tomorrow we get another storage engine
(or any plugin) that also needs part of Boost, and then another one that uses
STL, and then another one that, let's say, uses LEDA. All great libraries.

Do you think that it is reasonable that all such projects should follow
the approach you suggest, and internally embed the libraries they use (or parts
thereof)?


Timour



Cheers,
Arjen.



___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


Re: [Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2785)

2009-12-14 Thread Arjen Lentz

Hi Sergei

On 14/12/2009, at 5:58 PM, Sergei Golubchik wrote:
But independent of that, I think boost as an external dependency  
should

be fine. At least until there will be an indication that it's not.



Yep, we're looking at doing exactly that.
We'll see if that breaks on some of our build platforms, and then deal  
with the why/what.



Cheers,
Arjen.
--
Arjen Lentz, Exec.Director @ Open Query (http://openquery.com)
Exceptional Services for MySQL at a fixed budget.

Follow our blog at http://openquery.com/blog/
OurDelta: packages for MySQL and MariaDB @ http://ourdelta.org










___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp


[Maria-developers] bzr commit into MariaDB 5.1, with Maria 1.5:maria branch (knielsen:2776)

2009-12-14 Thread knielsen
#At lp:maria

 2776 kniel...@knielsen-hq.org  2009-12-14 [merge]
  Merge latest PBXT fixes from Paul.
  modified:
storage/pbxt/src/myxt_xt.cc

=== modified file 'storage/pbxt/src/myxt_xt.cc'
--- a/storage/pbxt/src/myxt_xt.cc   2009-12-01 09:50:46 +
+++ b/storage/pbxt/src/myxt_xt.cc   2009-12-10 11:36:05 +
@@ -3041,14 +3041,6 @@ xtPublic MX_CHARSET_INFO *myxt_getcharse
return (MX_CHARSET_INFO *)&my_charset_utf8_general_ci;
 }
 
-#ifdef DBUG_OFF
-//typedef struct st_plugin_int *plugin_ref;
-#define REF_MYSQL_PLUGIN(x)(x)
-#else
-//typedef struct st_plugin_int **plugin_ref;
-#define REF_MYSQL_PLUGIN(x)(*(x))
-#endif
-
 xtPublic void *myxt_create_thread()
 {
 #ifdef DRIZZLED
@@ -3109,14 +3101,18 @@ xtPublic void *myxt_create_thread()
 
/*
 * If PBXT is the default storage engine, then creating any THD objects 
will add extra 
-* references to the PBXT plugin object and will effectively deadlock 
the plugin so 
-* that server will have to force plugin shutdown. To avoid deadlocking 
and forced shutdown 
-* we must dereference the plugin after creating THD objects.
+* references to the PBXT plugin object. because the threads are 
created but PBXT
+* this creates a self reference, and the reference count does not go 
to zero
+* on shutdown.
+*
+* The server then issues a message that it is forcing shutdown of the 
plugin.
+*
+* However, the engine reference is not required by the THDs used by 
PBXT, so 
+* I just remove them here.
 */
-   LEX_STRING& plugin_name = 
REF_MYSQL_PLUGIN(new_thd->variables.table_plugin)->name;
-   if ((plugin_name.length == 4) && (strncmp(plugin_name.str, "PBXT", 
plugin_name.length) == 0)) {
-   REF_MYSQL_PLUGIN(new_thd->variables.table_plugin)->ref_count--;
-   }
+   plugin_unlock(NULL, new_thd->variables.table_plugin);
+   new_thd->variables.table_plugin = NULL;
+
new_thd->thread_stack = (char *) &new_thd;
new_thd->store_globals();
lex_start(new_thd);
@@ -3151,17 +3147,6 @@ xtPublic void myxt_destroy_thread(void *
 #else
close_thread_tables(thd);
 #endif
-
-   /*
-* In myxt_create_thread we decremented plugin ref-count to avoid 
dead-locking.
-* Here we need to increment ref-count to avoid assertion failures.
-*/
-   if (thd->variables.table_plugin) {
-   LEX_STRING& plugin_name = 
REF_MYSQL_PLUGIN(thd->variables.table_plugin)->name;
-   if ((plugin_name.length == 4) && (strncmp(plugin_name.str, 
"PBXT", plugin_name.length) == 0)) {
-   
REF_MYSQL_PLUGIN(thd->variables.table_plugin)->ref_count++;
-   }
-   }

delete thd;
 


___
Mailing list: https://launchpad.net/~maria-developers
Post to : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp