Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Romain Courteaud
slapos
Commits
1b6e0698
Commit
1b6e0698
authored
Apr 07, 2014
by
Alain Takoudjou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix mydumper issues with mysql and hash.h
parent
5270d6d6
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
119 additions
and
0 deletions
+119
-0
component/mydumper/buildout.cfg
component/mydumper/buildout.cfg
+11
-0
component/mydumper/hash.h
component/mydumper/hash.h
+108
-0
No files found.
component/mydumper/buildout.cfg
View file @
1b6e0698
...
@@ -10,6 +10,13 @@ extends =
...
@@ -10,6 +10,13 @@ extends =
parts = mydumper
parts = mydumper
[hash-header]
recipe = hexagonit.recipe.download
download-only = true
url = ${:_profile_base_location_}/hash.h
md5sum = 22156b693aab69e7867fdc0606d73ab7
filename = hash.h
# XXX-Antoine:
# XXX-Antoine:
# This is really dirty, but it's the only way to install
# This is really dirty, but it's the only way to install
# mydumper that works
# mydumper that works
...
@@ -29,6 +36,8 @@ libraries = ${zlib:location}/lib/:${glib:location}/lib/:${pcre:location}/lib/:${
...
@@ -29,6 +36,8 @@ libraries = ${zlib:location}/lib/:${glib:location}/lib/:${pcre:location}/lib/:${
includes = ${zlib:location}/include/:${glib:location}/include/:${pcre:location}/include/:${mariadb:location}/include:${openssl:location}/include/
includes = ${zlib:location}/include/:${glib:location}/include/:${pcre:location}/include/:${mariadb:location}/include:${openssl:location}/include/
cflags = -I${zlib:location}/include/ -I${glib:location}/include/ -I${pcre:location}/include/ -I${mariadb:location}/include -I${openssl:location}/include/
cflags = -I${zlib:location}/include/ -I${glib:location}/include/ -I${pcre:location}/include/ -I${mariadb:location}/include -I${openssl:location}/include/
mysql-include-dir = ${mariadb:location}/include
mysql-include-dir = ${mariadb:location}/include
libmysqlclient = ${mariadb:location}/lib/libmysqlclient_r.a
hash-header = ${hash-header:location}/hash.h
mydumper-patches =
mydumper-patches =
${:_profile_base_location_}/mydumper-remove-warnings-errors.patch 917fea16b5ddea195cfa33fbd9827f57 -p1
${:_profile_base_location_}/mydumper-remove-warnings-errors.patch 917fea16b5ddea195cfa33fbd9827f57 -p1
slapos_promise =
slapos_promise =
...
@@ -47,12 +56,14 @@ script =
...
@@ -47,12 +56,14 @@ script =
env['CMAKE_INCLUDE_PATH'] = self.options['includes']
env['CMAKE_INCLUDE_PATH'] = self.options['includes']
env['CMAKE_LIBRARY_PATH'] = self.options['libraries']
env['CMAKE_LIBRARY_PATH'] = self.options['libraries']
env['CFLAGS'] = self.options['cflags']
env['CFLAGS'] = self.options['cflags']
os.system('cp -f %%s %%s' %% (self.options['hash-header'], self.options['mysql-include-dir']+'/mysql/'))
command_line = [self.options['cmake-command'],
command_line = [self.options['cmake-command'],
'-DCMAKE_INSTALL_PREFIX=%%s' %% self.options['location'],
'-DCMAKE_INSTALL_PREFIX=%%s' %% self.options['location'],
'-DMYSQL_CONFIG=%%s' %% self.options['mysql-config'],
'-DMYSQL_CONFIG=%%s' %% self.options['mysql-config'],
'-DCMAKE_C_FLAGS=%%s' %% self.options['cflags'],
'-DCMAKE_C_FLAGS=%%s' %% self.options['cflags'],
'-DCMAKE_INSTALL_RPATH=%%s' %% self.options['libraries'],
'-DCMAKE_INSTALL_RPATH=%%s' %% self.options['libraries'],
'-DMYSQL_INCLUDE_DIR=%%s' %% self.options['mysql-include-dir'],
'-DMYSQL_INCLUDE_DIR=%%s' %% self.options['mysql-include-dir'],
'-DMYSQL_LIBRARIES_mysqlclient_r=%%s' %% self.options['libmysqlclient'],
'-DBUILD_DOCS=OFF',
'-DBUILD_DOCS=OFF',
'.']
'.']
call(command_line, cwd=workdir, env=env)
call(command_line, cwd=workdir, env=env)
...
...
component/mydumper/hash.h
0 → 100644
View file @
1b6e0698
/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
/* Dynamic hashing of record with different key-length */
#ifndef _hash_h
#define _hash_h
#include "my_global.h"
/* uchar */
#include "my_sys.h"
/* DYNAMIC_ARRAY */
/*
This forward declaration is used from C files where the real
definition is included before. Since C does not allow repeated
typedef declarations, even when identical, the definition may not be
repeated.
*/
#ifndef CHARSET_INFO_DEFINED
#define CHARSET_INFO_DEFINED
typedef
struct
charset_info_st
CHARSET_INFO
;
#endif
/* CHARSET_INFO_DEFINED */
#ifdef __cplusplus
extern
"C"
{
#endif
/*
Overhead to store an element in hash
Can be used to approximate memory consumption for a hash
*/
#define HASH_OVERHEAD (sizeof(char*)*2)
/* flags for hash_init */
#define HASH_UNIQUE 1
/* hash_insert fails on duplicate key */
typedef
uint
my_hash_value_type
;
typedef
uchar
*
(
*
my_hash_get_key
)(
const
uchar
*
,
size_t
*
,
my_bool
);
typedef
void
(
*
my_hash_free_key
)(
void
*
);
typedef
struct
st_hash
{
size_t
key_offset
,
key_length
;
/* Length of key if const length */
size_t
blength
;
ulong
records
;
uint
flags
;
DYNAMIC_ARRAY
array
;
/* Place for hash_keys */
my_hash_get_key
get_key
;
void
(
*
free
)(
void
*
);
CHARSET_INFO
*
charset
;
}
HASH
;
/* A search iterator state */
typedef
uint
HASH_SEARCH_STATE
;
#define my_hash_init(A,B,C,D,E,F,G,H) \
_my_hash_init(A,0,B,C,D,E,F,G,H)
#define my_hash_init2(A,B,C,D,E,F,G,H,I) \
_my_hash_init(A,B,C,D,E,F,G,H,I)
my_bool
_my_hash_init
(
HASH
*
hash
,
uint
growth_size
,
CHARSET_INFO
*
charset
,
ulong
default_array_elements
,
size_t
key_offset
,
size_t
key_length
,
my_hash_get_key
get_key
,
void
(
*
free_element
)(
void
*
),
uint
flags
);
void
my_hash_free
(
HASH
*
tree
);
void
my_hash_reset
(
HASH
*
hash
);
uchar
*
my_hash_element
(
HASH
*
hash
,
ulong
idx
);
uchar
*
my_hash_search
(
const
HASH
*
info
,
const
uchar
*
key
,
size_t
length
);
uchar
*
my_hash_search_using_hash_value
(
const
HASH
*
info
,
my_hash_value_type
hash_value
,
const
uchar
*
key
,
size_t
length
);
my_hash_value_type
my_calc_hash
(
const
HASH
*
info
,
const
uchar
*
key
,
size_t
length
);
uchar
*
my_hash_first
(
const
HASH
*
info
,
const
uchar
*
key
,
size_t
length
,
HASH_SEARCH_STATE
*
state
);
uchar
*
my_hash_first_from_hash_value
(
const
HASH
*
info
,
my_hash_value_type
hash_value
,
const
uchar
*
key
,
size_t
length
,
HASH_SEARCH_STATE
*
state
);
uchar
*
my_hash_next
(
const
HASH
*
info
,
const
uchar
*
key
,
size_t
length
,
HASH_SEARCH_STATE
*
state
);
my_bool
my_hash_insert
(
HASH
*
info
,
const
uchar
*
data
);
my_bool
my_hash_delete
(
HASH
*
hash
,
uchar
*
record
);
my_bool
my_hash_update
(
HASH
*
hash
,
uchar
*
record
,
uchar
*
old_key
,
size_t
old_key_length
);
void
my_hash_replace
(
HASH
*
hash
,
HASH_SEARCH_STATE
*
state
,
uchar
*
new_row
);
my_bool
my_hash_check
(
HASH
*
hash
);
/* Only in debug library */
#define my_hash_clear(H) bzero((char*) (H), sizeof(*(H)))
#define my_hash_inited(H) ((H)->blength != 0)
#define my_hash_init_opt(A,B,C,D,E,F,G,H) \
(!my_hash_inited(A) && _my_hash_init(A,0,B,C,D,E,F,G,H))
#ifdef __cplusplus
}
#endif
#endif
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment