List:Commits« Previous MessageNext Message »
From:holyfoot Date:June 13 2007 1:51pm
Subject:bk commit into 5.1 tree (holyfoot:1.2547)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of hf. When hf does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-06-13 18:51:13+05:00, holyfoot@hfmain.(none) +4 -0
  Merge bk@stripped:mysql-5.1
  into  mysql.com:/home/hf/work/mysql-5.1.spa
  MERGE: 1.2500.24.3

  BitKeeper/etc/ignore@stripped, 2007-06-13 18:51:03+05:00, holyfoot@stripped +2 -2
    auto-union
    MERGE: 1.291.1.1

  sql/Makefile.am@stripped, 2007-06-13 18:51:09+05:00, holyfoot@hfmain.(none) +0 -0
    Auto merged
    MERGE: 1.185.1.1

  sql/item_create.cc@stripped, 2007-06-13 18:51:09+05:00, holyfoot@hfmain.(none) +0 -0
    Auto merged
    MERGE: 1.79.1.2

  sql/sql_yacc.yy@stripped, 2007-06-13 18:51:09+05:00, holyfoot@hfmain.(none) +0 -0
    Auto merged
    MERGE: 1.569.3.1

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	holyfoot
# Host:	hfmain.(none)
# Root:	/home/hf/work/mysql-5.1.spa/RESYNC

--- 1.186/sql/Makefile.am	2007-06-13 18:51:19 +05:00
+++ 1.187/sql/Makefile.am	2007-06-13 18:51:19 +05:00
@@ -38,7 +38,8 @@ mysqld_LDADD =		@MYSQLD_EXTRA_LDFLAGS@ \
 			@pstack_libs@ \
 			@mysql_plugin_libs@ \
 			$(LDADD)  $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
-                        $(yassl_libs) $(openssl_libs)
+			$(yassl_libs) $(openssl_libs) \
+			@MYSQLD_EXTRA_LIBS@
 
 noinst_HEADERS =	item.h item_func.h item_sum.h item_cmpfunc.h \
 			item_strfunc.h item_timefunc.h \

--- 1.80/sql/item_create.cc	2007-06-13 18:51:19 +05:00
+++ 1.81/sql/item_create.cc	2007-06-13 18:51:19 +05:00
@@ -504,16 +504,16 @@ protected:
 
 
 #ifdef HAVE_SPATIAL
-class Create_func_contains : public Create_func_arg2
+class Create_func_mbrcontains : public Create_func_arg2
 {
 public:
   virtual Item* create(THD *thd, Item *arg1, Item *arg2);
 
-  static Create_func_contains s_singleton;
+  static Create_func_mbrcontains s_singleton;
 
 protected:
-  Create_func_contains() {}
-  virtual ~Create_func_contains() {}
+  Create_func_mbrcontains() {}
+  virtual ~Create_func_mbrcontains() {}
 };
 #endif
 
@@ -744,6 +744,19 @@ protected:
 
 
 #ifdef HAVE_SPATIAL
+class Create_func_mbr_disjoint : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_mbr_disjoint s_singleton;
+
+protected:
+  Create_func_mbr_disjoint() {}
+  virtual ~Create_func_mbr_disjoint() {}
+};
+
+
 class Create_func_disjoint : public Create_func_arg2
 {
 public:
@@ -755,6 +768,19 @@ protected:
   Create_func_disjoint() {}
   virtual ~Create_func_disjoint() {}
 };
+
+
+class Create_func_distance : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_distance s_singleton;
+
+protected:
+  Create_func_distance() {}
+  virtual ~Create_func_distance() {}
+};
 #endif
 
 
@@ -809,10 +835,8 @@ protected:
   Create_func_endpoint() {}
   virtual ~Create_func_endpoint() {}
 };
-#endif
 
 
-#ifdef HAVE_SPATIAL
 class Create_func_envelope : public Create_func_arg1
 {
 public:
@@ -824,10 +848,21 @@ protected:
   Create_func_envelope() {}
   virtual ~Create_func_envelope() {}
 };
