[Pkg-mysql-commits] r1228 - in trunk: . debian debian/patches

Monty Taylor mtaylor-guest at alioth.debian.org
Wed May 14 09:12:36 UTC 2008


tags 480954 pending
thanks

Author: mtaylor-guest
Date: 2008-05-14 09:12:36 +0000 (Wed, 14 May 2008)
New Revision: 1228

Added:
   trunk/debian/patches/93_fix_pushdown_conditions.dpatch
Modified:
   trunk/
   trunk/debian/changelog
   trunk/debian/patches/00list
Log:
Fixed invalid pushdown conditions bug.
http://bugs.mysql.com/bug.php?id=26963 is fixed with
http://lists.mysql.com/commits/21697 in debian with
93_fix_pushdown_conditions.dpatch (closes: #480954)


Property changes on: trunk
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: 2008-05-14 01:17:26.930000067 -0700
committer: Monty Taylor <monty at inaugust.com>
properties: 
	branch-nick: trunk

   + timestamp: 2008-05-14 02:05:39.115999937 -0700
committer: Monty Taylor <monty at inaugust.com>
properties: 
	branch-nick: trunk

Name: bzr:file-ids
   - 
   + debian/patches/93_fix_pushdown_conditions.dpatch	93_fix_pushdown_cond-20080514090439-moti657qv1qzemaa-1

Name: bzr:revision-id:v3-trunk0
   - 588 monty at inaugust.com-20071218115655-e9a3qdeanxkm37q0
589 monty at inaugust.com-20071219010144-z07rx72f4aryuxd5
590 monty at inaugust.com-20071219010251-1xj8ebk20xcavzzz
591 monty at inaugust.com-20071219133703-cfc7gcr1mfrbff5k
594 monty at inaugust.com-20071219160333-4t3d5sm5ou2cnx42
600 monty at inaugust.com-20071227231232-38mmb4bf89bai9tz
601 monty at inaugust.com-20071227231533-6u75bgvr52589l9d
602 monty at inaugust.com-20071227232516-5e1uuemjok6gax36
603 monty at inaugust.com-20071227232613-mvmphhlfm3ucfjre
604 monty at inaugust.com-20071227232728-26ik99mzw0yhq4vi
605 monty at inaugust.com-20071227234930-zlri2er7sq9obnot
606 monty at inaugust.com-20071228004201-2uib1ipksw8yeodu
607 monty at inaugust.com-20080218183922-0rfctqrxnkvqirvz
608 monty at inaugust.com-20080218184224-jq7u016hfc6gvt16
609 monty at inaugust.com-20080218191319-s202z6cpd2wkk6mx
610 monty at inaugust.com-20080218193205-41o5j3pbcsjpnwhp
611 monty at inaugust.com-20080219191434-rk81tk20rs716j21
612 monty at inaugust.com-20080219191453-lt7mlbmdj6vqmv2z
613 monty at inaugust.com-20080219191808-lm6fzgy5dldmgs00
614 monty at inaugust.com-20080219195801-1qsjv2edorbp07gu
615 monty at inaugust.com-20080227185513-vudpt1mtynu6jc4v
616 monty at inaugust.com-20080227193209-cl6e3g7cmlurkc2f
620 monty at inaugust.com-20080301125100-u5yhvmmzuf7g8baz
629 monty at inaugust.com-20080330023953-bpbgyxivz97shb09
630 monty at inaugust.com-20080330024030-0wolpf04aabjsrom
633 monty at inaugust.com-20080401091054-yra08fd5sy0jopl4
635 monty at inaugust.com-20080419183446-d38duis16nygevbi
636 monty at inaugust.com-20080426181506-gc9m9zmjme3j0eo1
637 monty at inaugust.com-20080428050351-bem6zu0e1njwl7r2
638 monty at inaugust.com-20080428050651-epbwxsjsty9iczis
639 monty at inaugust.com-20080430032302-fdwn2tyfq0a4z2se
640 monty at inaugust.com-20080430034935-hfjeryfmctdxn71o
641 monty at inaugust.com-20080504031133-2hzhd03hxtx800xp
642 monty at inaugust.com-20080514074818-6as1luwvf7lx2x8b
643 monty at inaugust.com-20080514080647-qk1wlmvy88ji57qv
644 monty at inaugust.com-20080514081726-u0nh8meg63hwohpc

   + 588 monty at inaugust.com-20071218115655-e9a3qdeanxkm37q0
589 monty at inaugust.com-20071219010144-z07rx72f4aryuxd5
590 monty at inaugust.com-20071219010251-1xj8ebk20xcavzzz
591 monty at inaugust.com-20071219133703-cfc7gcr1mfrbff5k
594 monty at inaugust.com-20071219160333-4t3d5sm5ou2cnx42
600 monty at inaugust.com-20071227231232-38mmb4bf89bai9tz
601 monty at inaugust.com-20071227231533-6u75bgvr52589l9d
602 monty at inaugust.com-20071227232516-5e1uuemjok6gax36
603 monty at inaugust.com-20071227232613-mvmphhlfm3ucfjre
604 monty at inaugust.com-20071227232728-26ik99mzw0yhq4vi
605 monty at inaugust.com-20071227234930-zlri2er7sq9obnot
606 monty at inaugust.com-20071228004201-2uib1ipksw8yeodu
607 monty at inaugust.com-20080218183922-0rfctqrxnkvqirvz
608 monty at inaugust.com-20080218184224-jq7u016hfc6gvt16
609 monty at inaugust.com-20080218191319-s202z6cpd2wkk6mx
610 monty at inaugust.com-20080218193205-41o5j3pbcsjpnwhp
611 monty at inaugust.com-20080219191434-rk81tk20rs716j21
612 monty at inaugust.com-20080219191453-lt7mlbmdj6vqmv2z
613 monty at inaugust.com-20080219191808-lm6fzgy5dldmgs00
614 monty at inaugust.com-20080219195801-1qsjv2edorbp07gu
615 monty at inaugust.com-20080227185513-vudpt1mtynu6jc4v
616 monty at inaugust.com-20080227193209-cl6e3g7cmlurkc2f
620 monty at inaugust.com-20080301125100-u5yhvmmzuf7g8baz
629 monty at inaugust.com-20080330023953-bpbgyxivz97shb09
630 monty at inaugust.com-20080330024030-0wolpf04aabjsrom
633 monty at inaugust.com-20080401091054-yra08fd5sy0jopl4
635 monty at inaugust.com-20080419183446-d38duis16nygevbi
636 monty at inaugust.com-20080426181506-gc9m9zmjme3j0eo1
637 monty at inaugust.com-20080428050351-bem6zu0e1njwl7r2
638 monty at inaugust.com-20080428050651-epbwxsjsty9iczis
639 monty at inaugust.com-20080430032302-fdwn2tyfq0a4z2se
640 monty at inaugust.com-20080430034935-hfjeryfmctdxn71o
641 monty at inaugust.com-20080504031133-2hzhd03hxtx800xp
642 monty at inaugust.com-20080514074818-6as1luwvf7lx2x8b
643 monty at inaugust.com-20080514080647-qk1wlmvy88ji57qv
644 monty at inaugust.com-20080514081726-u0nh8meg63hwohpc
645 monty at inaugust.com-20080514090539-w3rgumz5y5ok1dt8


Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2008-05-14 08:19:08 UTC (rev 1227)
+++ trunk/debian/changelog	2008-05-14 09:12:36 UTC (rev 1228)
@@ -15,8 +15,12 @@
     a public program.
   * Fix debian-start.inc.sh for table names with characters needing quotes.
     Thanks Felix Rublack! (closes: #481154) 
+  * Fixed invalid pushdown conditions bug.
+    http://bugs.mysql.com/bug.php?id=26963 is fixed with
+    http://lists.mysql.com/commits/21697 in debian with
+    93_fix_pushdown_conditions.dpatch (closes: #480954)
 
- -- Monty Taylor <mordred at inaugust.com>  Wed, 14 May 2008 01:08:03 -0700
+ -- Monty Taylor <mordred at inaugust.com>  Wed, 14 May 2008 02:00:36 -0700
 
 mysql-dfsg-5.0 (5.0.51a-6) unstable; urgency=low
 

Modified: trunk/debian/patches/00list
===================================================================
--- trunk/debian/patches/00list	2008-05-14 08:19:08 UTC (rev 1227)
+++ trunk/debian/patches/00list	2008-05-14 09:12:36 UTC (rev 1228)
@@ -19,3 +19,4 @@
 90_upstreamdebiandir.dpatch
 91_SECURITY_CVE-2007-5925.dpatch
 92_SECURITY_CVE-2008-2079.dpatch
+93_fix_pushdown_conditions.dpatch

Added: trunk/debian/patches/93_fix_pushdown_conditions.dpatch
===================================================================
--- trunk/debian/patches/93_fix_pushdown_conditions.dpatch	                        (rev 0)
+++ trunk/debian/patches/93_fix_pushdown_conditions.dpatch	2008-05-14 09:12:36 UTC (rev 1228)
@@ -0,0 +1,147 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 93_fix_pushdown_conditions.dpatch by Monty Taylor <mordred at inaugust.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: http://bugs.mysql.com/bug.php?id=26963
+
+ at DPATCH@
+diff -Nru a/mysql-test/r/select.result b/mysql-test/r/select.result
+--- a/mysql-test/r/select.result	2008-05-14 01:58:56 -07:00
++++ b/mysql-test/r/select.result	2008-05-14 01:58:56 -07:00
+@@ -3933,4 +3933,42 @@
+ aa  	aa	2
+ aa	aa	2
+ DROP TABLE t1,t2;
++CREATE TABLE t1 (
++access_id int NOT NULL default '0',
++name varchar(20) default NULL,
++rank int NOT NULL default '0',
++KEY idx (access_id)
++);
++CREATE TABLE t2 (
++faq_group_id int NOT NULL default '0',
++faq_id int NOT NULL default '0',
++access_id int default NULL,
++UNIQUE KEY idx1 (faq_id),
++KEY idx2 (faq_group_id,faq_id)
++);
++INSERT INTO t1 VALUES 
++(1,'Everyone',2),(2,'Help',3),(3,'Technical Support',1),(4,'Chat User',4);
++INSERT INTO t2 VALUES
++(261,265,1),(490,494,1);
++SELECT t2.faq_id 
++FROM t1 INNER JOIN t2 IGNORE INDEX (idx1)
++ON (t1.access_id = t2.access_id)
++LEFT JOIN t2 t
++ON (t.faq_group_id = t2.faq_group_id AND
++find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
++WHERE
++t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
++faq_id
++265
++SELECT t2.faq_id 
++FROM t1 INNER JOIN t2
++ON (t1.access_id = t2.access_id)
++LEFT JOIN t2 t
++ON (t.faq_group_id = t2.faq_group_id AND
++find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
++WHERE
++t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
++faq_id
++265
++DROP TABLE t1,t2;
+ End of 5.0 tests
+diff -Nru a/mysql-test/t/select.test b/mysql-test/t/select.test
+--- a/mysql-test/t/select.test	2008-05-14 01:58:56 -07:00
++++ b/mysql-test/t/select.test	2008-05-14 01:58:56 -07:00
+@@ -3299,4 +3299,51 @@
+ 
+ DROP TABLE t1,t2;
+ 
++
++#
++# Bug #26963: join with predicates that contain fields from equalities evaluated
++#             to constants after constant table substitution
++#
++
++CREATE TABLE t1 (
++ access_id int NOT NULL default '0',
++ name varchar(20) default NULL,
++ rank int NOT NULL default '0',
++ KEY idx (access_id)
++);
++
++CREATE TABLE t2 (
++  faq_group_id int NOT NULL default '0',
++  faq_id int NOT NULL default '0',
++  access_id int default NULL,
++  UNIQUE KEY idx1 (faq_id),
++  KEY idx2 (faq_group_id,faq_id)
++);
++
++INSERT INTO t1 VALUES 
++  (1,'Everyone',2),(2,'Help',3),(3,'Technical Support',1),(4,'Chat User',4);
++INSERT INTO t2 VALUES
++  (261,265,1),(490,494,1);
++
++
++SELECT t2.faq_id 
++  FROM t1 INNER JOIN t2 IGNORE INDEX (idx1)
++       ON (t1.access_id = t2.access_id)
++       LEFT JOIN t2 t
++       ON (t.faq_group_id = t2.faq_group_id AND
++           find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
++   WHERE
++     t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
++
++SELECT t2.faq_id 
++  FROM t1 INNER JOIN t2
++       ON (t1.access_id = t2.access_id)
++       LEFT JOIN t2 t
++       ON (t.faq_group_id = t2.faq_group_id AND
++           find_in_set(t.access_id, '1,4') < find_in_set(t2.access_id, '1,4'))
++   WHERE
++     t2.access_id IN (1,4) AND t.access_id IS NULL AND t2.faq_id in (265);
++
++DROP TABLE t1,t2;
++
+ --echo End of 5.0 tests
+diff -Nru a/sql/item.cc b/sql/item.cc
+--- a/sql/item.cc	2008-05-14 01:58:56 -07:00
++++ b/sql/item.cc	2008-05-14 01:58:56 -07:00
+@@ -4075,7 +4075,9 @@
+   DESCRIPTION
+     The function returns a pointer to an item that is taken from
+     the very beginning of the item_equal list which the Item_field
+-    object refers to (belongs to).  
++    object refers to (belongs to) unless item_equal contains  a constant
++    item. In this case the function returns this constant item, 
++    (if the substitution does not require conversion).   
+     If the Item_field object does not refer any Item_equal object
+     'this' is returned 
+ 
+@@ -4084,7 +4086,8 @@
+     of the thransformer method.  
+ 
+   RETURN VALUES
+-    pointer to a replacement Item_field if there is a better equal item;
++    pointer to a replacement Item_field if there is a better equal item or
++    a pointer to a constant equal item;
+     this - otherwise.
+ */
+ 
+@@ -4092,6 +4095,14 @@
+ {
+   if (item_equal)
+   {
++    Item *const_item= item_equal->get_const();
++    if (const_item)
++    {
++      if (cmp_context != (Item_result)-1 &&
++          const_item->cmp_context != cmp_context)
++        return this;
++      return const_item;
++    }
+     Item_field *subst= item_equal->get_first();
+     if (subst && !field->eq(subst->field))
+       return subst;




More information about the Pkg-mysql-commits mailing list