packages: mysql/mysql.spec, mysql/sphinx-mysql.patch (NEW) - sphinx 2.0.1 beta

arekm arekm at pld-linux.org
Sun Aug 28 08:53:28 CEST 2011


Author: arekm                        Date: Sun Aug 28 06:53:28 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- sphinx 2.0.1 beta

---- Files affected:
packages/mysql:
   mysql.spec (1.556 -> 1.557) , sphinx-mysql.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/mysql/mysql.spec
diff -u packages/mysql/mysql.spec:1.556 packages/mysql/mysql.spec:1.557
--- packages/mysql/mysql.spec:1.556	Thu Aug 25 12:08:46 2011
+++ packages/mysql/mysql.spec	Sun Aug 28 08:53:22 2011
@@ -43,8 +43,8 @@
 # Source0Download: http://dev.mysql.com/downloads/mysql/5.5.html#downloads
 Source0:	http://vesta.informatik.rwth-aachen.de/mysql/Downloads/MySQL-5.5/%{name}-%{version}.tar.gz
 # Source0-md5:	306b5549c7bd72e8e705a890db0da82b
-Source100:	http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
-# Source100-md5:	7b9b618cb9b378f949bb1b91ddcc4f54
+Source100:	http://www.sphinxsearch.com/files/sphinx-2.0.1-beta.tar.gz
+# Source100-md5:	95c217d81d0b7a4ff73d5297318c3481
 Source1:	%{name}.init
 Source2:	%{name}.sysconfig
 Source3:	%{name}.logrotate
@@ -75,6 +75,8 @@
 Patch19:	%{name}-chain-certs.patch
 # from fedora
 Patch20:	%{name}-dubious-exports.patch
+# http://sphinxsearch.com/bugs/view.php?id=676
+Patch21:	sphinx-mysql.patch
 # <percona patches, updated with percona.sh>
 Patch100:	microsec_process.patch
 Patch101:	optimizer_fix.patch
@@ -562,6 +564,9 @@
 %patch14 -p0
 %patch19 -p1
 %patch20 -p1
+cd storage/sphinx
+%patch21 -p1
+cd ../..
 # <percona %patches>
 %patch100 -p1
 %patch101 -p1
@@ -1005,7 +1010,7 @@
 %attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_master.so
 %attr(755,root,root) %{_libdir}/%{name}/plugin/semisync_slave.so
 %if %{with sphinx}
-%attr(755,root,root) %{_libdir}/%{name}/plugin/sphinx.so
+%attr(755,root,root) %{_libdir}/%{name}/plugin/ha_sphinx.so
 %endif
 # for plugins
 %attr(755,root,root) %{_libdir}/libmysqlservices.so
@@ -1243,6 +1248,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.557  2011/08/28 06:53:22  arekm
+- sphinx 2.0.1 beta
+
 Revision 1.556  2011/08/25 10:08:46  arekm
 - up to 5.5.15
 