-#endif
 
 
-#ifdef HAVE_SPATIAL
+class Create_func_mbr_equals : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_mbr_equals s_singleton;
+
+protected:
+  Create_func_mbr_equals() {}
+  virtual ~Create_func_mbr_equals() {}
+};
+
+
 class Create_func_equals : public Create_func_arg2
 {
 public:
@@ -1152,10 +1187,21 @@ protected:
   Create_func_interiorringn() {}
   virtual ~Create_func_interiorringn() {}
 };
-#endif
 
 
-#ifdef HAVE_SPATIAL
+class Create_func_mbr_intersects : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_mbr_intersects s_singleton;
+
+protected:
+  Create_func_mbr_intersects() {}
+  virtual ~Create_func_mbr_intersects() {}
+};
+
+
 class Create_func_intersects : public Create_func_arg2
 {
 public:
@@ -1167,7 +1213,72 @@ protected:
   Create_func_intersects() {}
   virtual ~Create_func_intersects() {}
 };
-#endif
+
+
+class Create_func_intersection : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_intersection s_singleton;
+
+protected:
+  Create_func_intersection() {}
+  virtual ~Create_func_intersection() {}
+};
+
+
+class Create_func_difference : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_difference s_singleton;
+
+protected:
+  Create_func_difference() {}
+  virtual ~Create_func_difference() {}
+};
+
+
+class Create_func_union : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_union s_singleton;
+
+protected:
+  Create_func_union() {}
+  virtual ~Create_func_union() {}
+};
+
+
+class Create_func_symdifference : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_symdifference s_singleton;
+
+protected:
+  Create_func_symdifference() {}
+  virtual ~Create_func_symdifference() {}
+};
+
+
+class Create_func_buffer : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_buffer s_singleton;
+
+protected:
+  Create_func_buffer() {}
+  virtual ~Create_func_buffer() {}
+};
+#endif /*HAVE_SPATIAL*/
 
 
 class Create_func_is_free_lock : public Create_func_arg1
@@ -1599,6 +1710,19 @@ protected:
 
 
 #ifdef HAVE_SPATIAL
+class Create_func_mbr_overlaps : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_mbr_overlaps s_singleton;
+
+protected:
+  Create_func_mbr_overlaps() {}
+  virtual ~Create_func_mbr_overlaps() {}
+};
+
+
 class Create_func_overlaps : public Create_func_arg2
 {
 public:
@@ -2049,6 +2173,19 @@ protected:
 
 
 #ifdef HAVE_SPATIAL
+class Create_func_mbr_touches : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_mbr_touches s_singleton;
+
+protected:
+  Create_func_mbr_touches() {}
+  virtual ~Create_func_mbr_touches() {}
+};
+
+
 class Create_func_touches : public Create_func_arg2
 {
 public:
@@ -2194,6 +2331,19 @@ protected:
 
 
 #ifdef HAVE_SPATIAL
+class Create_func_mbr_within : public Create_func_arg2
+{
+public:
+  virtual Item* create(THD *thd, Item *arg1, Item *arg2);
+
+  static Create_func_mbr_within s_singleton;
+
+protected:
+  Create_func_mbr_within() {}
+  virtual ~Create_func_mbr_within() {}
+};
+
+
 class Create_func_within : public Create_func_arg2
 {
 public:
@@ -2865,13 +3015,13 @@ Create_func_connection_id::create(THD *t
 
 
 #ifdef HAVE_SPATIAL
-Create_func_contains Create_func_contains::s_singleton;
+Create_func_mbrcontains Create_func_mbrcontains::s_singleton;
 
 Item*
-Create_func_contains::create(THD *thd, Item *arg1, Item *arg2)
+Create_func_mbrcontains::create(THD *thd, Item *arg1, Item *arg2)
 {
-  return new (thd->mem_root) Item_func_spatial_rel(arg1, arg2,
-                                                   Item_func::SP_CONTAINS_FUNC);
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                               Item_func::SP_CONTAINS_FUNC);
 }
 #endif
 
@@ -3097,6 +3247,16 @@ Create_func_dimension::create(THD *thd, 
 
 
 #ifdef HAVE_SPATIAL
+Create_func_mbr_disjoint Create_func_mbr_disjoint::s_singleton;
+
+Item*
+Create_func_mbr_disjoint::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                                                   Item_func::SP_DISJOINT_FUNC);
+}
+
+
 Create_func_disjoint Create_func_disjoint::s_singleton;
 
 Item*
@@ -3105,6 +3265,15 @@ Create_func_disjoint::create(THD *thd, I
   return new (thd->mem_root) Item_func_spatial_rel(arg1, arg2,
                                                    Item_func::SP_DISJOINT_FUNC);
 }
+
+
+Create_func_distance Create_func_distance::s_singleton;
+
+Item*
+Create_func_distance::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_distance(arg1, arg2);
+}
 #endif
 
 