================================================================
Index: packages/mysql/sphinx-mysql.patch
diff -u /dev/null packages/mysql/sphinx-mysql.patch:1.1
--- /dev/null	Sun Aug 28 08:53:28 2011
+++ packages/mysql/sphinx-mysql.patch	Sun Aug 28 08:53:23 2011
@@ -0,0 +1,189 @@
+Index: mysqlse/ha_sphinx.cc
+===================================================================
+--- mysqlse/ha_sphinx.cc	(wersja 2920)
++++ mysqlse/ha_sphinx.cc	(wersja 2921)
+@@ -24,7 +24,10 @@
+ 
+ #include <mysql_version.h>
+ 
+-#if MYSQL_VERSION_ID>50100
++#if MYSQL_VERSION_ID>=50515
++#include "sql_class.h"
++#include "sql_array.h"
++#elif MYSQL_VERSION_ID>50100
+ #include "mysql_priv.h"
+ #include <mysql/plugin.h>
+ #else
+@@ -119,6 +122,22 @@
+ 
+ #endif
+ 
++#if MYSQL_VERSION_ID>=50515
++
++#define sphinx_hash_init my_hash_init
++#define sphinx_hash_free my_hash_free
++#define sphinx_hash_search my_hash_search
++#define sphinx_hash_delete my_hash_delete
++
++#else
++
++#define sphinx_hash_init hash_init
++#define sphinx_hash_free hash_free
++#define sphinx_hash_search hash_search
++#define sphinx_hash_delete hash_delete
++
++#endif
++
+ /////////////////////////////////////////////////////////////////////////////
+ 
+ // FIXME! make this all dynamic
+@@ -675,8 +694,8 @@
+ 	if ( !sphinx_init )
+ 	{
+ 		sphinx_init = 1;
+-		VOID ( pthread_mutex_init ( &sphinx_mutex, MY_MUTEX_INIT_FAST ) );
+-		hash_init ( &sphinx_open_tables, system_charset_info, 32, 0, 0,
++		void ( pthread_mutex_init ( &sphinx_mutex, MY_MUTEX_INIT_FAST ) );
++		sphinx_hash_init ( &sphinx_open_tables, system_charset_info, 32, 0, 0,
+ 			sphinx_get_key, 0, 0 );
+ 
+ 		#if MYSQL_VERSION_ID > 50100
+@@ -726,7 +745,7 @@
+ 		sphinx_init = 0;
+ 		if ( sphinx_open_tables.records )
+ 			error = 1;
+-		hash_free ( &sphinx_open_tables );
++		sphinx_hash_free ( &sphinx_open_tables );
+ 		pthread_mutex_destroy ( &sphinx_mutex );
+ 	}
+ 
+@@ -1131,12 +1150,12 @@
+ 	{
+ 		// check if we already have this share
+ #if MYSQL_VERSION_ID>=50120
+-		pShare = (CSphSEShare*) hash_search ( &sphinx_open_tables, (const uchar *) table_name, strlen(table_name) );
++		pShare = (CSphSEShare*) sphinx_hash_search ( &sphinx_open_tables, (const uchar *) table_name, strlen(table_name) );
+ #else
+ #ifdef __WIN__
+-		pShare = (CSphSEShare*) hash_search ( &sphinx_open_tables, (const byte *) table_name, strlen(table_name) );
++		pShare = (CSphSEShare*) sphinx_hash_search ( &sphinx_open_tables, (const byte *) table_name, strlen(table_name) );
+ #else
+-		pShare = (CSphSEShare*) hash_search ( &sphinx_open_tables, table_name, strlen(table_name) );
++		pShare = (CSphSEShare*) sphinx_hash_search ( &sphinx_open_tables, table_name, strlen(table_name) );
+ #endif // win
+ #endif // pre-5.1.20
+ 
+@@ -1188,7 +1207,7 @@
+ 
+ 	if ( !--pShare->m_iUseCount )
+ 	{
+-		hash_delete ( &sphinx_open_tables, (byte *)pShare );
++		sphinx_hash_delete ( &sphinx_open_tables, (byte *)pShare );
+ 		SafeDelete ( pShare );
+ 	}
+ 
+@@ -2073,15 +2092,29 @@
+ 		} else
+ 		{
+ 			int tmp_errno;
++			bool bError = false;
++
++#if MYSQL_VERSION_ID>=50515
++			struct addrinfo tmp_hostent, *hp;
++			tmp_errno = getaddrinfo ( sHost, NULL, &tmp_hostent, &hp );
++			if ( !tmp_errno )
++			{
++				freeaddrinfo ( hp );
++				bError = true;
++			}
++#else
+ 			struct hostent tmp_hostent, *hp;
+ 			char buff2 [ GETHOSTBYNAME_BUFF_SIZE ];
+-
+-			hp = my_gethostbyname_r ( sHost, &tmp_hostent,
+-				buff2, sizeof(buff2), &tmp_errno );
++			hp = my_gethostbyname_r ( sHost, &tmp_hostent, buff2, sizeof(buff2), &tmp_errno );
+ 			if ( !hp )
+ 			{
+ 				my_gethostbyname_r_free();
++				bError = true;
++			}
++#endif
+ 
++			if ( bError )
++			{
+ 				char sError[256];
+ 				my_snprintf ( sError, sizeof(sError), "failed to resolve searchd host (name=%s)", sHost );
+ 
+@@ -2089,9 +2122,13 @@
+ 				SPH_RET(-1);
+ 			}
+ 
+-			memcpy ( &sin.sin_addr, hp->h_addr,
+-				Min ( sizeof(sin.sin_addr), (size_t)hp->h_length ) );
++#if MYSQL_VERSION_ID>=50515
++			memcpy ( &sin.sin_addr, hp->ai_addr, Min ( sizeof(sin.sin_addr), (size_t)hp->ai_addrlen ) );
++			freeaddrinfo ( hp );
++#else
++			memcpy ( &sin.sin_addr, hp->h_addr, Min ( sizeof(sin.sin_addr), (size_t)hp->h_length ) );
+ 			my_gethostbyname_r_free();
++#endif
+ 		}
+ 	} else
+ 	{
+@@ -2932,7 +2969,7 @@
+ 
+ 	for ( uint32 i=0; i<m_iAttrs; i++ )
+ 	{
+-		longlong iValue64;
++		longlong iValue64 = 0;
+ 		uint32 uValue = UnpackDword ();
+ 		if ( m_dAttrs[i].m_uType==SPH_ATTR_BIGINT )
+ 			iValue64 = ( (longlong)uValue<<32 ) | UnpackDword();
+Index: mysqlse/ha_sphinx.h
+===================================================================
+--- mysqlse/ha_sphinx.h	(wersja 2920)
++++ mysqlse/ha_sphinx.h	(wersja 2921)
+@@ -7,7 +7,9 @@
+ #endif
+ 
+ 
+-#if MYSQL_VERSION_ID>50100
++#if MYSQL_VERSION_ID>=50515
++#define TABLE_ARG	TABLE_SHARE
++#elif MYSQL_VERSION_ID>50100
+ #define TABLE_ARG	st_table_share
+ #else
+ #define TABLE_ARG	st_table
+@@ -47,7 +49,7 @@
+ 
+ public:
+ #if MYSQL_VERSION_ID<50100
+-					ha_sphinx ( TABLE_ARG * table_arg );
++					ha_sphinx ( TABLE_ARG * table_arg ); // NOLINT
+ #else
+ 					ha_sphinx ( handlerton * hton, TABLE_ARG * table_arg );
+ #endif
+@@ -90,7 +92,7 @@
+ 	int				index_init ( uint keynr, bool sorted ); // 5.1.x
+ 	int				index_init ( uint keynr ) { return index_init ( keynr, false ); } // 5.0.x
+ 
+-	int				index_end (); 
++	int				index_end ();
+ 	int				index_read ( byte * buf, const byte * key, uint key_len, enum ha_rkey_function find_flag );
+ 	int				index_read_idx ( byte * buf, uint idx, const byte * key, uint key_len, enum ha_rkey_function find_flag );
+ 	int				index_next ( byte * buf );
+Index: mysqlse/CMakeLists.txt
+===================================================================
+--- mysqlse/CMakeLists.txt	(wersja 2920)
++++ mysqlse/CMakeLists.txt	(wersja 2921)
+@@ -8,4 +8,9 @@
+                     ${CMAKE_SOURCE_DIR}/regex)
+ 
+ SET(SPHINX_SOURCES ha_sphinx.cc)
++IF(MYSQL_VERSION_ID LESS 50515) 
+ ADD_LIBRARY(sphinx ha_sphinx.cc)
++ELSE()
++SET(SPHINX_PLUGIN_DYNAMIC "ha_sphinx")
++MYSQL_ADD_PLUGIN(sphinx ${SPHINX_SOURCES} STORAGE_ENGINE MODULE_ONLY LINK_LIBRARIES mysys)
++ENDIF()
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/mysql/mysql.spec?r1=1.556&r2=1.557&f=u



More information about the pld-cvs-commit mailing list