@@ -3185,10 +3354,8 @@ Create_func_endpoint::create(THD *thd, I
   return new (thd->mem_root) Item_func_spatial_decomp(arg1,
                                                       Item_func::SP_ENDPOINT);
 }
-#endif
 
 
-#ifdef HAVE_SPATIAL
 Create_func_envelope Create_func_envelope::s_singleton;
 
 Item*
@@ -3196,10 +3363,18 @@ Create_func_envelope::create(THD *thd, I
 {
   return new (thd->mem_root) Item_func_envelope(arg1);
 }
-#endif
 
 
-#ifdef HAVE_SPATIAL
+Create_func_mbr_equals Create_func_mbr_equals::s_singleton;
+
+Item*
+Create_func_mbr_equals::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                                                   Item_func::SP_EQUALS_FUNC);
+}
+
+
 Create_func_equals Create_func_equals::s_singleton;
 
 Item*
@@ -3589,10 +3764,18 @@ Create_func_interiorringn::create(THD *t
   return new (thd->mem_root) Item_func_spatial_decomp_n(arg1, arg2,
                                                         Item_func::SP_INTERIORRINGN);
 }
-#endif
 
 
-#ifdef HAVE_SPATIAL
+Create_func_mbr_intersects Create_func_mbr_intersects::s_singleton;
+
+Item*
+Create_func_mbr_intersects::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                                                   Item_func::SP_INTERSECTS_FUNC);
+}
+
+
 Create_func_intersects Create_func_intersects::s_singleton;
 
 Item*
@@ -3601,7 +3784,56 @@ Create_func_intersects::create(THD *thd,
   return new (thd->mem_root) Item_func_spatial_rel(arg1, arg2,
                                                    Item_func::SP_INTERSECTS_FUNC);
 }
-#endif
+
+
+Create_func_intersection Create_func_intersection::s_singleton;
+
+Item*
+Create_func_intersection::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_operation(arg1, arg2,
+                               gcalc_function::op_intersection);
+}
+
+
+Create_func_difference Create_func_difference::s_singleton;
+
+Item*
+Create_func_difference::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_operation(arg1, arg2,
+                               gcalc_function::op_difference);
+}
+
+
+Create_func_union Create_func_union::s_singleton;
+
+Item*
+Create_func_union::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_operation(arg1, arg2,
+                               gcalc_function::op_union);
+}
+
+
+Create_func_symdifference Create_func_symdifference::s_singleton;
+
+Item*
+Create_func_symdifference::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_operation(arg1, arg2,
+                               gcalc_function::op_symdifference);
+}
+
+
+Create_func_buffer Create_func_buffer::s_singleton;
+
+Item*
+Create_func_buffer::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_buffer(arg1, arg2);
+}
+#endif /*HAVE_SPATIAL*/
 
 
 Create_func_is_free_lock Create_func_is_free_lock::s_singleton;
@@ -4056,6 +4288,16 @@ Create_func_ord::create(THD *thd, Item *
 
 
 #ifdef HAVE_SPATIAL
+Create_func_mbr_overlaps Create_func_mbr_overlaps::s_singleton;
+
+Item*
+Create_func_mbr_overlaps::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                                                   Item_func::SP_OVERLAPS_FUNC);
+}
+
+
 Create_func_overlaps Create_func_overlaps::s_singleton;
 
 Item*
@@ -4453,6 +4695,16 @@ Create_func_to_days::create(THD *thd, It
 
 
 #ifdef HAVE_SPATIAL
+Create_func_mbr_touches Create_func_mbr_touches::s_singleton;
+
+Item*
+Create_func_mbr_touches::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                                                   Item_func::SP_TOUCHES_FUNC);
+}
+
+
 Create_func_touches Create_func_touches::s_singleton;
 
 Item*
@@ -4589,6 +4841,16 @@ Create_func_weekofyear::create(THD *thd,
 
 
 #ifdef HAVE_SPATIAL
+Create_func_mbr_within Create_func_mbr_within::s_singleton;
+
+Item*
+Create_func_mbr_within::create(THD *thd, Item *arg1, Item *arg2)
+{
+  return new (thd->mem_root) Item_func_spatial_mbr_rel(arg1, arg2,
+                                                   Item_func::SP_WITHIN_FUNC);
+}
+
+
 Create_func_within Create_func_within::s_singleton;
 
 Item*
@@ -4597,10 +4859,8 @@ Create_func_within::create(THD *thd, Ite
   return new (thd->mem_root) Item_func_spatial_rel(arg1, arg2,
                                                    Item_func::SP_WITHIN_FUNC);
 }
-#endif
 
 
-#ifdef HAVE_SPATIAL
 Create_func_x Create_func_x::s_singleton;
 
 Item*
@@ -4637,7 +4897,8 @@ Create_func_y::create(THD *thd, Item *ar
 {
   return new (thd->mem_root) Item_func_y(arg1);
 }
-#endif
+
+#endif /*HAVE_SPATIAL*/
 
 
 Create_func_year_week Create_func_year_week::s_singleton;
@@ -4721,6 +4982,7 @@ static Native_func_registry func_array[]
   { { C_STRING_WITH_LEN("BENCHMARK") }, BUILDER(Create_func_benchmark)},
   { { C_STRING_WITH_LEN("BIN") }, BUILDER(Create_func_bin)},
   { { C_STRING_WITH_LEN("BIT_COUNT") }, BUILDER(Create_func_bit_count)},
+  { { C_STRING_WITH_LEN("BUFFER") }, GEOM_BUILDER(Create_func_buffer)},
   { { C_STRING_WITH_LEN("BIT_LENGTH") }, BUILDER(Create_func_bit_length)},
   { { C_STRING_WITH_LEN("CEIL") }, BUILDER(Create_func_ceiling)},
   { { C_STRING_WITH_LEN("CEILING") }, BUILDER(Create_func_ceiling)},
@@ -4747,8 +5009,10 @@ static Native_func_registry func_array[]
   { { C_STRING_WITH_LEN("DECODE") }, BUILDER(Create_func_decode)},
   { { C_STRING_WITH_LEN("DEGREES") }, BUILDER(Create_func_degrees)},
   { { C_STRING_WITH_LEN("DES_DECRYPT") }, BUILDER(Create_func_des_decrypt)},
+  { { C_STRING_WITH_LEN("DIFFERENCE") }, GEOM_BUILDER(Create_func_difference)},
   { { C_STRING_WITH_LEN("DES_ENCRYPT") }, BUILDER(Create_func_des_encrypt)},
   { { C_STRING_WITH_LEN("DIMENSION") }, GEOM_BUILDER(Create_func_dimension)},
+  { { C_STRING_WITH_LEN("DISTANCE") }, GEOM_BUILDER(Create_func_distance)},
   { { C_STRING_WITH_LEN("DISJOINT") }, GEOM_BUILDER(Create_func_disjoint)},
   { { C_STRING_WITH_LEN("ELT") }, BUILDER(Create_func_elt)},
   { { C_STRING_WITH_LEN("ENCODE") }, BUILDER(Create_func_encode)},
@@ -4815,13 +5079,13 @@ static Native_func_registry func_array[]
   { { C_STRING_WITH_LEN("MAKETIME") }, BUILDER(Create_func_maketime)},
   { { C_STRING_WITH_LEN("MAKE_SET") }, BUILDER(Create_func_make_set)},
   { { C_STRING_WITH_LEN("MASTER_POS_WAIT") }, BUILDER(Create_func_master_pos_wait)},
-  { { C_STRING_WITH_LEN("MBRCONTAINS") }, GEOM_BUILDER(Create_func_contains)},
-  { { C_STRING_WITH_LEN("MBRDISJOINT") }, GEOM_BUILDER(Create_func_disjoint)},
-  { { C_STRING_WITH_LEN("MBREQUAL") }, GEOM_BUILDER(Create_func_equals)},
-  { { C_STRING_WITH_LEN("MBRINTERSECTS") }, GEOM_BUILDER(Create_func_intersects)},
-  { { C_STRING_WITH_LEN("MBROVERLAPS") }, GEOM_BUILDER(Create_func_overlaps)},
-  { { C_STRING_WITH_LEN("MBRTOUCHES") }, GEOM_BUILDER(Create_func_touches)},
-  { { C_STRING_WITH_LEN("MBRWITHIN") }, GEOM_BUILDER(Create_func_within)},
+  { { C_STRING_WITH_LEN("MBRCONTAINS") }, GEOM_BUILDER(Create_func_mbrcontains)},
+  { { C_STRING_WITH_LEN("MBRDISJOINT") }, GEOM_BUILDER(Create_func_mbr_disjoint)},
+  { { C_STRING_WITH_LEN("MBREQUAL") }, GEOM_BUILDER(Create_func_mbr_equals)},
+  { { C_STRING_WITH_LEN("MBRINTERSECTS") }, GEOM_BUILDER(Create_func_mbr_intersects)},
+  { { C_STRING_WITH_LEN("MBROVERLAPS") }, GEOM_BUILDER(Create_func_mbr_overlaps)},
+  { { C_STRING_WITH_LEN("MBRTOUCHES") }, GEOM_BUILDER(Create_func_mbr_touches)},
+  { { C_STRING_WITH_LEN("MBRWITHIN") }, GEOM_BUILDER(Create_func_mbr_within)},
   { { C_STRING_WITH_LEN("MD5") }, BUILDER(Create_func_md5)},
   { { C_STRING_WITH_LEN("MLINEFROMTEXT") }, GEOM_BUILDER(Create_func_geometry_from_text)},
   { { C_STRING_WITH_LEN("MLINEFROMWKB") }, GEOM_BUILDER(Create_func_geometry_from_wkb)},
@@ -4880,6 +5144,7 @@ static Native_func_registry func_array[]
   { { C_STRING_WITH_LEN("STRCMP") }, BUILDER(Create_func_strcmp)},
   { { C_STRING_WITH_LEN("STR_TO_DATE") }, BUILDER(Create_func_str_to_date)},
   { { C_STRING_WITH_LEN("SUBSTRING_INDEX") }, BUILDER(Create_func_substr_index)},
+  { { C_STRING_WITH_LEN("SYMDIFFERENCE") }, GEOM_BUILDER(Create_func_symdifference)},
   { { C_STRING_WITH_LEN("SUBTIME") }, BUILDER(Create_func_subtime)},
   { { C_STRING_WITH_LEN("TAN") }, BUILDER(Create_func_tan)},
   { { C_STRING_WITH_LEN("TIMEDIFF") }, BUILDER(Create_func_timediff)},

--- 1.576/sql/sql_yacc.yy	2007-06-13 18:51:19 +05:00
+++ 1.577/sql/sql_yacc.yy	2007-06-13 18:51:19 +05:00
@@ -6841,6 +6841,12 @@ geometry_function:
 	                   Geometry::wkb_polygon,
                            Geometry::wkb_linestring));
           }
+	| UNION_SYM '(' expr ',' expr ')'
+	  {
+            $$= GEOM_NEW(YYTHD,
+                         Item_func_spatial_operation($3, $5,
+                                                     gcalc_function::op_union));
+          }
         ;
 
 /*

--- 1.293/BitKeeper/etc/ignore	2007-06-13 18:51:19 +05:00
+++ 1.294/BitKeeper/etc/ignore	2007-06-13 18:51:19 +05:00
@@ -1057,6 +1057,8 @@ libmysqld/examples/test-gdbinit
 libmysqld/field.cc
 libmysqld/field_conv.cc
 libmysqld/filesort.cc
+libmysqld/gcalc_slicescan.cc
+libmysqld/gcalc_tools.cc
 libmysqld/get_password.c
 libmysqld/gstream.cc
 libmysqld/ha_archive.cc
Thread
bk commit into 5.1 tree (holyfoot:1.2547)holyfoot13 Jun