Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 238487 | Differences between
and this patch

Collapse All | Expand All

(-)mysql-5.0.76-old/client/Makefile.am (-1 / +1 lines)
Lines 37-43 Link Here
37
				$(top_srcdir)/mysys/my_copy.c \
37
				$(top_srcdir)/mysys/my_copy.c \
38
				$(top_srcdir)/mysys/my_mkdir.c
38
				$(top_srcdir)/mysys/my_mkdir.c
39
39
40
mysqltest_LDADD =		$(top_builddir)/regex/libregex.a $(LDADD)
40
mysqltest_LDADD =		$(top_builddir)/regex/libregex.la $(LDADD)
41
mysqlbinlog_SOURCES =   	mysqlbinlog.cc \
41
mysqlbinlog_SOURCES =   	mysqlbinlog.cc \
42
				$(top_srcdir)/mysys/mf_tempdir.c \
42
				$(top_srcdir)/mysys/mf_tempdir.c \
43
				$(top_srcdir)/mysys/my_new.cc
43
				$(top_srcdir)/mysys/my_new.cc
(-)mysql-5.0.76-old/config/ac-macros/ha_innodb.m4 (-34 / +34 lines)
Lines 25-64 Link Here
25
dnl Some libs are listed several times, in order for gcc to sort out
25
dnl Some libs are listed several times, in order for gcc to sort out
26
dnl circular references.
26
dnl circular references.
27
      innodb_libs="\
27
      innodb_libs="\
28
 \$(top_builddir)/innobase/usr/libusr.a\
28
 \$(top_builddir)/innobase/usr/libusr.la\
29
 \$(top_builddir)/innobase/srv/libsrv.a\
29
 \$(top_builddir)/innobase/srv/libsrv.la\
30
 \$(top_builddir)/innobase/dict/libdict.a\
30
 \$(top_builddir)/innobase/dict/libdict.la\
31
 \$(top_builddir)/innobase/que/libque.a\
31
 \$(top_builddir)/innobase/que/libque.la\
32
 \$(top_builddir)/innobase/srv/libsrv.a\
32
 \$(top_builddir)/innobase/srv/libsrv.la\
33
 \$(top_builddir)/innobase/ibuf/libibuf.a\
33
 \$(top_builddir)/innobase/ibuf/libibuf.la\
34
 \$(top_builddir)/innobase/row/librow.a\
34
 \$(top_builddir)/innobase/row/librow.la\
35
 \$(top_builddir)/innobase/pars/libpars.a\
35
 \$(top_builddir)/innobase/pars/libpars.la\
36
 \$(top_builddir)/innobase/btr/libbtr.a\
36
 \$(top_builddir)/innobase/btr/libbtr.la\
37
 \$(top_builddir)/innobase/trx/libtrx.a\
37
 \$(top_builddir)/innobase/trx/libtrx.la\
38
 \$(top_builddir)/innobase/read/libread.a\
38
 \$(top_builddir)/innobase/read/libread.la\
39
 \$(top_builddir)/innobase/usr/libusr.a\
39
 \$(top_builddir)/innobase/usr/libusr.la\
40
 \$(top_builddir)/innobase/buf/libbuf.a\
40
 \$(top_builddir)/innobase/buf/libbuf.la\
41
 \$(top_builddir)/innobase/ibuf/libibuf.a\
41
 \$(top_builddir)/innobase/ibuf/libibuf.la\
42
 \$(top_builddir)/innobase/eval/libeval.a\
42
 \$(top_builddir)/innobase/eval/libeval.la\
43
 \$(top_builddir)/innobase/log/liblog.a\
43
 \$(top_builddir)/innobase/log/liblog.la\
44
 \$(top_builddir)/innobase/fsp/libfsp.a\
44
 \$(top_builddir)/innobase/fsp/libfsp.la\
45
 \$(top_builddir)/innobase/fut/libfut.a\
45
 \$(top_builddir)/innobase/fut/libfut.la\
46
 \$(top_builddir)/innobase/fil/libfil.a\
46
 \$(top_builddir)/innobase/fil/libfil.la\
47
 \$(top_builddir)/innobase/lock/liblock.a\
47
 \$(top_builddir)/innobase/lock/liblock.la\
48
 \$(top_builddir)/innobase/mtr/libmtr.a\
48
 \$(top_builddir)/innobase/mtr/libmtr.la\
49
 \$(top_builddir)/innobase/page/libpage.a\
49
 \$(top_builddir)/innobase/page/libpage.la\
50
 \$(top_builddir)/innobase/rem/librem.a\
50
 \$(top_builddir)/innobase/rem/librem.la\
51
 \$(top_builddir)/innobase/thr/libthr.a\
51
 \$(top_builddir)/innobase/thr/libthr.la\
52
 \$(top_builddir)/innobase/sync/libsync.a\
52
 \$(top_builddir)/innobase/sync/libsync.la\
53
 \$(top_builddir)/innobase/data/libdata.a\
53
 \$(top_builddir)/innobase/data/libdata.la\
54
 \$(top_builddir)/innobase/mach/libmach.a\
54
 \$(top_builddir)/innobase/mach/libmach.la\
55
 \$(top_builddir)/innobase/ha/libha.a\
55
 \$(top_builddir)/innobase/ha/libha.la\
56
 \$(top_builddir)/innobase/dyn/libdyn.a\
56
 \$(top_builddir)/innobase/dyn/libdyn.la\
57
 \$(top_builddir)/innobase/mem/libmem.a\
57
 \$(top_builddir)/innobase/mem/libmem.la\
58
 \$(top_builddir)/innobase/sync/libsync.a\
58
 \$(top_builddir)/innobase/sync/libsync.la\
59
 \$(top_builddir)/innobase/ut/libut.a\
59
 \$(top_builddir)/innobase/ut/libut.la\
60
 \$(top_builddir)/innobase/os/libos.a\
60
 \$(top_builddir)/innobase/os/libos.la\
61
 \$(top_builddir)/innobase/ut/libut.a"
61
 \$(top_builddir)/innobase/ut/libut.la"
62
62
63
      AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"])
63
      AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"])
64
      ;;
64
      ;;
(-)mysql-5.0.76-old/configure.in (-6 / +7 lines)
Lines 574-579 Link Here
574
# We need an ANSI C compiler
574
# We need an ANSI C compiler
575
AM_PROG_CC_STDC
575
AM_PROG_CC_STDC
576
576
577
# Testing as sugggested by Diego
578
AM_PROG_CC_C_O
579
577
# We need an assembler, too
580
# We need an assembler, too
578
AM_PROG_AS
581
AM_PROG_AS
579
CCASFLAGS="$CCASFLAGS $ASFLAGS"
582
CCASFLAGS="$CCASFLAGS $ASFLAGS"
Lines 2692-2700 Link Here
2692
2695
2693
if test "$THREAD_SAFE_CLIENT" = "no"
2696
if test "$THREAD_SAFE_CLIENT" = "no"
2694
then
2697
then
2695
  sql_client_dirs="strings regex mysys dbug extra libmysql client"
2698
  sql_client_dirs="strings regex dbug mysys extra libmysql client"
2696
else
2699
else
2697
  sql_client_dirs="strings regex mysys dbug extra libmysql libmysql_r client"
2700
  sql_client_dirs="strings regex dbug mysys extra libmysql libmysql_r client"
2698
  linked_client_targets="$linked_client_targets linked_libmysql_r_sources"
2701
  linked_client_targets="$linked_client_targets linked_libmysql_r_sources"
2699
  AC_CONFIG_FILES(libmysql_r/Makefile)
2702
  AC_CONFIG_FILES(libmysql_r/Makefile)
2700
  AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should be client be thread safe])
2703
  AC_DEFINE([THREAD_SAFE_CLIENT], [1], [Should be client be thread safe])
Lines 2723-2735 Link Here
2723
export CC CXX CFLAGS CXXFLAGS LD LDFLAGS AR
2726
export CC CXX CFLAGS CXXFLAGS LD LDFLAGS AR
2724
ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'"
2727
ac_configure_args="$ac_configure_args CFLAGS='$CFLAGS' CXXFLAGS='$CXXFLAGS'"
2725
2728
2729
AM_CONDITIONAL([NEED_THREADS], [test x"$with_server" != xno -o x"$THREAD_SAFE_CLIENT" != xno])
2726
if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no"
2730
if test "$with_server" != "no" -o "$THREAD_SAFE_CLIENT" != "no"
2727
then
2731
then
2728
  AC_DEFINE([THREAD], [1],
2732
  AC_DEFINE([THREAD], [1],
2729
            [Define if you want to have threaded code. This may be undef on client code])
2733
            [Define if you want to have threaded code. This may be undef on client code])
2730
  # Avoid _PROGRAMS names
2731
  THREAD_LOBJECTS="thr_alarm.o thr_lock.o thr_mutex.o thr_rwlock.o my_pthread.o my_thr_init.o mf_keycache.o"
2732
  AC_SUBST(THREAD_LOBJECTS)
2733
fi
2734
fi
2734
2735
2735
if test "$with_server" = "no"
2736
if test "$with_server" = "no"
Lines 2737-2743 Link Here
2737
  AM_CONDITIONAL([BUILD_INNODB_TOOLS], [false])
2738
  AM_CONDITIONAL([BUILD_INNODB_TOOLS], [false])
2738
else
2739
else
2739
  server_scripts="mysqld_safe mysql_install_db"
2740
  server_scripts="mysqld_safe mysql_install_db"
2740
  sql_server_dirs="strings mysys dbug extra regex"
2741
  sql_server_dirs="strings dbug mysys extra regex"
2741
2742
2742
2743
2743
  #
2744
  #
(-)mysql-5.0.76-old/dbug/Makefile.am (-5 / +4 lines)
Lines 16-25 Link Here
16
# MA 02111-1307, USA
16
# MA 02111-1307, USA
17
17
18
INCLUDES =              -I$(top_builddir)/include -I$(top_srcdir)/include
18
INCLUDES =              -I$(top_builddir)/include -I$(top_srcdir)/include
19
LDADD =                 libdbug.a ../mysys/libmysys.a ../strings/libmystrings.a
19
noinst_LTLIBRARIES =    libdbug.la
20
pkglib_LIBRARIES =      libdbug.a
21
noinst_HEADERS =        dbug_long.h
20
noinst_HEADERS =        dbug_long.h
22
libdbug_a_SOURCES =     dbug.c sanity.c
21
libdbug_la_SOURCES =    dbug.c sanity.c
23
EXTRA_DIST =            example1.c example2.c example3.c \
22
EXTRA_DIST =            example1.c example2.c example3.c \
24
                        user.r monty.doc readme.prof dbug_add_tags.pl \
23
                        user.r monty.doc readme.prof dbug_add_tags.pl \
25
                        my_main.c main.c factorial.c dbug_analyze.c \
24
                        my_main.c main.c factorial.c dbug_analyze.c \
Lines 31-41 Link Here
31
30
32
31
33
# Must be linked with libs that are not compiled yet
32
# Must be linked with libs that are not compiled yet
34
noinst_PROGRAMS =       factorial dbug_analyze
33
EXTRA_PROGRAMS =       factorial dbug_analyze
35
factorial_SOURCES =     my_main.c factorial.c
34
factorial_SOURCES =     my_main.c factorial.c
36
dbug_analyze_SOURCES =  dbug_analyze.c
35
dbug_analyze_SOURCES =  dbug_analyze.c
37
36
38
all:            user.t user.ps
37
check-local:            user.t user.ps
39
38
40
user.t:         user.r $(NROFF_INC)
39
user.t:         user.r $(NROFF_INC)
41
		-nroff -mm user.r > $@
40
		-nroff -mm user.r > $@
(-)mysql-5.0.76-old/extra/Makefile.am (-2 / +1 lines)
Lines 15-22 Link Here
15
15
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include \
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include \
17
			@ndbcluster_includes@ -I$(top_srcdir)/sql
17
			@ndbcluster_includes@ -I$(top_srcdir)/sql
18
LDADD =			@CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.a \
18
LDADD =			@CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.la \
19
			../dbug/libdbug.a ../strings/libmystrings.a \
20
			$(ZLIB_LIBS)
19
			$(ZLIB_LIBS)
21
BUILT_SOURCES=		$(top_builddir)/include/mysqld_error.h \
20
BUILT_SOURCES=		$(top_builddir)/include/mysqld_error.h \
22
                        $(top_builddir)/include/sql_state.h \
21
                        $(top_builddir)/include/sql_state.h \
(-)mysql-5.0.76-old/heap/Makefile.am (-4 / +3 lines)
Lines 14-27 Link Here
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
15
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include 
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include 
17
LDADD =			libheap.a ../mysys/libmysys.a ../dbug/libdbug.a \
17
LDADD =			libheap.la ../mysys/libmysys.la
18
			../strings/libmystrings.a
18
pkglib_LTLIBRARIES =	libheap.la
19
pkglib_LIBRARIES =	libheap.a
20
noinst_PROGRAMS	=	hp_test1 hp_test2
19
noinst_PROGRAMS	=	hp_test1 hp_test2
21
hp_test1_LDFLAGS = @NOINST_LDFLAGS@
20
hp_test1_LDFLAGS = @NOINST_LDFLAGS@
22
hp_test2_LDFLAGS = @NOINST_LDFLAGS@
21
hp_test2_LDFLAGS = @NOINST_LDFLAGS@
23
noinst_HEADERS =	heapdef.h
22
noinst_HEADERS =	heapdef.h
24
libheap_a_SOURCES =	hp_open.c hp_extra.c hp_close.c hp_panic.c hp_info.c \
23
libheap_la_SOURCES =	hp_open.c hp_extra.c hp_close.c hp_panic.c hp_info.c \
25
			hp_rrnd.c hp_scan.c hp_update.c hp_write.c hp_delete.c \
24
			hp_rrnd.c hp_scan.c hp_update.c hp_write.c hp_delete.c \
26
			hp_rsame.c hp_create.c hp_rename.c hp_rfirst.c \
25
			hp_rsame.c hp_create.c hp_rename.c hp_rfirst.c \
27
			hp_rnext.c hp_rlast.c hp_rprev.c hp_clear.c \
26
			hp_rnext.c hp_rlast.c hp_rprev.c hp_clear.c \
(-)mysql-5.0.76-old/include/keycache.h (-1 / +1 lines)
Lines 39-45 Link Here
39
/*
39
/*
40
  The key cache structure
40
  The key cache structure
41
  It also contains read-only statistics parameters.
41
  It also contains read-only statistics parameters.
42
*/   
42
*/
43
43
44
typedef struct st_key_cache
44
typedef struct st_key_cache
45
{
45
{
(-)mysql-5.0.76-old/include/m_ctype.h (-22 / +22 lines)
Lines 77-83 Link Here
77
#define MY_CS_UNICODE	128    /* is a charset is full unicode   */
77
#define MY_CS_UNICODE	128    /* is a charset is full unicode   */
78
#define MY_CS_READY	256    /* if a charset is initialized    */
78
#define MY_CS_READY	256    /* if a charset is initialized    */
79
#define MY_CS_AVAILABLE	512    /* If either compiled-in or loaded*/
79
#define MY_CS_AVAILABLE	512    /* If either compiled-in or loaded*/
80
#define MY_CS_CSSORT	1024   /* if case sensitive sort order   */	
80
#define MY_CS_CSSORT	1024   /* if case sensitive sort order   */
81
#define MY_CS_PUREASCII 2048   /* if a charset is pure ascii     */
81
#define MY_CS_PUREASCII 2048   /* if a charset is pure ascii     */
82
#define MY_CHARSET_UNDEFINED 0
82
#define MY_CHARSET_UNDEFINED 0
83
83
Lines 103-116 Link Here
103
103
104
enum my_lex_states
104
enum my_lex_states
105
{
105
{
106
  MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT, 
106
  MY_LEX_START, MY_LEX_CHAR, MY_LEX_IDENT,
107
  MY_LEX_IDENT_SEP, MY_LEX_IDENT_START,
107
  MY_LEX_IDENT_SEP, MY_LEX_IDENT_START,
108
  MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER,
108
  MY_LEX_REAL, MY_LEX_HEX_NUMBER, MY_LEX_BIN_NUMBER,
109
  MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END,
109
  MY_LEX_CMP_OP, MY_LEX_LONG_CMP_OP, MY_LEX_STRING, MY_LEX_COMMENT, MY_LEX_END,
110
  MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL,
110
  MY_LEX_OPERATOR_OR_IDENT, MY_LEX_NUMBER_IDENT, MY_LEX_INT_OR_REAL,
111
  MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE, 
111
  MY_LEX_REAL_OR_POINT, MY_LEX_BOOL, MY_LEX_EOL, MY_LEX_ESCAPE,
112
  MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON, 
112
  MY_LEX_LONG_COMMENT, MY_LEX_END_LONG_COMMENT, MY_LEX_SEMICOLON,
113
  MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP, 
113
  MY_LEX_SET_VAR, MY_LEX_USER_END, MY_LEX_HOSTNAME, MY_LEX_SKIP,
114
  MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR,
114
  MY_LEX_USER_VARIABLE_DELIMITER, MY_LEX_SYSTEM_VAR,
115
  MY_LEX_IDENT_OR_KEYWORD,
115
  MY_LEX_IDENT_OR_KEYWORD,
116
  MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR,
116
  MY_LEX_IDENT_OR_HEX, MY_LEX_IDENT_OR_BIN, MY_LEX_IDENT_OR_NCHAR,
Lines 132-141 Link Here
132
                         my_bool diff_if_only_endspace_difference);
132
                         my_bool diff_if_only_endspace_difference);
133
  int     (*strnxfrm)(struct charset_info_st *,
133
  int     (*strnxfrm)(struct charset_info_st *,
134
		      uchar *, uint, const uchar *, uint);
134
		      uchar *, uint, const uchar *, uint);
135
  uint    (*strnxfrmlen)(struct charset_info_st *, uint); 
135
  uint    (*strnxfrmlen)(struct charset_info_st *, uint);
136
  my_bool (*like_range)(struct charset_info_st *,
136
  my_bool (*like_range)(struct charset_info_st *,
137
			const char *s, uint s_length,
137
			const char *s, uint s_length,
138
			pchar w_prefix, pchar w_one, pchar w_many, 
138
			pchar w_prefix, pchar w_one, pchar w_many,
139
			uint res_length,
139
			uint res_length,
140
			char *min_str, char *max_str,
140
			char *min_str, char *max_str,
141
			uint *min_len, uint *max_len);
141
			uint *min_len, uint *max_len);
Lines 145-159 Link Here
145
                     int escape,int w_one, int w_many);
145
                     int escape,int w_one, int w_many);
146
146
147
  int  (*strcasecmp)(struct charset_info_st *, const char *, const char *);
147
  int  (*strcasecmp)(struct charset_info_st *, const char *, const char *);
148
  
148
149
  uint (*instr)(struct charset_info_st *,
149
  uint (*instr)(struct charset_info_st *,
150
                const char *b, uint b_length,
150
                const char *b, uint b_length,
151
                const char *s, uint s_length,
151
                const char *s, uint s_length,
152
                my_match_t *match, uint nmatch);
152
                my_match_t *match, uint nmatch);
153
  
153
154
  /* Hash calculation */
154
  /* Hash calculation */
155
  void (*hash_sort)(struct charset_info_st *cs, const uchar *key, uint len,
155
  void (*hash_sort)(struct charset_info_st *cs, const uchar *key, uint len,
156
		    ulong *nr1, ulong *nr2); 
156
		    ulong *nr1, ulong *nr2);
157
  my_bool (*propagate)(struct charset_info_st *cs, const uchar *str, uint len);
157
  my_bool (*propagate)(struct charset_info_st *cs, const uchar *str, uint len);
158
} MY_COLLATION_HANDLER;
158
} MY_COLLATION_HANDLER;
159
159
Lines 177-189 Link Here
177
                             uint nchars, int *error);
177
                             uint nchars, int *error);
178
  uint    (*lengthsp)(struct charset_info_st *, const char *ptr, uint length);
178
  uint    (*lengthsp)(struct charset_info_st *, const char *ptr, uint length);
179
  uint    (*numcells)(struct charset_info_st *, const char *b, const char *e);
179
  uint    (*numcells)(struct charset_info_st *, const char *b, const char *e);
180
  
180
181
  /* Unicode convertion */
181
  /* Unicode convertion */
182
  int (*mb_wc)(struct charset_info_st *cs,my_wc_t *wc,
182
  int (*mb_wc)(struct charset_info_st *cs,my_wc_t *wc,
183
	       const unsigned char *s,const unsigned char *e);
183
	       const unsigned char *s,const unsigned char *e);
184
  int (*wc_mb)(struct charset_info_st *cs,my_wc_t wc,
184
  int (*wc_mb)(struct charset_info_st *cs,my_wc_t wc,
185
	       unsigned char *s,unsigned char *e);
185
	       unsigned char *s,unsigned char *e);
186
  
186
187
  /* Functions for case and sort convertion */
187
  /* Functions for case and sort convertion */
188
  uint    (*caseup_str)(struct charset_info_st *, char *);
188
  uint    (*caseup_str)(struct charset_info_st *, char *);
189
  uint    (*casedn_str)(struct charset_info_st *, char *);
189
  uint    (*casedn_str)(struct charset_info_st *, char *);
Lines 191-197 Link Here
191
                                              char *dst, uint dstlen);
191
                                              char *dst, uint dstlen);
192
  uint    (*casedn)(struct charset_info_st *, char *src, uint srclen,
192
  uint    (*casedn)(struct charset_info_st *, char *src, uint srclen,
193
                                              char *dst, uint dstlen);
193
                                              char *dst, uint dstlen);
194
  
194
195
  /* Charset dependant snprintf() */
195
  /* Charset dependant snprintf() */
196
  int  (*snprintf)(struct charset_info_st *, char *to, uint n, const char *fmt,
196
  int  (*snprintf)(struct charset_info_st *, char *to, uint n, const char *fmt,
197
		   ...) ATTRIBUTE_FORMAT_FPTR(printf, 4, 5);
197
		   ...) ATTRIBUTE_FORMAT_FPTR(printf, 4, 5);
Lines 199-207 Link Here
199
			long int val);
199
			long int val);
200
  int (*longlong10_to_str)(struct charset_info_st *, char *to, uint n,
200
  int (*longlong10_to_str)(struct charset_info_st *, char *to, uint n,
201
			   int radix, longlong val);
201
			   int radix, longlong val);
202
  
202
203
  void (*fill)(struct charset_info_st *, char *to, uint len, int fill);
203
  void (*fill)(struct charset_info_st *, char *to, uint len, int fill);
204
  
204
205
  /* String-to-number convertion routines */
205
  /* String-to-number convertion routines */
206
  long        (*strntol)(struct charset_info_st *, const char *s, uint l,
206
  long        (*strntol)(struct charset_info_st *, const char *s, uint l,
207
			 int base, char **e, int *err);
207
			 int base, char **e, int *err);
Lines 257-266 Link Here
257
  uint16    max_sort_char; /* For LIKE optimization */
257
  uint16    max_sort_char; /* For LIKE optimization */
258
  uchar     pad_char;
258
  uchar     pad_char;
259
  my_bool   escape_with_backslash_is_dangerous;
259
  my_bool   escape_with_backslash_is_dangerous;
260
  
260
261
  MY_CHARSET_HANDLER *cset;
261
  MY_CHARSET_HANDLER *cset;
262
  MY_COLLATION_HANDLER *coll;
262
  MY_COLLATION_HANDLER *coll;
263
  
263
264
} CHARSET_INFO;
264
} CHARSET_INFO;
265
265
266
266
Lines 297-304 Link Here
297
297
298
/* declarations for simple charsets */
298
/* declarations for simple charsets */
299
extern int  my_strnxfrm_simple(CHARSET_INFO *, uchar *, uint, const uchar *,
299
extern int  my_strnxfrm_simple(CHARSET_INFO *, uchar *, uint, const uchar *,
300
                               uint); 
300
                               uint);
301
uint  my_strnxfrmlen_simple(CHARSET_INFO *, uint); 
301
uint  my_strnxfrmlen_simple(CHARSET_INFO *, uint);
302
extern int  my_strnncoll_simple(CHARSET_INFO *, const uchar *, uint,
302
extern int  my_strnncoll_simple(CHARSET_INFO *, const uchar *, uint,
303
				const uchar *, uint, my_bool);
303
				const uchar *, uint, my_bool);
304
304
Lines 308-314 Link Here
308
308
309
extern void my_hash_sort_simple(CHARSET_INFO *cs,
309
extern void my_hash_sort_simple(CHARSET_INFO *cs,
310
				const uchar *key, uint len,
310
				const uchar *key, uint len,
311
				ulong *nr1, ulong *nr2); 
311
				ulong *nr1, ulong *nr2);
312
312
313
extern uint my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, uint length);
313
extern uint my_lengthsp_8bit(CHARSET_INFO *cs, const char *ptr, uint length);
314
314
Lines 354-366 Link Here
354
354
355
longlong my_strtoll10_8bit(CHARSET_INFO *cs,
355
longlong my_strtoll10_8bit(CHARSET_INFO *cs,
356
                           const char *nptr, char **endptr, int *error);
356
                           const char *nptr, char **endptr, int *error);
357
longlong my_strtoll10_ucs2(CHARSET_INFO *cs, 
357
longlong my_strtoll10_ucs2(CHARSET_INFO *cs,
358
                           const char *nptr, char **endptr, int *error);
358
                           const char *nptr, char **endptr, int *error);
359
359
360
ulonglong my_strntoull10rnd_8bit(CHARSET_INFO *cs,
360
ulonglong my_strntoull10rnd_8bit(CHARSET_INFO *cs,
361
                                 const char *str, uint length, int unsigned_fl,
361
                                 const char *str, uint length, int unsigned_fl,
362
                                 char **endptr, int *error);
362
                                 char **endptr, int *error);
363
ulonglong my_strntoull10rnd_ucs2(CHARSET_INFO *cs, 
363
ulonglong my_strntoull10rnd_ucs2(CHARSET_INFO *cs,
364
                                 const char *str, uint length, int unsigned_fl,
364
                                 const char *str, uint length, int unsigned_fl,
365
                                 char **endptr, int *error);
365
                                 char **endptr, int *error);
366
366
(-)mysql-5.0.76-old/innobase/btr/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libbtr.a
18
pkglib_LTLIBRARIES =	libbtr.la
19
19
20
libbtr_a_SOURCES =	btr0btr.c btr0cur.c btr0pcur.c btr0sea.c
20
libbtr_la_SOURCES =	btr0btr.c btr0cur.c btr0pcur.c btr0sea.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/buf/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libbuf.a
18
noinst_LTLIBRARIES =	libbuf.la
19
19
20
libbuf_a_SOURCES =	buf0buf.c buf0flu.c buf0lru.c buf0rea.c
20
libbuf_la_SOURCES =	buf0buf.c buf0flu.c buf0lru.c buf0rea.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/data/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libdata.a
18
noinst_LTLIBRARIES =	libdata.la
19
19
20
libdata_a_SOURCES =	data0data.c data0type.c
20
libdata_la_SOURCES =	data0data.c data0type.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/dict/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libdict.a
18
noinst_LTLIBRARIES =	libdict.la
19
19
20
libdict_a_SOURCES =	dict0boot.c dict0crea.c dict0dict.c dict0load.c\
20
libdict_la_SOURCES =	dict0boot.c dict0crea.c dict0dict.c dict0load.c\
21
			dict0mem.c
21
			dict0mem.c
22
22
23
EXTRA_PROGRAMS =	
23
EXTRA_PROGRAMS =	
(-)mysql-5.0.76-old/innobase/dyn/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libdyn.a
18
noinst_LTLIBRARIES =	libdyn.la
19
19
20
libdyn_a_SOURCES =	dyn0dyn.c
20
libdyn_la_SOURCES =	dyn0dyn.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/eval/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libeval.a
18
noinst_LTLIBRARIES =	libeval.la
19
19
20
libeval_a_SOURCES =	eval0eval.c eval0proc.c
20
libeval_la_SOURCES =	eval0eval.c eval0proc.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/fil/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libfil.a
18
noinst_LTLIBRARIES =	libfil.la
19
19
20
libfil_a_SOURCES =	fil0fil.c
20
libfil_la_SOURCES =	fil0fil.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/fsp/Makefile.am (-2 / +2 lines)
Lines 16-24 Link Here
16
16
17
include ../include/Makefile.i
17
include ../include/Makefile.i
18
18
19
noinst_LIBRARIES =	libfsp.a
19
noinst_LTLIBRARIES =	libfsp.la
20
20
21
libfsp_a_SOURCES =	fsp0fsp.c
21
libfsp_la_SOURCES =	fsp0fsp.c
22
22
23
EXTRA_PROGRAMS =	
23
EXTRA_PROGRAMS =	
24
24
(-)mysql-5.0.76-old/innobase/fut/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libfut.a
18
noinst_LTLIBRARIES =	libfut.la
19
19
20
libfut_a_SOURCES =	fut0fut.c fut0lst.c
20
libfut_la_SOURCES =	fut0fut.c fut0lst.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/ha/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libha.a
18
noinst_LTLIBRARIES =	libha.la
19
19
20
libha_a_SOURCES =	ha0ha.c hash0hash.c
20
libha_la_SOURCES =	ha0ha.c hash0hash.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/ibuf/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libibuf.a
18
noinst_LTLIBRARIES =	libibuf.la
19
19
20
libibuf_a_SOURCES =	ibuf0ibuf.c
20
libibuf_la_SOURCES =	ibuf0ibuf.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/lock/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	liblock.a
18
noinst_LTLIBRARIES =	liblock.la
19
19
20
liblock_a_SOURCES =	lock0lock.c
20
liblock_la_SOURCES =	lock0lock.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/log/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	liblog.a
18
noinst_LTLIBRARIES =	liblog.la
19
19
20
liblog_a_SOURCES =	log0log.c log0recv.c
20
liblog_la_SOURCES =	log0log.c log0recv.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/mach/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libmach.a
18
noinst_LTLIBRARIES =	libmach.la
19
19
20
libmach_a_SOURCES =	mach0data.c
20
libmach_la_SOURCES =	mach0data.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/mem/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libmem.a
18
noinst_LTLIBRARIES =	libmem.la
19
19
20
libmem_a_SOURCES =	mem0mem.c mem0pool.c
20
libmem_la_SOURCES =	mem0mem.c mem0pool.c
21
21
22
EXTRA_DIST =		mem0dbg.c
22
EXTRA_DIST =		mem0dbg.c
23
23
(-)mysql-5.0.76-old/innobase/mtr/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libmtr.a
18
noinst_LTLIBRARIES =	libmtr.la
19
19
20
libmtr_a_SOURCES =	mtr0mtr.c mtr0log.c
20
libmtr_la_SOURCES =	mtr0mtr.c mtr0log.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/os/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libos.a
18
noinst_LTLIBRARIES =	libos.la
19
19
20
libos_a_SOURCES =	os0proc.c os0sync.c os0thread.c os0file.c
20
libos_la_SOURCES =	os0proc.c os0sync.c os0thread.c os0file.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/page/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libpage.a
18
noinst_LTLIBRARIES =	libpage.la
19
19
20
libpage_a_SOURCES =	page0page.c page0cur.c
20
libpage_la_SOURCES =	page0page.c page0cur.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/pars/Makefile.am (-2 / +2 lines)
Lines 15-25 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libpars.a
18
noinst_LTLIBRARIES =	libpars.la
19
19
20
noinst_HEADERS =	pars0grm.h
20
noinst_HEADERS =	pars0grm.h
21
21
22
libpars_a_SOURCES =	pars0grm.c lexyy.c pars0opt.c pars0pars.c pars0sym.c
22
libpars_la_SOURCES =	pars0grm.c lexyy.c pars0opt.c pars0pars.c pars0sym.c
23
23
24
EXTRA_PROGRAMS =	
24
EXTRA_PROGRAMS =	
25
25
(-)mysql-5.0.76-old/innobase/que/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libque.a
18
noinst_LTLIBRARIES =	libque.la
19
19
20
libque_a_SOURCES =	que0que.c
20
libque_la_SOURCES =	que0que.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/read/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libread.a
18
noinst_LTLIBRARIES =	libread.la
19
19
20
libread_a_SOURCES =	read0read.c
20
libread_la_SOURCES =	read0read.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/rem/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	librem.a
18
noinst_LTLIBRARIES =	librem.la
19
19
20
librem_a_SOURCES =	rem0rec.c rem0cmp.c
20
librem_la_SOURCES =	rem0rec.c rem0cmp.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/row/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	librow.a
18
noinst_LTLIBRARIES =	librow.la
19
19
20
librow_a_SOURCES =	row0ins.c row0mysql.c row0purge.c row0row.c row0sel.c\
20
librow_la_SOURCES =	row0ins.c row0mysql.c row0purge.c row0row.c row0sel.c\
21
			row0uins.c row0umod.c row0undo.c row0upd.c row0vers.c
21
			row0uins.c row0umod.c row0undo.c row0upd.c row0vers.c
22
22
23
EXTRA_PROGRAMS =	
23
EXTRA_PROGRAMS =	
(-)mysql-5.0.76-old/innobase/srv/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libsrv.a
18
noinst_LTLIBRARIES =	libsrv.la
19
19
20
libsrv_a_SOURCES =	srv0srv.c srv0que.c srv0start.c
20
libsrv_la_SOURCES =	srv0srv.c srv0que.c srv0start.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/sync/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libsync.a
18
noinst_LTLIBRARIES =	libsync.la
19
19
20
libsync_a_SOURCES =	sync0arr.c sync0rw.c sync0sync.c
20
libsync_la_SOURCES =	sync0arr.c sync0rw.c sync0sync.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/thr/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libthr.a
18
noinst_LTLIBRARIES =	libthr.la
19
19
20
libthr_a_SOURCES =	thr0loc.c
20
libthr_la_SOURCES =	thr0loc.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/trx/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libtrx.a
18
noinst_LTLIBRARIES =	libtrx.la
19
19
20
libtrx_a_SOURCES =	trx0purge.c trx0rec.c trx0roll.c trx0rseg.c\
20
libtrx_la_SOURCES =	trx0purge.c trx0rec.c trx0roll.c trx0rseg.c\
21
			trx0sys.c trx0trx.c trx0undo.c
21
			trx0sys.c trx0trx.c trx0undo.c
22
22
23
EXTRA_PROGRAMS =	
23
EXTRA_PROGRAMS =	
(-)mysql-5.0.76-old/innobase/usr/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libusr.a
18
noinst_LTLIBRARIES =	libusr.la
19
19
20
libusr_a_SOURCES =	usr0sess.c
20
libusr_la_SOURCES =	usr0sess.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/innobase/ut/Makefile.am (-2 / +2 lines)
Lines 15-23 Link Here
15
15
16
include ../include/Makefile.i
16
include ../include/Makefile.i
17
17
18
noinst_LIBRARIES =	libut.a
18
noinst_LTLIBRARIES =	libut.la
19
19
20
libut_a_SOURCES =	ut0byte.c ut0dbg.c ut0mem.c ut0rnd.c ut0ut.c
20
libut_la_SOURCES =	ut0byte.c ut0dbg.c ut0mem.c ut0rnd.c ut0ut.c
21
21
22
EXTRA_PROGRAMS =	
22
EXTRA_PROGRAMS =	
23
23
(-)mysql-5.0.76-old/libmysql/Makefile.am (-2 / +2 lines)
Lines 106-113 Link Here
106
	echo "# This file is autogenerated from Makefile.am" >> $$dir/Makefile; \
106
	echo "# This file is autogenerated from Makefile.am" >> $$dir/Makefile; \
107
	echo 'CFLAGS=	-I. -DUNDEF_THREADS_HACK' >>$$dir/Makefile; \
107
	echo 'CFLAGS=	-I. -DUNDEF_THREADS_HACK' >>$$dir/Makefile; \
108
	echo "obj=$$objs"  >>$$dir/Makefile; \
108
	echo "obj=$$objs"  >>$$dir/Makefile; \
109
	echo 'all: libmysql.a'  >>$$dir/Makefile; \
109
	echo 'all: libmysql.la'  >>$$dir/Makefile; \
110
	echo 'libmysql.a: $$(obj)'  >>$$dir/Makefile; \
110
	echo 'libmysql.la: $$(obj)'  >>$$dir/Makefile; \
111
	echo '	$$(AR) r $$@ $$?'  >>$$dir/Makefile; \
111
	echo '	$$(AR) r $$@ $$?'  >>$$dir/Makefile; \
112
	gtar cvzf $$dir.tar.gz $$dir; \
112
	gtar cvzf $$dir.tar.gz $$dir; \
113
	cd $$dir; gmake
113
	cd $$dir; gmake
(-)mysql-5.0.76-old/libmysqld/Makefile.am (-41 / +12 lines)
Lines 32-39 Link Here
32
			-I$(top_srcdir)/regex \
32
			-I$(top_srcdir)/regex \
33
			$(openssl_includes) @ZLIB_INCLUDES@
33
			$(openssl_includes) @ZLIB_INCLUDES@
34
34
35
noinst_LIBRARIES =	libmysqld_int.a
35
noinst_LTLIBRARIES =	libmysqld_int.la
36
pkglib_LIBRARIES =	libmysqld.a
36
pkglib_LTLIBRARIES =	libmysqld.la
37
SUBDIRS =		. examples
37
SUBDIRS =		. examples
38
libmysqld_sources=	libmysqld.c lib_sql.cc emb_qcache.cc
38
libmysqld_sources=	libmysqld.c lib_sql.cc emb_qcache.cc
39
libmysqlsources =	errmsg.c get_password.c libmysql.c client.c pack.c \
39
libmysqlsources =	errmsg.c get_password.c libmysql.c client.c pack.c \
Lines 66-115 Link Here
66
	parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \
66
	parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \
67
	ha_blackhole.cc ha_archive.cc my_user.c
67
	ha_blackhole.cc ha_archive.cc my_user.c
68
68
69
libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources) $(sqlexamplessources)
69
libmysqld_int_la_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources) $(sqlexamplessources)
70
libmysqld_a_SOURCES=
70
libmysqld_la_SOURCES=
71
71
72
# automake misses these
72
# automake misses these
73
sql_yacc.cc sql_yacc.h: $(top_srcdir)/sql/sql_yacc.yy
73
sql_yacc.cc sql_yacc.h: $(top_srcdir)/sql/sql_yacc.yy
74
74
75
# The following libraries should be included in libmysqld.a
75
# The following libraries should be included in libmysqld.la
76
INC_LIB=	$(top_builddir)/regex/libregex.a \
76
libmysqld_la_LIBADD=	$(top_builddir)/regex/libregex.la \
77
		$(top_builddir)/myisam/libmyisam.a \
77
		$(top_builddir)/myisam/libmyisam.la \
78
		$(top_builddir)/myisammrg/libmyisammrg.a \
78
		$(top_builddir)/myisammrg/libmyisammrg.la \
79
		$(top_builddir)/heap/libheap.a \
79
		$(top_builddir)/heap/libheap.la \
80
		@innodb_libs@ @bdb_libs_with_path@ \
80
		@innodb_libs@ @bdb_libs_with_path@ \
81
		$(top_builddir)/mysys/libmysys.a \
81
		$(top_builddir)/mysys/libmysys.la \
82
		$(top_builddir)/strings/libmystrings.a \
82
		$(top_builddir)/vio/libvio.la @NDB_SCI_LIBS@ \
83
		$(top_builddir)/dbug/libdbug.a \
83
		libmysqld_int.la
84
		$(top_builddir)/vio/libvio.a @NDB_SCI_LIBS@
85
86
87
#
88
# To make it easy for the end user to use the embedded library we
89
# generate a total libmysqld.a from all library files,
90
91
# note - InnoDB libraries have circular dependencies, so in INC_LIB
92
# few libraries are present two times. Metrowerks linker doesn't like
93
# it at all. Traditional ar has no problems with it, but still there's no
94
# need to add the same file twice to the library, so 'sort -u' save us
95
# some time and spares unnecessary work.
96
97
libmysqld.a:	libmysqld_int.a $(INC_LIB)
98
if DARWIN_MWCC
99
	mwld -lib -o $@ libmysqld_int.a `echo $(INC_LIB) | sort -u`
100
else
101
		-rm -f libmysqld.a
102
		if test "$(host_os)" = "netware" ; \
103
		then \
104
		  $(libmysqld_a_AR) libmysqld.a libmysqld_int.a $(INC_LIB) ; \
105
		else \
106
		  for arc in ./libmysqld_int.a $(INC_LIB); do \
107
		    arpath=`echo $$arc|sed 's|[^/]*$$||'`; \
108
		    $(AR) t $$arc|sed "s|^|$$arpath|"; \
109
		  done | sort -u | xargs $(AR) cq libmysqld.a ; \
110
		  $(RANLIB) libmysqld.a	; \
111
		fi
112
endif
113
84
114
## XXX: any time the client interface changes, we'll need to bump
85
## XXX: any time the client interface changes, we'll need to bump
115
## the version info for libmysqld; however, it's possible for the
86
## the version info for libmysqld; however, it's possible for the
(-)mysql-5.0.76-old/myisam/Makefile.am (-18 / +18 lines)
Lines 16-42 Link Here
16
EXTRA_DIST =		mi_test_all.sh mi_test_all.res ft_stem.c CMakeLists.txt
16
EXTRA_DIST =		mi_test_all.sh mi_test_all.res ft_stem.c CMakeLists.txt
17
pkgdata_DATA =		mi_test_all mi_test_all.res
17
pkgdata_DATA =		mi_test_all mi_test_all.res
18
18
19
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
19
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include \
20
LDADD =			@CLIENT_EXTRA_LDFLAGS@ libmyisam.a \
20
				-I$(top_builddir)/sql -I$(top_srcdir)/sql
21
			$(top_builddir)/mysys/libmysys.a \
21
LDADD =			@CLIENT_EXTRA_LDFLAGS@ libmyisam.la \
22
			$(top_builddir)/dbug/libdbug.a \
22
			$(top_builddir)/mysys/libmysys.la \
23
			$(top_builddir)/strings/libmystrings.a @ZLIB_LIBS@
23
			$(ZLIB_LIBS)
24
pkglib_LIBRARIES =	libmyisam.a
24
noinst_LTLIBRARIES =	libmyisam.la
25
bin_PROGRAMS =		myisamchk myisamlog myisampack myisam_ftdump
25
bin_PROGRAMS =		myisamchk myisamlog myisampack myisam_ftdump
26
myisamchk_DEPENDENCIES=	$(LIBRARIES)
26
myisamchk_DEPENDENCIES=	$(LTLIBRARIES)
27
myisamlog_DEPENDENCIES=	$(LIBRARIES)
27
myisamlog_DEPENDENCIES=	$(LTLIBRARIES)
28
myisampack_DEPENDENCIES=$(LIBRARIES)
28
myisampack_DEPENDENCIES=$(LTLIBRARIES)
29
noinst_PROGRAMS =	mi_test1 mi_test2 mi_test3 rt_test sp_test #ft_test1 ft_eval
29
noinst_PROGRAMS =	mi_test1 mi_test2 mi_test3 rt_test sp_test #ft_test1 ft_eval
30
noinst_HEADERS =	myisamdef.h rt_index.h rt_key.h rt_mbr.h sp_defs.h fulltext.h ftdefs.h ft_test1.h ft_eval.h
30
noinst_HEADERS =	myisamdef.h rt_index.h rt_key.h rt_mbr.h sp_defs.h fulltext.h ftdefs.h ft_test1.h ft_eval.h
31
mi_test1_DEPENDENCIES=	$(LIBRARIES)
31
mi_test1_DEPENDENCIES=	$(LTLIBRARIES)
32
mi_test2_DEPENDENCIES=	$(LIBRARIES)
32
mi_test2_DEPENDENCIES=	$(LTLIBRARIES)
33
mi_test3_DEPENDENCIES=	$(LIBRARIES)
33
mi_test3_DEPENDENCIES=	$(LTLIBRARIES)
34
#ft_test1_DEPENDENCIES=	$(LIBRARIES)
34
#ft_test1_DEPENDENCIES=	$(LTLIBRARIES)
35
#ft_eval_DEPENDENCIES=	$(LIBRARIES)
35
#ft_eval_DEPENDENCIES=	$(LTLIBRARIES)
36
myisam_ftdump_DEPENDENCIES=	$(LIBRARIES)
36
myisam_ftdump_DEPENDENCIES=	$(LTLIBRARIES)
37
rt_test_DEPENDENCIES=	$(LIBRARIES)
37
rt_test_DEPENDENCIES=	$(LTLIBRARIES)
38
sp_test_DEPENDENCIES=	$(LIBRARIES)
38
sp_test_DEPENDENCIES=	$(LTLIBRARIES)
39
libmyisam_a_SOURCES =	mi_open.c mi_extra.c mi_info.c mi_rkey.c \
39
libmyisam_la_SOURCES =	mi_open.c mi_extra.c mi_info.c mi_rkey.c \
40
			mi_rnext.c mi_rnext_same.c \
40
			mi_rnext.c mi_rnext_same.c \
41
			mi_search.c mi_page.c mi_key.c mi_locking.c \
41
			mi_search.c mi_page.c mi_key.c mi_locking.c \
42
			mi_rrnd.c mi_scan.c mi_cache.c \
42
			mi_rrnd.c mi_scan.c mi_cache.c \
(-)mysql-5.0.76-old/myisammrg/Makefile.am (-2 / +2 lines)
Lines 14-22 Link Here
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
15
15
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
17
pkglib_LIBRARIES =	libmyisammrg.a
17
noinst_LTLIBRARIES =	libmyisammrg.la
18
noinst_HEADERS =	myrg_def.h
18
noinst_HEADERS =	myrg_def.h
19
libmyisammrg_a_SOURCES = myrg_open.c myrg_extra.c myrg_info.c myrg_locking.c \
19
libmyisammrg_la_SOURCES = myrg_open.c myrg_extra.c myrg_info.c myrg_locking.c \
20
			myrg_rrnd.c myrg_update.c myrg_delete.c myrg_rsame.c \
20
			myrg_rrnd.c myrg_update.c myrg_delete.c myrg_rsame.c \
21
			myrg_panic.c myrg_close.c myrg_create.c myrg_static.c \
21
			myrg_panic.c myrg_close.c myrg_create.c myrg_static.c \
22
			myrg_rkey.c myrg_rfirst.c myrg_rlast.c myrg_rnext.c \
22
			myrg_rkey.c myrg_rfirst.c myrg_rlast.c myrg_rnext.c \
(-)mysql-5.0.76-old/mysys/Makefile.am (-23 / +24 lines)
Lines 18-31 Link Here
18
MYSQLBASEdir=		$(prefix)
18
MYSQLBASEdir=		$(prefix)
19
INCLUDES =		@ZLIB_INCLUDES@ -I$(top_builddir)/include \
19
INCLUDES =		@ZLIB_INCLUDES@ -I$(top_builddir)/include \
20
			-I$(top_srcdir)/include -I$(srcdir)
20
			-I$(top_srcdir)/include -I$(srcdir)
21
pkglib_LIBRARIES =	libmysys.a
21
pkglib_LTLIBRARIES =	libmysys.la
22
LDADD =			libmysys.a ../dbug/libdbug.a \
23
			../strings/libmystrings.a
24
noinst_HEADERS =	mysys_priv.h my_static.h \
22
noinst_HEADERS =	mysys_priv.h my_static.h \
25
			my_os2cond.c my_os2dirsrch.c my_os2dirsrch.h \
23
			my_os2cond.c my_os2dirsrch.c my_os2dirsrch.h \
26
			my_os2dlfcn.c my_os2file64.c my_os2mutex.c \
24
			my_os2dlfcn.c my_os2file64.c my_os2mutex.c \
27
			my_os2thread.c my_os2tls.c
25
			my_os2thread.c my_os2tls.c
28
libmysys_a_SOURCES =    my_init.c my_getwd.c mf_getdate.c my_mmap.c \
26
libmysys_la_SOURCES =    my_init.c my_getwd.c mf_getdate.c my_mmap.c \
29
			mf_path.c mf_loadpath.c my_file.c \
27
			mf_path.c mf_loadpath.c my_file.c \
30
			my_open.c my_create.c my_dup.c my_seek.c my_read.c \
28
			my_open.c my_create.c my_dup.c my_seek.c my_read.c \
31
			my_pread.c my_write.c my_getpagesize.c \
29
			my_pread.c my_write.c my_getpagesize.c \
Lines 49-69 Link Here
49
			my_quick.c my_lockmem.c my_static.c \
47
			my_quick.c my_lockmem.c my_static.c \
50
			my_sync.c my_getopt.c my_mkdir.c \
48
			my_sync.c my_getopt.c my_mkdir.c \
51
			default_modify.c default.c \
49
			default_modify.c default.c \
52
                        my_compress.c checksum.c raid.cc \
50
			my_compress.c checksum.c raid.cc \
53
			my_net.c my_port.c my_sleep.c \
51
			my_net.c my_port.c my_sleep.c \
54
			charset.c charset-def.c my_bitmap.c my_bit.c md5.c \
52
			charset.c charset-def.c my_bitmap.c my_bit.c md5.c \
55
			my_gethostbyname.c rijndael.c my_aes.c sha1.c \
53
			my_gethostbyname.c rijndael.c my_aes.c sha1.c \
56
			my_handler.c my_netware.c my_largepage.c \
54
			my_handler.c my_netware.c my_largepage.c \
57
			my_memmem.c \
55
			my_memmem.c my_windac.c my_access.c base64.c \
58
			my_windac.c my_access.c base64.c my_libwrap.c
56
			my_libwrap.c
57
libmysys_la_LIBADD = $(top_builddir)/dbug/libdbug.la $(top_builddir)/strings/libmystrings.la \
58
			$(ZLIB_LIBS)
59
if NEED_THREADS
60
libmysys_la_SOURCES += thr_alarm.c thr_lock.c thr_mutex.c thr_rwlock.c my_pthread.c my_thr_init.c
61
endif
62
59
EXTRA_DIST =		thr_alarm.c thr_lock.c my_pthread.c my_thr_init.c \
63
EXTRA_DIST =		thr_alarm.c thr_lock.c my_pthread.c my_thr_init.c \
60
			thr_mutex.c thr_rwlock.c mf_soundex.c my_conio.c \
64
			thr_mutex.c thr_rwlock.c mf_soundex.c my_conio.c \
61
			my_wincond.c my_winthread.c CMakeLists.txt
65
			my_wincond.c my_winthread.c CMakeLists.txt
62
libmysys_a_LIBADD =	@THREAD_LOBJECTS@
66
# test_dir_DEPENDENCIES=	$(LTLIBRARIES)
63
# test_dir_DEPENDENCIES=	$(LIBRARIES)
67
# testhash_DEPENDENCIES=	$(LTLIBRARIES)
64
# testhash_DEPENDENCIES=	$(LIBRARIES)
68
# test_charset_DEPENDENCIES=	$(LTLIBRARIES)
65
# test_charset_DEPENDENCIES=	$(LIBRARIES)
69
# charset2html_DEPENDENCIES=	$(LTLIBRARIES)
66
# charset2html_DEPENDENCIES=	$(LIBRARIES)
67
EXTRA_PROGRAMS =	
70
EXTRA_PROGRAMS =	
68
DEFS =			-DDEFAULT_BASEDIR=\"$(prefix)\" \
71
DEFS =			-DDEFAULT_BASEDIR=\"$(prefix)\" \
69
			-DDATADIR="\"$(MYSQLDATAdir)\"" \
72
			-DDATADIR="\"$(MYSQLDATAdir)\"" \
Lines 74-81 Link Here
74
			-DDEFAULT_SYSCONFDIR="\"$(sysconfdir)\"" \
77
			-DDEFAULT_SYSCONFDIR="\"$(sysconfdir)\"" \
75
                        @DEFS@
78
                        @DEFS@
76
79
77
libmysys_a_DEPENDENCIES= @THREAD_LOBJECTS@
78
79
# I hope this always does the right thing. Otherwise this is only test programs
80
# I hope this always does the right thing. Otherwise this is only test programs
80
FLAGS=$(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) @NOINST_LDFLAGS@
81
FLAGS=$(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) @NOINST_LDFLAGS@
81
82
Lines 84-124 Link Here
84
# which automaticly removes the object files you use to compile a final program
85
# which automaticly removes the object files you use to compile a final program
85
#
86
#
86
87
87
test_thr_alarm$(EXEEXT): thr_alarm.c $(LIBRARIES)
88
test_thr_alarm$(EXEEXT): thr_alarm.c $(LTLIBRARIES)
88
	$(CP) $(srcdir)/thr_alarm.c ./test_thr_alarm.c
89
	$(CP) $(srcdir)/thr_alarm.c ./test_thr_alarm.c
89
	$(LINK) $(FLAGS) -DMAIN  ./test_thr_alarm.c $(LDADD) $(LIBS)
90
	$(LINK) $(FLAGS) -DMAIN  ./test_thr_alarm.c $(LDADD) $(LIBS)
90
	$(RM) -f ./test_thr_alarm.c
91
	$(RM) -f ./test_thr_alarm.c
91
92
92
test_thr_lock$(EXEEXT): thr_lock.c $(LIBRARIES)
93
test_thr_lock$(EXEEXT): thr_lock.c $(LTLIBRARIES)
93
	$(CP) $(srcdir)/thr_lock.c test_thr_lock.c
94
	$(CP) $(srcdir)/thr_lock.c test_thr_lock.c
94
	$(LINK) $(FLAGS) -DMAIN  ./test_thr_lock.c $(LDADD) $(LIBS)
95
	$(LINK) $(FLAGS) -DMAIN  ./test_thr_lock.c $(LDADD) $(LIBS)
95
	$(RM) -f ./test_thr_lock.c
96
	$(RM) -f ./test_thr_lock.c
96
97
97
test_vsnprintf$(EXEEXT): my_vsnprintf.c $(LIBRARIES)
98
test_vsnprintf$(EXEEXT): my_vsnprintf.c $(LTLIBRARIES)
98
	$(CP) $(srcdir)/my_vsnprintf.c test_vsnprintf.c
99
	$(CP) $(srcdir)/my_vsnprintf.c test_vsnprintf.c
99
	$(LINK) $(FLAGS) -DMAIN ./test_vsnprintf.c $(LDADD) $(LIBS)
100
	$(LINK) $(FLAGS) -DMAIN ./test_vsnprintf.c $(LDADD) $(LIBS)
100
	$(RM) -f test_vsnprintf.c
101
	$(RM) -f test_vsnprintf.c
101
102
102
test_io_cache$(EXEEXT): mf_iocache.c $(LIBRARIES)
103
test_io_cache$(EXEEXT): mf_iocache.c $(LTLIBRARIES)
103
	$(CP) $(srcdir)/mf_iocache.c test_io_cache.c
104
	$(CP) $(srcdir)/mf_iocache.c test_io_cache.c
104
	$(LINK) $(FLAGS) -DMAIN ./test_io_cache.c $(LDADD) $(LIBS)
105
	$(LINK) $(FLAGS) -DMAIN ./test_io_cache.c $(LDADD) $(LIBS)
105
	$(RM) -f test_io_cache.c
106
	$(RM) -f test_io_cache.c
106
107
107
test_dir$(EXEEXT): test_dir.c $(LIBRARIES)
108
test_dir$(EXEEXT): test_dir.c $(LTLIBRARIES)
108
	$(LINK) $(FLAGS) -DMAIN $(srcdir)/test_dir.c $(LDADD) $(LIBS)
109
	$(LINK) $(FLAGS) -DMAIN $(srcdir)/test_dir.c $(LDADD) $(LIBS)
109
110
110
test_charset$(EXEEXT): test_charset.c $(LIBRARIES)
111
test_charset$(EXEEXT): test_charset.c $(LTLIBRARIES)
111
	$(LINK) $(FLAGS) -DMAIN $(srcdir)/test_charset.c $(LDADD) $(LIBS)
112
	$(LINK) $(FLAGS) -DMAIN $(srcdir)/test_charset.c $(LDADD) $(LIBS)
112
113
113
testhash$(EXEEXT): testhash.c $(LIBRARIES)
114
testhash$(EXEEXT): testhash.c $(LTLIBRARIES)
114
	$(LINK) $(FLAGS) -DMAIN $(srcdir)/testhash.c $(LDADD) $(LIBS)
115
	$(LINK) $(FLAGS) -DMAIN $(srcdir)/testhash.c $(LDADD) $(LIBS)
115
116
116
test_gethwaddr$(EXEEXT): my_gethwaddr.c $(LIBRARIES)
117
test_gethwaddr$(EXEEXT): my_gethwaddr.c $(LTLIBRARIES)
117
	$(CP) $(srcdir)/my_gethwaddr.c ./test_gethwaddr.c
118
	$(CP) $(srcdir)/my_gethwaddr.c ./test_gethwaddr.c
118
	$(LINK) $(FLAGS) -DMAIN  ./test_gethwaddr.c $(LDADD) $(LIBS)
119
	$(LINK) $(FLAGS) -DMAIN  ./test_gethwaddr.c $(LDADD) $(LIBS)
119
	$(RM) -f ./test_gethwaddr.c
120
	$(RM) -f ./test_gethwaddr.c
120
121
121
test_base64$(EXEEXT): base64.c $(LIBRARIES)
122
test_base64$(EXEEXT): base64.c $(LTLIBRARIES)
122
	$(CP) $(srcdir)/base64.c ./test_base64.c
123
	$(CP) $(srcdir)/base64.c ./test_base64.c
123
	$(LINK) $(FLAGS) -DMAIN  ./test_base64.c $(LDADD) $(LIBS)
124
	$(LINK) $(FLAGS) -DMAIN  ./test_base64.c $(LDADD) $(LIBS)
124
	$(RM) -f ./test_base64.c
125
	$(RM) -f ./test_base64.c
(-)mysql-5.0.76-old/netware/Makefile.am (-3 / +2 lines)
Lines 16-29 Link Here
16
16
17
if HAVE_NETWARE
17
if HAVE_NETWARE
18
INCLUDES =			-I$(top_builddir)/include -I$(top_srcdir)/include -I..
18
INCLUDES =			-I$(top_builddir)/include -I$(top_srcdir)/include -I..
19
LDADD =				@CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.a \
19
LDADD =				@CLIENT_EXTRA_LDFLAGS@ ../mysys/libmysys.la
20
				../dbug/libdbug.a ../strings/libmystrings.a
21
bin_PROGRAMS =			mysqld_safe mysql_install_db mysql_test_run libmysql
20
bin_PROGRAMS =			mysqld_safe mysql_install_db mysql_test_run libmysql
22
mysqld_safe_SOURCES=		mysqld_safe.c my_manage.c
21
mysqld_safe_SOURCES=		mysqld_safe.c my_manage.c
23
mysql_install_db_SOURCES=	mysql_install_db.c my_manage.c
22
mysql_install_db_SOURCES=	mysql_install_db.c my_manage.c
24
mysql_test_run_SOURCES=		mysql_test_run.c my_manage.c
23
mysql_test_run_SOURCES=		mysql_test_run.c my_manage.c
25
libmysql_SOURCES=		libmysqlmain.c
24
libmysql_SOURCES=		libmysqlmain.c
26
libmysql_LDADD =		../libmysql/.libs/libmysqlclient.a \
25
libmysql_LDADD =		../libmysql/.libs/libmysqlclient.la \
27
				@openssl_libs@ @yassl_libs@
26
				@openssl_libs@ @yassl_libs@
28
27
29
netware_build_files =           client/mysql.def client/mysqladmin.def \
28
netware_build_files =           client/mysql.def client/mysqladmin.def \
(-)mysql-5.0.76-old/pstack/Makefile.am (-2 / +2 lines)
Lines 27-34 Link Here
27
EXTRA_DIST=		$(SRC)
27
EXTRA_DIST=		$(SRC)
28
28
29
if COMPILE_PSTACK
29
if COMPILE_PSTACK
30
pkglib_LIBRARIES =	libpstack.a
30
pkglib_LTLIBRARIES =	libpstack.la
31
libpstack_a_SOURCES =	bucomm.c filemode.c linuxthreads.c rddbg.c debug.c ieee.c pstack.c stabs.c
31
libpstack_la_SOURCES =	bucomm.c filemode.c linuxthreads.c rddbg.c debug.c ieee.c pstack.c stabs.c
32
endif
32
endif
33
33
34
# Don't update the files from bitkeeper
34
# Don't update the files from bitkeeper
(-)mysql-5.0.76-old/regex/Makefile.am (-3 / +3 lines)
Lines 16-25 Link Here
16
# MA 02111-1307, USA
16
# MA 02111-1307, USA
17
17
18
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
18
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
19
noinst_LIBRARIES =	libregex.a
19
noinst_LTLIBRARIES =	libregex.la
20
LDADD=			libregex.a $(top_builddir)/strings/libmystrings.a
20
LDADD=			libregex.la $(top_builddir)/strings/libmystrings.la
21
noinst_HEADERS =	cclass.h cname.h regex2.h utils.h engine.c my_regex.h
21
noinst_HEADERS =	cclass.h cname.h regex2.h utils.h engine.c my_regex.h
22
libregex_a_SOURCES =	regerror.c regcomp.c regexec.c regfree.c reginit.c
22
libregex_la_SOURCES =	regerror.c regcomp.c regexec.c regfree.c reginit.c
23
noinst_PROGRAMS =	re
23
noinst_PROGRAMS =	re
24
re_SOURCES =		split.c debug.c main.c
24
re_SOURCES =		split.c debug.c main.c
25
re_LDFLAGS= @NOINST_LDFLAGS@
25
re_LDFLAGS= @NOINST_LDFLAGS@
(-)mysql-5.0.76-old/sql/field.h (-19 / +19 lines)
Lines 55-61 Link Here
55
  char		*ptr;			// Position to field in record
55
  char		*ptr;			// Position to field in record
56
  uchar		*null_ptr;		// Byte where null_bit is
56
  uchar		*null_ptr;		// Byte where null_bit is
57
  /*
57
  /*
58
    Note that you can use table->in_use as replacement for current_thd member 
58
    Note that you can use table->in_use as replacement for current_thd member
59
    only inside of val_*() and store() members (e.g. you can't use it in cons)
59
    only inside of val_*() and store() members (e.g. you can't use it in cons)
60
  */
60
  */
61
  struct st_table *table;		// Pointer for table
61
  struct st_table *table;		// Pointer for table
Lines 65-74 Link Here
65
  query_id_t	query_id;		// For quick test of used fields
65
  query_id_t	query_id;		// For quick test of used fields
66
  /* Field is part of the following keys */
66
  /* Field is part of the following keys */
67
  key_map	key_start,part_of_key,part_of_sortkey;
67
  key_map	key_start,part_of_key,part_of_sortkey;
68
  /* 
68
  /*
69
    We use three additional unireg types for TIMESTAMP to overcome limitation 
69
    We use three additional unireg types for TIMESTAMP to overcome limitation
70
    of current binary format of .frm file. We'd like to be able to support 
70
    of current binary format of .frm file. We'd like to be able to support
71
    NOW() as default and on update value for such fields but unable to hold 
71
    NOW() as default and on update value for such fields but unable to hold
72
    this info anywhere except unireg_check field. This issue will be resolved
72
    this info anywhere except unireg_check field. This issue will be resolved
73
    in more clean way with transition to new text based .frm format.
73
    in more clean way with transition to new text based .frm format.
74
    See also comment for Field_timestamp::Field_timestamp().
74
    See also comment for Field_timestamp::Field_timestamp().
Lines 141-147 Link Here
141
            null_bit == field->null_bit && field->type() == type());
141
            null_bit == field->null_bit && field->type() == type());
142
  }
142
  }
143
  virtual bool eq_def(Field *field);
143
  virtual bool eq_def(Field *field);
144
  
144
145
  /*
145
  /*
146
    pack_length() returns size (in bytes) used to store field data in memory
146
    pack_length() returns size (in bytes) used to store field data in memory
147
    (i.e. it returns the maximum size of the field in a row of the table,
147
    (i.e. it returns the maximum size of the field in a row of the table,
Lines 349-361 Link Here
349
  virtual void set_derivation(enum Derivation derivation_arg) { }
349
  virtual void set_derivation(enum Derivation derivation_arg) { }
350
  bool set_warning(MYSQL_ERROR::enum_warning_level, unsigned int code,
350
  bool set_warning(MYSQL_ERROR::enum_warning_level, unsigned int code,
351
                   int cuted_increment);
351
                   int cuted_increment);
352
  void set_datetime_warning(MYSQL_ERROR::enum_warning_level, uint code, 
352
  void set_datetime_warning(MYSQL_ERROR::enum_warning_level, uint code,
353
                            const char *str, uint str_len,
353
                            const char *str, uint str_len,
354
                            timestamp_type ts_type, int cuted_increment);
354
                            timestamp_type ts_type, int cuted_increment);
355
  void set_datetime_warning(MYSQL_ERROR::enum_warning_level, uint code, 
355
  void set_datetime_warning(MYSQL_ERROR::enum_warning_level, uint code,
356
                            longlong nr, timestamp_type ts_type,
356
                            longlong nr, timestamp_type ts_type,
357
                            int cuted_increment);
357
                            int cuted_increment);
358
  void set_datetime_warning(MYSQL_ERROR::enum_warning_level, const uint code, 
358
  void set_datetime_warning(MYSQL_ERROR::enum_warning_level, const uint code,
359
                            double nr, timestamp_type ts_type);
359
                            double nr, timestamp_type ts_type);
360
  inline bool check_overflow(int op_result)
360
  inline bool check_overflow(int op_result)
361
  {
361
  {
Lines 417-424 Link Here
417
  my_decimal *val_decimal(my_decimal *);
417
  my_decimal *val_decimal(my_decimal *);
418
  int check_int(CHARSET_INFO *cs, const char *str, int length,
418
  int check_int(CHARSET_INFO *cs, const char *str, int length,
419
                const char *int_end, int error);
419
                const char *int_end, int error);
420
  bool get_int(CHARSET_INFO *cs, const char *from, uint len, 
420
  bool get_int(CHARSET_INFO *cs, const char *from, uint len,
421
               longlong *rnd, ulonglong unsigned_max, 
421
               longlong *rnd, ulonglong unsigned_max,
422
               longlong signed_min, longlong signed_max);
422
               longlong signed_min, longlong signed_max);
423
};
423
};
424
424
Lines 533-539 Link Here
533
    Constructors take max_length of the field as a parameter - not the
533
    Constructors take max_length of the field as a parameter - not the
534
    precision as the number of decimal digits allowed.
534
    precision as the number of decimal digits allowed.
535
    So for example we need to count length from precision handling
535
    So for example we need to count length from precision handling
536
    CREATE TABLE ( DECIMAL(x,y)) 
536
    CREATE TABLE ( DECIMAL(x,y))
537
  */
537
  */
538
  Field_new_decimal(char *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
538
  Field_new_decimal(char *ptr_arg, uint32 len_arg, uchar *null_ptr_arg,
539
                    uchar null_bit_arg,
539
                    uchar null_bit_arg,
Lines 564-570 Link Here
564
  bool zero_pack() const { return 0; }
564
  bool zero_pack() const { return 0; }
565
  void sql_type(String &str) const;
565
  void sql_type(String &str) const;
566
  uint32 max_display_length() { return field_length; }
566
  uint32 max_display_length() { return field_length; }
567
  uint size_of() const { return sizeof(*this); } 
567
  uint size_of() const { return sizeof(*this); }
568
  uint32 pack_length() const { return (uint32) bin_size; }
568
  uint32 pack_length() const { return (uint32) bin_size; }
569
};
569
};
570
570
Lines 1217-1228 Link Here
1217
    The number of bytes used to represent the length of the blob.
1217
    The number of bytes used to represent the length of the blob.
1218
  */
1218
  */
1219
  uint packlength;
1219
  uint packlength;
1220
  
1220
1221
  /**
1221
  /**
1222
    The 'value'-object is a cache fronting the storage engine.
1222
    The 'value'-object is a cache fronting the storage engine.
1223
  */
1223
  */
1224
  String value;
1224
  String value;
1225
  
1225
1226
public:
1226
public:
1227
  Field_blob(char *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg,
1227
  Field_blob(char *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg,
1228
	     enum utype unireg_check_arg, const char *field_name_arg,
1228
	     enum utype unireg_check_arg, const char *field_name_arg,
Lines 1457-1463 Link Here
1457
  String *val_str(String*, String *);
1457
  String *val_str(String*, String *);
1458
  my_decimal *val_decimal(my_decimal *);
1458
  my_decimal *val_decimal(my_decimal *);
1459
  int cmp(const char *a, const char *b)
1459
  int cmp(const char *a, const char *b)
1460
  { 
1460
  {
1461
    DBUG_ASSERT(ptr == a);
1461
    DBUG_ASSERT(ptr == a);
1462
    return Field_bit::key_cmp((const byte *) b, bytes_in_rec+test(bit_len));
1462
    return Field_bit::key_cmp((const byte *) b, bytes_in_rec+test(bit_len));
1463
  }
1463
  }
Lines 1468-1474 Link Here
1468
  int cmp_binary_offset(uint row_offset)
1468
  int cmp_binary_offset(uint row_offset)
1469
  { return cmp_offset(row_offset); }
1469
  { return cmp_offset(row_offset); }
1470
  void get_image(char *buff, uint length, CHARSET_INFO *cs)
1470
  void get_image(char *buff, uint length, CHARSET_INFO *cs)
1471
  { get_key_image(buff, length, itRAW); }   
1471
  { get_key_image(buff, length, itRAW); }
1472
  void set_image(char *buff,uint length, CHARSET_INFO *cs)
1472
  void set_image(char *buff,uint length, CHARSET_INFO *cs)
1473
  { Field_bit::store(buff, length, cs); }
1473
  { Field_bit::store(buff, length, cs); }
1474
  uint get_key_image(char *buff, uint length, imagetype type);
1474
  uint get_key_image(char *buff, uint length, imagetype type);
Lines 1534-1540 Link Here
1534
  enum	enum_field_types sql_type;
1534
  enum	enum_field_types sql_type;
1535
  /*
1535
  /*
1536
    At various stages in execution this can be length of field in bytes or
1536
    At various stages in execution this can be length of field in bytes or
1537
    max number of characters. 
1537
    max number of characters.
1538
  */
1538
  */
1539
  ulong length;
1539
  ulong length;
1540
  /*
1540
  /*
Lines 1604-1610 Link Here
1604
1604
1605
  Copy_field() {}
1605
  Copy_field() {}
1606
  ~Copy_field() {}
1606
  ~Copy_field() {}
1607
  void set(Field *to,Field *from,bool save);	// Field to field 
1607
  void set(Field *to,Field *from,bool save);	// Field to field
1608
  void set(char *to,Field *from);		// Field to string
1608
  void set(char *to,Field *from);		// Field to string
1609
  void (*do_copy)(Copy_field *);
1609
  void (*do_copy)(Copy_field *);
1610
  void (*do_copy2)(Copy_field *);		// Used to handle null values
1610
  void (*do_copy2)(Copy_field *);		// Used to handle null values
(-)mysql-5.0.76-old/sql/item.h (-63 / +63 lines)
Lines 50-56 Link Here
50
  CHARSET_INFO     *collation;
50
  CHARSET_INFO     *collation;
51
  enum Derivation derivation;
51
  enum Derivation derivation;
52
  uint repertoire;
52
  uint repertoire;
53
  
53
54
  void set_repertoire_from_charset(CHARSET_INFO *cs)
54
  void set_repertoire_from_charset(CHARSET_INFO *cs)
55
  {
55
  {
56
    repertoire= cs->state & MY_CS_PUREASCII ?
56
    repertoire= cs->state & MY_CS_PUREASCII ?
Lines 69-75 Link Here
69
    set_repertoire_from_charset(collation_arg);
69
    set_repertoire_from_charset(collation_arg);
70
  }
70
  }
71
  void set(DTCollation &dt)
71
  void set(DTCollation &dt)
72
  { 
72
  {
73
    collation= dt.collation;
73
    collation= dt.collation;
74
    derivation= dt.derivation;
74
    derivation= dt.derivation;
75
    repertoire= dt.repertoire;
75
    repertoire= dt.repertoire;
Lines 271-277 Link Here
271
    for the purpose of name resolution. The first and last name resolution
271
    for the purpose of name resolution. The first and last name resolution
272
    table references allow us to search only in a sub-tree of the nested
272
    table references allow us to search only in a sub-tree of the nested
273
    join tree in a FROM clause. This is needed for NATURAL JOIN, JOIN ... USING
273
    join tree in a FROM clause. This is needed for NATURAL JOIN, JOIN ... USING
274
    and JOIN ... ON. 
274
    and JOIN ... ON.
275
  */
275
  */
276
  TABLE_LIST *first_name_resolution_table;
276
  TABLE_LIST *first_name_resolution_table;
277
  /*
277
  /*
Lines 425-431 Link Here
425
      argp   in/out IN:  Analysis parameter
425
      argp   in/out IN:  Analysis parameter
426
                    OUT: Parameter to be passed to the transformer
426
                    OUT: Parameter to be passed to the transformer
427
427
428
    RETURN 
428
    RETURN
429
      TRUE   Invoke the transformer
429
      TRUE   Invoke the transformer
430
      FALSE  Don't do it
430
      FALSE  Don't do it
431
431
Lines 458-464 Link Here
458
  enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE };
458
  enum cond_result { COND_UNDEF,COND_OK,COND_TRUE,COND_FALSE };
459
459
460
  enum traverse_order { POSTFIX, PREFIX };
460
  enum traverse_order { POSTFIX, PREFIX };
461
  
461
462
  /* Reuse size, only used by SP local variable assignment, otherwize 0 */
462
  /* Reuse size, only used by SP local variable assignment, otherwize 0 */
463
  uint rsize;
463
  uint rsize;
464
464
Lines 680-695 Link Here
680
  virtual uint decimal_precision() const;
680
  virtual uint decimal_precision() const;
681
  inline int decimal_int_part() const
681
  inline int decimal_int_part() const
682
  { return my_decimal_int_part(decimal_precision(), decimals); }
682
  { return my_decimal_int_part(decimal_precision(), decimals); }
683
  /* 
683
  /*
684
    Returns true if this is constant (during query execution, i.e. its value
684
    Returns true if this is constant (during query execution, i.e. its value
685
    will not change until next fix_fields) and its value is known.
685
    will not change until next fix_fields) and its value is known.
686
  */
686
  */
687
  virtual bool const_item() const { return used_tables() == 0; }
687
  virtual bool const_item() const { return used_tables() == 0; }
688
  /* 
688
  /*
689
    Returns true if this is constant but its value may be not known yet.
689
    Returns true if this is constant but its value may be not known yet.
690
    (Can be used for parameters of prep. stmts or of stored procedures.)
690
    (Can be used for parameters of prep. stmts or of stored procedures.)
691
  */
691
  */
692
  virtual bool const_during_execution() const 
692
  virtual bool const_during_execution() const
693
  { return (used_tables() & ~PARAM_TABLE_BIT) == 0; }
693
  { return (used_tables() & ~PARAM_TABLE_BIT) == 0; }
694
  /*
694
  /*
695
    This is an essential method for correct functioning of VIEWS.
695
    This is an essential method for correct functioning of VIEWS.
Lines 716-723 Link Here
716
  virtual bool get_date_result(MYSQL_TIME *ltime,uint fuzzydate)
716
  virtual bool get_date_result(MYSQL_TIME *ltime,uint fuzzydate)
717
  { return get_date(ltime,fuzzydate); }
717
  { return get_date(ltime,fuzzydate); }
718
  /*
718
  /*
719
    The method allows to determine nullness of a complex expression 
719
    The method allows to determine nullness of a complex expression
720
    without fully evaluating it, instead of calling val/result*() then 
720
    without fully evaluating it, instead of calling val/result*() then
721
    checking null_value. Used in Item_func_isnull/Item_func_isnotnull
721
    checking null_value. Used in Item_func_isnull/Item_func_isnotnull
722
    and Item_sum_count/Item_sum_count_distinct.
722
    and Item_sum_count/Item_sum_count_distinct.
723
    Any new item which can be NULL must implement this method.
723
    Any new item which can be NULL must implement this method.
Lines 769-778 Link Here
769
769
770
  /*
770
  /*
771
    This function performs a generic "compilation" of the Item tree.
771
    This function performs a generic "compilation" of the Item tree.
772
    The process of compilation is assumed to go as follows: 
772
    The process of compilation is assumed to go as follows:
773
    
773
774
    compile()
774
    compile()
775
    { 
775
    {
776
      if (this->*some_analyzer(...))
776
      if (this->*some_analyzer(...))
777
      {
777
      {
778
        compile children if any;
778
        compile children if any;
Lines 781-787 Link Here
781
    }
781
    }
782
782
783
    i.e. analysis is performed top-down while transformation is done
783
    i.e. analysis is performed top-down while transformation is done
784
    bottom-up.      
784
    bottom-up.
785
  */
785
  */
786
  virtual Item* compile(Item_analyzer analyzer, byte **arg_p,
786
  virtual Item* compile(Item_analyzer analyzer, byte **arg_p,
787
                        Item_transformer transformer, byte *arg_t)
787
                        Item_transformer transformer, byte *arg_t)
Lines 806-815 Link Here
806
  virtual bool reset_query_id_processor(byte *query_id_arg) { return 0; }
806
  virtual bool reset_query_id_processor(byte *query_id_arg) { return 0; }
807
  virtual bool is_expensive_processor(byte *arg) { return 0; }
807
  virtual bool is_expensive_processor(byte *arg) { return 0; }
808
  virtual bool subst_argument_checker(byte **arg)
808
  virtual bool subst_argument_checker(byte **arg)
809
  { 
809
  {
810
    if (*arg)
810
    if (*arg)
811
      *arg= NULL; 
811
      *arg= NULL;
812
    return TRUE;     
812
    return TRUE;
813
  }
813
  }
814
814
815
  virtual Item *equal_fields_propagator(byte * arg) { return this; }
815
  virtual Item *equal_fields_propagator(byte * arg) { return this; }
Lines 873-879 Link Here
873
  virtual Field::geometry_type get_geometry_type() const
873
  virtual Field::geometry_type get_geometry_type() const
874
    { return Field::GEOM_GEOMETRY; };
874
    { return Field::GEOM_GEOMETRY; };
875
  String *check_well_formed_result(String *str, bool send_error= 0);
875
  String *check_well_formed_result(String *str, bool send_error= 0);
876
  bool eq_by_collation(Item *item, bool binary_cmp, CHARSET_INFO *cs); 
876
  bool eq_by_collation(Item *item, bool binary_cmp, CHARSET_INFO *cs);
877
};
877
};
878
878
879
879
Lines 939-950 Link Here
939
939
940
public:
940
public:
941
  inline void make_field(Send_field *field);
941
  inline void make_field(Send_field *field);
942
  
942
943
  inline bool const_item() const;
943
  inline bool const_item() const;
944
  
944
945
  inline int save_in_field(Field *field, bool no_conversions);
945
  inline int save_in_field(Field *field, bool no_conversions);
946
  inline bool send(Protocol *protocol, String *str);
946
  inline bool send(Protocol *protocol, String *str);
947
}; 
947
};
948
948
949
/*****************************************************************************
949
/*****************************************************************************
950
  Item_sp_variable inline implementation.
950
  Item_sp_variable inline implementation.
Lines 991-997 Link Here
991
  Item_result m_result_type;
991
  Item_result m_result_type;
992
  enum_field_types m_field_type;
992
  enum_field_types m_field_type;
993
public:
993
public:
994
  /* 
994
  /*
995
    Position of this reference to SP variable in the statement (the
995
    Position of this reference to SP variable in the statement (the
996
    statement itself is in sp_instr_stmt::m_query).
996
    statement itself is in sp_instr_stmt::m_query).
997
    This is valid only for references to SP variables in statements,
997
    This is valid only for references to SP variables in statements,
Lines 1112-1120 Link Here
1112
1112
1113
1113
1114
/*
1114
/*
1115
  NAME_CONST(given_name, const_value). 
1115
  NAME_CONST(given_name, const_value).
1116
  This 'function' has all properties of the supplied const_value (which is 
1116
  This 'function' has all properties of the supplied const_value (which is
1117
  assumed to be a literal constant), and the name given_name. 
1117
  assumed to be a literal constant), and the name given_name.
1118
1118
1119
  This is used to replace references to SP variables when we write PROCEDURE
1119
  This is used to replace references to SP variables when we write PROCEDURE
1120
  statements into the binary log.
1120
  statements into the binary log.
Lines 1186-1195 Link Here
1186
class Item_ident :public Item
1186
class Item_ident :public Item
1187
{
1187
{
1188
protected:
1188
protected:
1189
  /* 
1189
  /*
1190
    We have to store initial values of db_name, table_name and field_name
1190
    We have to store initial values of db_name, table_name and field_name
1191
    to be able to restore them during cleanup() because they can be 
1191
    to be able to restore them during cleanup() because they can be
1192
    updated during fix_fields() to values from Field object and life-time 
1192
    updated during fix_fields() to values from Field object and life-time
1193
    of those is shorter than life-time of Item_field.
1193
    of those is shorter than life-time of Item_field.
1194
  */
1194
  */
1195
  const char *orig_db_name;
1195
  const char *orig_db_name;
Lines 1202-1210 Link Here
1202
  const char *table_name;
1202
  const char *table_name;
1203
  const char *field_name;
1203
  const char *field_name;
1204
  bool alias_name_used; /* true if item was resolved against alias */
1204
  bool alias_name_used; /* true if item was resolved against alias */
1205
  /* 
1205
  /*
1206
    Cached value of index for this field in table->field array, used by prep. 
1206
    Cached value of index for this field in table->field array, used by prep.
1207
    stmts for speeding up their re-execution. Holds NO_CACHED_FIELD_INDEX 
1207
    stmts for speeding up their re-execution. Holds NO_CACHED_FIELD_INDEX
1208
    if index value is not known.
1208
    if index value is not known.
1209
  */
1209
  */
1210
  uint cached_field_index;
1210
  uint cached_field_index;
Lines 1402-1408 Link Here
1402
  {
1402
  {
1403
    save_in_field(result_field, no_conversions);
1403
    save_in_field(result_field, no_conversions);
1404
  }
1404
  }
1405
};  
1405
};
1406
1406
1407
/* Item represents one placeholder ('?') of prepared statement */
1407
/* Item represents one placeholder ('?') of prepared statement */
1408
1408
Lines 1766-1774 Link Here
1766
  enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; }
1766
  enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; }
1767
  bool basic_const_item() const { return 1; }
1767
  bool basic_const_item() const { return 1; }
1768
  bool eq(const Item *item, bool binary_cmp) const;
1768
  bool eq(const Item *item, bool binary_cmp) const;
1769
  Item *clone_item() 
1769
  Item *clone_item()
1770
  {
1770
  {
1771
    return new Item_string(name, str_value.ptr(), 
1771
    return new Item_string(name, str_value.ptr(),
1772
    			   str_value.length(), collation.collation);
1772
    			   str_value.length(), collation.collation);
1773
  }
1773
  }
1774
  Item *safe_charset_converter(CHARSET_INFO *tocs);
1774
  Item *safe_charset_converter(CHARSET_INFO *tocs);
Lines 1842-1849 Link Here
1842
  Item_hex_string(const char *str,uint str_length);
1842
  Item_hex_string(const char *str,uint str_length);
1843
  enum Type type() const { return VARBIN_ITEM; }
1843
  enum Type type() const { return VARBIN_ITEM; }
1844
  double val_real()
1844
  double val_real()
1845
  { 
1845
  {
1846
    DBUG_ASSERT(fixed == 1); 
1846
    DBUG_ASSERT(fixed == 1);
1847
    return (double) (ulonglong) Item_hex_string::val_int();
1847
    return (double) (ulonglong) Item_hex_string::val_int();
1848
  }
1848
  }
1849
  longlong val_int();
1849
  longlong val_int();
Lines 1907-1920 Link Here
1907
    This constructor is used in two scenarios:
1907
    This constructor is used in two scenarios:
1908
    A) *item = NULL
1908
    A) *item = NULL
1909
      No initialization is performed, fix_fields() call will be necessary.
1909
      No initialization is performed, fix_fields() call will be necessary.
1910
      
1910
1911
    B) *item points to an Item this Item_ref will refer to. This is 
1911
    B) *item points to an Item this Item_ref will refer to. This is
1912
      used for GROUP BY. fix_fields() will not be called in this case,
1912
      used for GROUP BY. fix_fields() will not be called in this case,
1913
      so we call set_properties to make this item "fixed". set_properties
1913
      so we call set_properties to make this item "fixed". set_properties
1914
      performs a subset of action Item_ref::fix_fields does, and this subset
1914
      performs a subset of action Item_ref::fix_fields does, and this subset
1915
      is enough for Item_ref's used in GROUP BY.
1915
      is enough for Item_ref's used in GROUP BY.
1916
    
1916
1917
    TODO we probably fix a superset of problems like in BUG#6658. Check this 
1917
    TODO we probably fix a superset of problems like in BUG#6658. Check this
1918
         with Bar, and if we have a more broader set of problems like this.
1918
         with Bar, and if we have a more broader set of problems like this.
1919
  */
1919
  */
1920
  Item_ref(Name_resolution_context *context_arg, Item **item,
1920
  Item_ref(Name_resolution_context *context_arg, Item **item,
Lines 1926-1932 Link Here
1926
    :Item_ident(thd, item), result_field(item->result_field), ref(item->ref) {}
1926
    :Item_ident(thd, item), result_field(item->result_field), ref(item->ref) {}
1927
  enum Type type() const		{ return REF_ITEM; }
1927
  enum Type type() const		{ return REF_ITEM; }
1928
  bool eq(const Item *item, bool binary_cmp) const
1928
  bool eq(const Item *item, bool binary_cmp) const
1929
  { 
1929
  {
1930
    Item *it= ((Item *) item)->real_item();
1930
    Item *it= ((Item *) item)->real_item();
1931
    return ref && (*ref)->eq(it, binary_cmp);
1931
    return ref && (*ref)->eq(it, binary_cmp);
1932
  }
1932
  }
Lines 1952-1965 Link Here
1952
  Field *get_tmp_table_field()
1952
  Field *get_tmp_table_field()
1953
  { return result_field ? result_field : (*ref)->get_tmp_table_field(); }
1953
  { return result_field ? result_field : (*ref)->get_tmp_table_field(); }
1954
  Item *get_tmp_table_item(THD *thd);
1954
  Item *get_tmp_table_item(THD *thd);
1955
  table_map used_tables() const		
1955
  table_map used_tables() const
1956
  {
1956
  {
1957
    return depended_from ? OUTER_REF_TABLE_BIT : (*ref)->used_tables(); 
1957
    return depended_from ? OUTER_REF_TABLE_BIT : (*ref)->used_tables();
1958
  }
1958
  }
1959
  void update_used_tables() 
1959
  void update_used_tables()
1960
  { 
1960
  {
1961
    if (!depended_from) 
1961
    if (!depended_from)
1962
      (*ref)->update_used_tables(); 
1962
      (*ref)->update_used_tables();
1963
  }
1963
  }
1964
  table_map not_null_tables() const { return (*ref)->not_null_tables(); }
1964
  table_map not_null_tables() const { return (*ref)->not_null_tables(); }
1965
  void set_result_field(Field *field)	{ result_field= field; }
1965
  void set_result_field(Field *field)	{ result_field= field; }
Lines 1999-2005 Link Here
1999
  }
1999
  }
2000
  bool check_cols(uint c)
2000
  bool check_cols(uint c)
2001
  {
2001
  {
2002
    return ref && result_type() == ROW_RESULT ? (*ref)->check_cols(c) 
2002
    return ref && result_type() == ROW_RESULT ? (*ref)->check_cols(c)
2003
                                              : Item::check_cols(c);
2003
                                              : Item::check_cols(c);
2004
  }
2004
  }
2005
  bool null_inside()
2005
  bool null_inside()
Lines 2007-2013 Link Here
2007
    return ref && result_type() == ROW_RESULT ? (*ref)->null_inside() : 0;
2007
    return ref && result_type() == ROW_RESULT ? (*ref)->null_inside() : 0;
2008
  }
2008
  }
2009
  void bring_value()
2009
  void bring_value()
2010
  { 
2010
  {
2011
    if (ref && result_type() == ROW_RESULT)
2011
    if (ref && result_type() == ROW_RESULT)
2012
      (*ref)->bring_value();
2012
      (*ref)->bring_value();
2013
  }
2013
  }
Lines 2166-2174 Link Here
2166
  The following class is used to optimize comparing of date and bigint columns
2166
  The following class is used to optimize comparing of date and bigint columns
2167
  We need to save the original item ('ref') to be able to call
2167
  We need to save the original item ('ref') to be able to call
2168
  ref->save_in_field(). This is used to create index search keys.
2168
  ref->save_in_field(). This is used to create index search keys.
2169
  
2169
2170
  An instance of Item_int_with_ref may have signed or unsigned integer value.
2170
  An instance of Item_int_with_ref may have signed or unsigned integer value.
2171
  
2171
2172
*/
2172
*/
2173
2173
2174
class Item_int_with_ref :public Item_int
2174
class Item_int_with_ref :public Item_int
Lines 2230-2236 Link Here
2230
    int err;
2230
    int err;
2231
    return null_value ? LL(0) : my_strntoll(str_value.charset(),str_value.ptr(),
2231
    return null_value ? LL(0) : my_strntoll(str_value.charset(),str_value.ptr(),
2232
                                            str_value.length(),10, (char**) 0,
2232
                                            str_value.length(),10, (char**) 0,
2233
                                            &err); 
2233
                                            &err);
2234
  }
2234
  }
2235
  String *val_str(String*);
2235
  String *val_str(String*);
2236
  my_decimal *val_decimal(my_decimal *);
2236
  my_decimal *val_decimal(my_decimal *);
Lines 2362-2368 Link Here
2362
  {
2362
  {
2363
    return Item_field::save_in_field(field_arg, no_conversions);
2363
    return Item_field::save_in_field(field_arg, no_conversions);
2364
  }
2364
  }
2365
  /* 
2365
  /*
2366
   We use RAND_TABLE_BIT to prevent Item_insert_value from
2366
   We use RAND_TABLE_BIT to prevent Item_insert_value from
2367
   being treated as a constant and precalculated before execution
2367
   being treated as a constant and precalculated before execution
2368
  */
2368
  */
Lines 2478-2491 Link Here
2478
  Item *example;
2478
  Item *example;
2479
  table_map used_table_map;
2479
  table_map used_table_map;
2480
  /*
2480
  /*
2481
    Field that this object will get value from. This is set/used by 
2481
    Field that this object will get value from. This is set/used by
2482
    index-based subquery engines to detect and remove the equality injected 
2482
    index-based subquery engines to detect and remove the equality injected
2483
    by IN->EXISTS transformation.
2483
    by IN->EXISTS transformation.
2484
    For all other uses of Item_cache, cached_field doesn't matter.
2484
    For all other uses of Item_cache, cached_field doesn't matter.
2485
  */  
2485
  */
2486
  Field *cached_field;
2486
  Field *cached_field;
2487
public:
2487
public:
2488
  Item_cache(): example(0), used_table_map(0), cached_field(0) 
2488
  Item_cache(): example(0), used_table_map(0), cached_field(0)
2489
  {
2489
  {
2490
    fixed= 1; null_value= 1;
2490
    fixed= 1; null_value= 1;
2491
  }
2491
  }
Lines 2510-2517 Link Here
2510
  table_map used_tables() const { return used_table_map; }
2510
  table_map used_tables() const { return used_table_map; }
2511
  virtual void keep_array() {}
2511
  virtual void keep_array() {}
2512
  void print(String *str);
2512
  void print(String *str);
2513
  bool eq_def(Field *field) 
2513
  bool eq_def(Field *field)
2514
  { 
2514
  {
2515
    return cached_field ? cached_field->eq_def (field) : FALSE;
2515
    return cached_field ? cached_field->eq_def (field) : FALSE;
2516
  }
2516
  }
2517
  bool eq(const Item *item, bool binary_cmp) const
2517
  bool eq(const Item *item, bool binary_cmp) const
Lines 2575-2581 Link Here
2575
  char buffer[STRING_BUFFER_USUAL_SIZE];
2575
  char buffer[STRING_BUFFER_USUAL_SIZE];
2576
  String *value, value_buff;
2576
  String *value, value_buff;
2577
  bool is_varbinary;
2577
  bool is_varbinary;
2578
  
2578
2579
public:
2579
public:
2580
  Item_cache_str(const Item *item) :
2580
  Item_cache_str(const Item *item) :
2581
    Item_cache(), value(0),
2581
    Item_cache(), value(0),
Lines 2602-2610 Link Here
2602
public:
2602
public:
2603
  Item_cache_row()
2603
  Item_cache_row()
2604
    :Item_cache(), values(0), item_count(2), save_array(0) {}
2604
    :Item_cache(), values(0), item_count(2), save_array(0) {}
2605
  
2605
2606
  /*
2606
  /*
2607
    'allocate' used only in row transformer, to preallocate space for row 
2607
    'allocate' used only in row transformer, to preallocate space for row
2608
    cache.
2608
    cache.
2609
  */
2609
  */
2610
  bool allocate(uint num);
2610
  bool allocate(uint num);
Lines 2641-2647 Link Here
2641
  };
2641
  };
2642
2642
2643
  enum Item_result result_type() const { return ROW_RESULT; }
2643
  enum Item_result result_type() const { return ROW_RESULT; }
2644
  
2644
2645
  uint cols() { return item_count; }
2645
  uint cols() { return item_count; }
2646
  Item *element_index(uint i) { return values[i]; }
2646
  Item *element_index(uint i) { return values[i]; }
2647
  Item **addr(uint i) { return (Item **) (values + i); }
2647
  Item **addr(uint i) { return (Item **) (values + i); }
(-)mysql-5.0.76-old/sql/item_sum.h (-43 / +43 lines)
Lines 30-42 Link Here
30
 GENERAL NOTES
30
 GENERAL NOTES
31
31
32
  A set function cannot be used in certain positions where expressions are
32
  A set function cannot be used in certain positions where expressions are
33
  accepted. There are some quite explicable restrictions for the usage of 
33
  accepted. There are some quite explicable restrictions for the usage of
34
  set functions.
34
  set functions.
35
35
36
  In the query:
36
  In the query:
37
    SELECT AVG(b) FROM t1 WHERE SUM(b) > 20 GROUP by a
37
    SELECT AVG(b) FROM t1 WHERE SUM(b) > 20 GROUP by a
38
  the usage of the set function AVG(b) is legal, while the usage of SUM(b)
38
  the usage of the set function AVG(b) is legal, while the usage of SUM(b)
39
  is illegal. A WHERE condition must contain expressions that can be 
39
  is illegal. A WHERE condition must contain expressions that can be
40
  evaluated for each row of the table. Yet the expression SUM(b) can be
40
  evaluated for each row of the table. Yet the expression SUM(b) can be
41
  evaluated only for each group of rows with the same value of column a.
41
  evaluated only for each group of rows with the same value of column a.
42
  In the query:
42
  In the query:
Lines 61-79 Link Here
61
  The problem of finding the query where to aggregate a particular
61
  The problem of finding the query where to aggregate a particular
62
  set function is not so simple as it seems to be.
62
  set function is not so simple as it seems to be.
63
63
64
  In the query: 
64
  In the query:
65
    SELECT t1.a FROM t1 GROUP BY t1.a
65
    SELECT t1.a FROM t1 GROUP BY t1.a
66
     HAVING t1.a > ALL(SELECT t2.c FROM t2 GROUP BY t2.c
66
     HAVING t1.a > ALL(SELECT t2.c FROM t2 GROUP BY t2.c
67
                         HAVING SUM(t1.a) < t2.c)
67
                         HAVING SUM(t1.a) < t2.c)
68
  the set function can be evaluated for both outer and inner selects.
68
  the set function can be evaluated for both outer and inner selects.
69
  If we evaluate SUM(t1.a) for the outer query then we get the value of t1.a
69
  If we evaluate SUM(t1.a) for the outer query then we get the value of t1.a
70
  multiplied by the cardinality of a group in table t1. In this case 
70
  multiplied by the cardinality of a group in table t1. In this case
71
  in each correlated subquery SUM(t1.a) is used as a constant. But we also
71
  in each correlated subquery SUM(t1.a) is used as a constant. But we also
72
  can evaluate SUM(t1.a) for the inner query. In this case t1.a will be a
72
  can evaluate SUM(t1.a) for the inner query. In this case t1.a will be a
73
  constant for each correlated subquery and summation is performed
73
  constant for each correlated subquery and summation is performed
74
  for each group of table t2.
74
  for each group of table t2.
75
  (Here it makes sense to remind that the query
75
  (Here it makes sense to remind that the query
76
    SELECT c FROM t GROUP BY a HAVING SUM(1) < a 
76
    SELECT c FROM t GROUP BY a HAVING SUM(1) < a
77
  is quite legal in our SQL).
77
  is quite legal in our SQL).
78
78
79
  So depending on what query we assign the set function to we
79
  So depending on what query we assign the set function to we
Lines 115-121 Link Here
115
115
116
  3. SELECT t1.a FROM t1 GROUP BY t1.a
116
  3. SELECT t1.a FROM t1 GROUP BY t1.a
117
       HAVING t1.a > ALL(SELECT t2.b FROM t2
117
       HAVING t1.a > ALL(SELECT t2.b FROM t2
118
                           WHERE t2.b > ALL (SELECT t3.c FROM t3 
118
                           WHERE t2.b > ALL (SELECT t3.c FROM t3
119
                                               WHERE SUM(t1.a+t2.b) < t3.c))
119
                                               WHERE SUM(t1.a+t2.b) < t3.c))
120
  In this query evaluation of SUM(t1.a+t2.b) is not legal neither in the second
120
  In this query evaluation of SUM(t1.a+t2.b) is not legal neither in the second
121
  nor in the third subqueries. So this query is invalid.
121
  nor in the third subqueries. So this query is invalid.
Lines 144-150 Link Here
144
    SELECT t2.c FROM t2 GROUP BY t2.c HAVING AVG(t2.c+s)
144
    SELECT t2.c FROM t2 GROUP BY t2.c HAVING AVG(t2.c+s)
145
  than returns some result set.
145
  than returns some result set.
146
146
147
  By the same reason the following query with a subquery 
147
  By the same reason the following query with a subquery
148
    SELECT t1.a FROM t1 GROUP BY t1.a
148
    SELECT t1.a FROM t1 GROUP BY t1.a
149
      HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
149
      HAVING t1.a IN (SELECT t2.c FROM t2 GROUP BY t2.c
150
                        HAVING AVG(SUM(t1.b)) > 20)
150
                        HAVING AVG(SUM(t1.b)) > 20)
Lines 210-221 Link Here
210
  Exploiting the fact that the members mentioned above are used in one
210
  Exploiting the fact that the members mentioned above are used in one
211
  recursive function we could have allocated them on the thread stack.
211
  recursive function we could have allocated them on the thread stack.
212
  Yet we don't do it now.
212
  Yet we don't do it now.
213
  
213
214
  We assume that the nesting level of subquries does not exceed 127.
214
  We assume that the nesting level of subquries does not exceed 127.
215
  TODO: to catch queries where the limit is exceeded to make the
215
  TODO: to catch queries where the limit is exceeded to make the
216
  code clean here.  
216
  code clean here.
217
    
217
218
*/ 
218
*/
219
219
220
class st_select_lex;
220
class st_select_lex;
221
221
Lines 230-237 Link Here
230
230
231
  Item **ref_by; /* pointer to a ref to the object used to register it */
231
  Item **ref_by; /* pointer to a ref to the object used to register it */
232
  Item_sum *next; /* next in the circular chain of registered objects  */
232
  Item_sum *next; /* next in the circular chain of registered objects  */
233
  Item_sum *in_sum_func;  /* embedding set function if any */ 
233
  Item_sum *in_sum_func;  /* embedding set function if any */
234
  st_select_lex * aggr_sel; /* select where the function is aggregated       */ 
234
  st_select_lex * aggr_sel; /* select where the function is aggregated       */
235
  int8 nest_level;        /* number of the nesting level of the set function */
235
  int8 nest_level;        /* number of the nesting level of the set function */
236
  int8 aggr_level;        /* nesting level of the aggregating subquery       */
236
  int8 aggr_level;        /* nesting level of the aggregating subquery       */
237
  int8 max_arg_level;     /* max level of unbound column references          */
237
  int8 max_arg_level;     /* max level of unbound column references          */
Lines 245-263 Link Here
245
  */
245
  */
246
  List<Item_field> outer_fields;
246
  List<Item_field> outer_fields;
247
247
248
protected:  
248
protected:
249
  uint arg_count;
249
  uint arg_count;
250
  Item **args, *tmp_args[2];
250
  Item **args, *tmp_args[2];
251
  /* 
251
  /*
252
    Copy of the arguments list to hold the original set of arguments.
252
    Copy of the arguments list to hold the original set of arguments.
253
    Used in EXPLAIN EXTENDED instead of the current argument list because 
253
    Used in EXPLAIN EXTENDED instead of the current argument list because
254
    the current argument list can be altered by usage of temporary tables.
254
    the current argument list can be altered by usage of temporary tables.
255
  */
255
  */
256
  Item **orig_args, *tmp_orig_args[2];
256
  Item **orig_args, *tmp_orig_args[2];
257
  table_map used_tables_cache;
257
  table_map used_tables_cache;
258
  bool forced_const;
258
  bool forced_const;
259
259
260
public:  
260
public:
261
261
262
  void mark_as_sum_func();
262
  void mark_as_sum_func();
263
  Item_sum() :quick_group(1), arg_count(0), forced_const(FALSE)
263
  Item_sum() :quick_group(1), arg_count(0), forced_const(FALSE)
Lines 343-358 Link Here
343
    { return new Item_field(field); }
343
    { return new Item_field(field); }
344
  table_map used_tables() const { return used_tables_cache; }
344
  table_map used_tables() const { return used_tables_cache; }
345
  void update_used_tables ();
345
  void update_used_tables ();
346
  void cleanup() 
346
  void cleanup()
347
  { 
347
  {
348
    Item::cleanup();
348
    Item::cleanup();
349
    forced_const= FALSE; 
349
    forced_const= FALSE;
350
  }
350
  }
351
  bool is_null() { return null_value; }
351
  bool is_null() { return null_value; }
352
  void make_const () 
352
  void make_const ()
353
  { 
353
  {
354
    used_tables_cache= 0; 
354
    used_tables_cache= 0;
355
    forced_const= TRUE; 
355
    forced_const= TRUE;
356
  }
356
  }
357
  virtual bool const_item() const { return forced_const; }
357
  virtual bool const_item() const { return forced_const; }
358
  void make_field(Send_field *field);
358
  void make_field(Send_field *field);
Lines 378-384 Link Here
378
  bool init_sum_func_check(THD *thd);
378
  bool init_sum_func_check(THD *thd);
379
  bool check_sum_func(THD *thd, Item **ref);
379
  bool check_sum_func(THD *thd, Item **ref);
380
  bool register_sum_func(THD *thd, Item **ref);
380
  bool register_sum_func(THD *thd, Item **ref);
381
  st_select_lex *depended_from() 
381
  st_select_lex *depended_from()
382
    { return (nest_level == aggr_level ? 0 : aggr_sel); }
382
    { return (nest_level == aggr_level ? 0 : aggr_sel); }
383
383
384
  Item *get_arg(int i) { return args[i]; }
384
  Item *get_arg(int i) { return args[i]; }
Lines 391-410 Link Here
391
{
391
{
392
protected:
392
protected:
393
  /*
393
  /*
394
   val_xxx() functions may be called several times during the execution of a 
394
   val_xxx() functions may be called several times during the execution of a
395
   query. Derived classes that require extensive calculation in val_xxx()
395
   query. Derived classes that require extensive calculation in val_xxx()
396
   maintain cache of aggregate value. This variable governs the validity of 
396
   maintain cache of aggregate value. This variable governs the validity of
397
   that cache.
397
   that cache.
398
  */
398
  */
399
  bool is_evaluated;
399
  bool is_evaluated;
400
public:
400
public:
401
  Item_sum_num() :Item_sum(),is_evaluated(FALSE) {}
401
  Item_sum_num() :Item_sum(),is_evaluated(FALSE) {}
402
  Item_sum_num(Item *item_par) 
402
  Item_sum_num(Item *item_par)
403
    :Item_sum(item_par), is_evaluated(FALSE) {}
403
    :Item_sum(item_par), is_evaluated(FALSE) {}
404
  Item_sum_num(Item *a, Item* b) :Item_sum(a,b),is_evaluated(FALSE) {}
404
  Item_sum_num(Item *a, Item* b) :Item_sum(a,b),is_evaluated(FALSE) {}
405
  Item_sum_num(List<Item> &list) 
405
  Item_sum_num(List<Item> &list)
406
    :Item_sum(list), is_evaluated(FALSE) {}
406
    :Item_sum(list), is_evaluated(FALSE) {}
407
  Item_sum_num(THD *thd, Item_sum_num *item) 
407
  Item_sum_num(THD *thd, Item_sum_num *item)
408
    :Item_sum(thd, item),is_evaluated(item->is_evaluated) {}
408
    :Item_sum(thd, item),is_evaluated(item->is_evaluated) {}
409
  bool fix_fields(THD *, Item **);
409
  bool fix_fields(THD *, Item **);
410
  longlong val_int()
410
  longlong val_int()
Lines 559-566 Link Here
559
  void clear();
559
  void clear();
560
  void no_rows_in_result() { count=0; }
560
  void no_rows_in_result() { count=0; }
561
  bool add();
561
  bool add();
562
  void make_const(longlong count_arg) 
562
  void make_const(longlong count_arg)
563
  { 
563
  {
564
    count=count_arg;
564
    count=count_arg;
565
    Item_sum::make_const();
565
    Item_sum::make_const();
566
  }
566
  }
Lines 594-600 Link Here
594
  */
594
  */
595
  longlong count;
595
  longlong count;
596
  /*
596
  /*
597
    Following is 0 normal object and pointer to original one for copy 
597
    Following is 0 normal object and pointer to original one for copy
598
    (to correctly free resources)
598
    (to correctly free resources)
599
  */
599
  */
600
  Item_sum_count_distinct *original;
600
  Item_sum_count_distinct *original;
Lines 617-623 Link Here
617
    :Item_sum_int(thd, item), table(item->table),
617
    :Item_sum_int(thd, item), table(item->table),
618
     field_lengths(item->field_lengths),
618
     field_lengths(item->field_lengths),
619
     tmp_table_param(item->tmp_table_param),
619
     tmp_table_param(item->tmp_table_param),
620
     force_copy_fields(0), tree(item->tree), count(item->count), 
620
     force_copy_fields(0), tree(item->tree), count(item->count),
621
     original(item), tree_key_length(item->tree_key_length),
621
     original(item), tree_key_length(item->tree_key_length),
622
     always_null(item->always_null)
622
     always_null(item->always_null)
623
  {}
623
  {}
Lines 740-754 Link Here
740
740
741
  =  sum (ai - avg(a))^2 / count(a) )
741
  =  sum (ai - avg(a))^2 / count(a) )
742
  =  sum (ai^2 - 2*ai*avg(a) + avg(a)^2) / count(a)
742
  =  sum (ai^2 - 2*ai*avg(a) + avg(a)^2) / count(a)
743
  =  (sum(ai^2) - sum(2*ai*avg(a)) + sum(avg(a)^2))/count(a) = 
743
  =  (sum(ai^2) - sum(2*ai*avg(a)) + sum(avg(a)^2))/count(a) =
744
  =  (sum(ai^2) - 2*avg(a)*sum(a) + count(a)*avg(a)^2)/count(a) = 
744
  =  (sum(ai^2) - 2*avg(a)*sum(a) + count(a)*avg(a)^2)/count(a) =
745
  =  (sum(ai^2) - 2*sum(a)*sum(a)/count(a) + count(a)*sum(a)^2/count(a)^2 )/count(a) = 
745
  =  (sum(ai^2) - 2*sum(a)*sum(a)/count(a) + count(a)*sum(a)^2/count(a)^2 )/count(a) =
746
  =  (sum(ai^2) - 2*sum(a)^2/count(a) + sum(a)^2/count(a) )/count(a) = 
746
  =  (sum(ai^2) - 2*sum(a)^2/count(a) + sum(a)^2/count(a) )/count(a) =
747
  =  (sum(ai^2) - sum(a)^2/count(a))/count(a)
747
  =  (sum(ai^2) - sum(a)^2/count(a))/count(a)
748
748
749
But, this falls prey to catastrophic cancellation.  Instead, use the recurrence formulas
749
But, this falls prey to catastrophic cancellation.  Instead, use the recurrence formulas
750
750
751
  M_{1} = x_{1}, ~ M_{k} = M_{k-1} + (x_{k} - M_{k-1}) / k newline 
751
  M_{1} = x_{1}, ~ M_{k} = M_{k-1} + (x_{k} - M_{k-1}) / k newline
752
  S_{1} = 0, ~ S_{k} = S_{k-1} + (x_{k} - M_{k-1}) times (x_{k} - M_{k}) newline
752
  S_{1} = 0, ~ S_{k} = S_{k-1} + (x_{k} - M_{k-1}) times (x_{k} - M_{k}) newline
753
  for 2 <= k <= n newline
753
  for 2 <= k <= n newline
754
  ital variance = S_{n} / (n-1)
754
  ital variance = S_{n} / (n-1)
Lines 1118-1124 Link Here
1118
  enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; }
1118
  enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; }
1119
  double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; }
1119
  double val_real() { DBUG_ASSERT(fixed == 1); return 0.0; }
1120
  void clear() {}
1120
  void clear() {}
1121
  bool add() { return 0; }  
1121
  bool add() { return 0; }
1122
  void update_field() {}
1122
  void update_field() {}
1123
};
1123
};
1124
1124
Lines 1135-1141 Link Here
1135
  longlong val_int() { DBUG_ASSERT(fixed == 1); return 0; }
1135
  longlong val_int() { DBUG_ASSERT(fixed == 1); return 0; }
1136
  double val_real() { DBUG_ASSERT(fixed == 1); return 0; }
1136
  double val_real() { DBUG_ASSERT(fixed == 1); return 0; }
1137
  void clear() {}
1137
  void clear() {}
1138
  bool add() { return 0; }  
1138
  bool add() { return 0; }
1139
  void update_field() {}
1139
  void update_field() {}
1140
};
1140
};
1141
1141
Lines 1175-1181 Link Here
1175
  void fix_length_and_dec() { maybe_null=1; max_length=0; }
1175
  void fix_length_and_dec() { maybe_null=1; max_length=0; }
1176
  enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; }
1176
  enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; }
1177
  void clear() {}
1177
  void clear() {}
1178
  bool add() { return 0; }  
1178
  bool add() { return 0; }
1179
  void update_field() {}
1179
  void update_field() {}
1180
};
1180
};
1181
1181
Lines 1194-1200 Link Here
1194
1194
1195
  /**
1195
  /**
1196
     If DISTINCT is used with this GROUP_CONCAT, this member is used to filter
1196
     If DISTINCT is used with this GROUP_CONCAT, this member is used to filter
1197
     out duplicates. 
1197
     out duplicates.
1198
     @see Item_func_group_concat::setup
1198
     @see Item_func_group_concat::setup
1199
     @see Item_func_group_concat::add
1199
     @see Item_func_group_concat::add
1200
     @see Item_func_group_concat::clear
1200
     @see Item_func_group_concat::clear
(-)mysql-5.0.76-old/sql/Makefile.am (-52 / +42 lines)
Lines 22-46 Link Here
22
			@bdb_includes@ @innodb_includes@ @ndbcluster_includes@ \
22
			@bdb_includes@ @innodb_includes@ @ndbcluster_includes@ \
23
			-I$(top_builddir)/include -I$(top_srcdir)/include \
23
			-I$(top_builddir)/include -I$(top_srcdir)/include \
24
			-I$(top_srcdir)/regex -I$(srcdir) \
24
			-I$(top_srcdir)/regex -I$(srcdir) \
25
                        $(openssl_includes)
25
			$(openssl_includes)
26
WRAPLIBS=		@WRAPLIBS@
26
WRAPLIBS=		@WRAPLIBS@
27
SUBDIRS =		share
27
SUBDIRS =		share
28
libexec_PROGRAMS =	mysqld
28
libexec_PROGRAMS =	mysqld
29
EXTRA_PROGRAMS =	gen_lex_hash
29
EXTRA_PROGRAMS =	gen_lex_hash
30
bin_PROGRAMS =		mysql_tzinfo_to_sql
30
bin_PROGRAMS =		mysql_tzinfo_to_sql
31
gen_lex_hash_LDFLAGS =  @NOINST_LDFLAGS@
31
gen_lex_hash_LDFLAGS =  @NOINST_LDFLAGS@
32
LDADD =			$(top_builddir)/myisam/libmyisam.a \
32
LDADD =			$(top_builddir)/myisam/libmyisam.la \
33
			$(top_builddir)/myisammrg/libmyisammrg.a \
33
			$(top_builddir)/myisammrg/libmyisammrg.la \
34
			$(top_builddir)/heap/libheap.a \
34
			$(top_builddir)/heap/libheap.la \
35
			$(top_builddir)/vio/libvio.a \
35
			$(top_builddir)/vio/libvio.la \
36
			$(top_builddir)/mysys/libmysys.a \
36
			$(top_builddir)/mysys/libmysys.la \
37
			$(top_builddir)/dbug/libdbug.a \
37
			$(top_builddir)/regex/libregex.la \
38
			$(top_builddir)/regex/libregex.a \
38
			@ZLIB_LIBS@ @NDB_SCI_LIBS@
39
			$(top_builddir)/strings/libmystrings.a @ZLIB_LIBS@ @NDB_SCI_LIBS@
40
39
41
mysqld_LDADD =		@MYSQLD_EXTRA_LDFLAGS@ \
40
mysqld_LDADD =	@MYSQLD_EXTRA_LDFLAGS@ \
42
			@bdb_libs@ @innodb_libs@ @pstack_libs@ \
41
			@bdb_libs@ @innodb_libs@ @pstack_libs@ \
43
                        @innodb_system_libs@ \
42
			@innodb_system_libs@ \
44
			@ndbcluster_libs@ @ndbcluster_system_libs@ \
43
			@ndbcluster_libs@ @ndbcluster_system_libs@ \
45
			$(LDADD)  $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
44
			$(LDADD)  $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
46
			$(yassl_libs) $(openssl_libs) @MYSQLD_EXTRA_LIBS@
45
			$(yassl_libs) $(openssl_libs) @MYSQLD_EXTRA_LIBS@
Lines 52-94 Link Here
52
			procedure.h sql_class.h sql_lex.h sql_list.h \
51
			procedure.h sql_class.h sql_lex.h sql_list.h \
53
			sql_manager.h sql_map.h sql_string.h unireg.h \
52
			sql_manager.h sql_map.h sql_string.h unireg.h \
54
			sql_error.h field.h handler.h mysqld_suffix.h \
53
			sql_error.h field.h handler.h mysqld_suffix.h \
55
			ha_myisammrg.h\
54
			ha_heap.h ha_berkeley.h ha_innodb.h \
56
			ha_heap.h ha_myisam.h ha_berkeley.h ha_innodb.h \
55
			ha_ndbcluster.h ha_ndbcluster_cond.h opt_range.h \
57
			ha_ndbcluster.h ha_ndbcluster_cond.h \
56
			protocol.h sql_select.h structs.h table.h sql_udf.h \
58
			opt_range.h protocol.h \
57
			hash_filo.h lex.h lex_symbol.h sql_acl.h sql_crypt.h  \
59
			sql_select.h structs.h table.h sql_udf.h hash_filo.h\
58
			log_event.h sql_repl.h slave.h stacktrace.h sql_sort.h \
60
			lex.h lex_symbol.h sql_acl.h sql_crypt.h  \
59
			sql_cache.h set_var.h spatial.h gstream.h \
61
			log_event.h sql_repl.h slave.h \
60
			client_settings.h tzfile.h tztime.h my_decimal.h\
62
			stacktrace.h sql_sort.h sql_cache.h set_var.h \
63
			spatial.h gstream.h client_settings.h tzfile.h \
64
                        tztime.h my_decimal.h\
65
			sp_head.h sp_pcontext.h sp_rcontext.h sp.h sp_cache.h \
61
			sp_head.h sp_pcontext.h sp_rcontext.h sp.h sp_cache.h \
66
			parse_file.h sql_view.h	sql_trigger.h \
62
			parse_file.h sql_view.h	sql_trigger.h \
67
			sql_array.h sql_cursor.h \
63
			sql_array.h sql_cursor.h examples/ha_example.h \
68
			examples/ha_example.h ha_archive.h \
64
			ha_archive.h examples/ha_tina.h ha_blackhole.h  \
69
			examples/ha_tina.h ha_blackhole.h  \
70
			ha_federated.h
65
			ha_federated.h
71
mysqld_SOURCES =	sql_lex.cc sql_handler.cc \
66
mysqld_SOURCES =	sql_lex.cc sql_handler.cc item.cc item_sum.cc \
72
			item.cc item_sum.cc item_buff.cc item_func.cc \
67
			item_buff.cc item_func.cc item_cmpfunc.cc \
73
			item_cmpfunc.cc item_strfunc.cc item_timefunc.cc \
68
			item_strfunc.cc item_timefunc.cc thr_malloc.cc \
74
			thr_malloc.cc item_create.cc item_subselect.cc \
69
			item_create.cc item_subselect.cc item_row.cc \
75
			item_row.cc item_geofunc.cc \
70
			item_geofunc.cc field.cc strfunc.cc key.cc \
76
			field.cc strfunc.cc key.cc sql_class.cc sql_list.cc \
71
			sql_class.cc sql_list.cc net_serv.cc protocol.cc \
77
			net_serv.cc protocol.cc sql_state.c \
72
			sql_state.c lock.cc my_lock.c sql_string.cc \
78
			lock.cc my_lock.c \
73
			sql_manager.cc sql_map.cc mysqld.cc password.c \
79
			sql_string.cc sql_manager.cc sql_map.cc \
74
			hash_filo.cc hostname.cc set_var.cc sql_parse.cc \
80
			mysqld.cc password.c hash_filo.cc hostname.cc \
75
			sql_yacc.yy sql_base.cc table.cc sql_select.cc \
81
			set_var.cc sql_parse.cc sql_yacc.yy \
76
			sql_insert.cc sql_prepare.cc sql_error.cc \
82
			sql_base.cc table.cc sql_select.cc sql_insert.cc \
77
			sql_locale.cc sql_update.cc sql_delete.cc uniques.cc \
83
                        sql_prepare.cc sql_error.cc sql_locale.cc \
78
			sql_do.cc procedure.cc item_uniq.cc sql_test.cc \
84
			sql_update.cc sql_delete.cc uniques.cc sql_do.cc \
85
			procedure.cc item_uniq.cc sql_test.cc \
86
			log.cc log_event.cc init.cc derror.cc sql_acl.cc \
79
			log.cc log_event.cc init.cc derror.cc sql_acl.cc \
87
			unireg.cc des_key_file.cc \
80
			unireg.cc des_key_file.cc discover.cc time.cc \
88
			discover.cc time.cc opt_range.cc opt_sum.cc \
81
			opt_range.cc opt_sum.cc records.cc filesort.cc \
89
		   	records.cc filesort.cc handler.cc \
82
			handler.cc ha_heap.cc ha_berkeley.cc ha_innodb.cc \
90
		        ha_heap.cc ha_myisam.cc ha_myisammrg.cc \
91
	                ha_berkeley.cc ha_innodb.cc \
92
			ha_ndbcluster.cc ha_ndbcluster_cond.cc \
83
			ha_ndbcluster.cc ha_ndbcluster_cond.cc \
93
			sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
84
			sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
94
			sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
85
			sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
Lines 96-109 Link Here
96
			slave.cc sql_repl.cc sql_union.cc sql_derived.cc \
87
			slave.cc sql_repl.cc sql_union.cc sql_derived.cc \
97
			client.c sql_client.cc mini_client_errors.c pack.c\
88
			client.c sql_client.cc mini_client_errors.c pack.c\
98
			stacktrace.c repl_failsafe.h repl_failsafe.cc \
89
			stacktrace.c repl_failsafe.h repl_failsafe.cc \
99
			sql_olap.cc sql_view.cc \
90
			sql_olap.cc sql_view.cc gstream.cc spatial.cc \
100
			gstream.cc spatial.cc sql_help.cc sql_cursor.cc \
91
			sql_help.cc sql_cursor.cc tztime.cc my_time.c \
101
			tztime.cc my_time.c my_user.c my_decimal.cc\
92
			my_user.c my_decimal.cc sp_head.cc sp_pcontext.cc \
102
			sp_head.cc sp_pcontext.cc  sp_rcontext.cc sp.cc \
93
			sp_rcontext.cc sp.cc sp_cache.cc parse_file.cc \
103
			sp_cache.cc parse_file.cc sql_trigger.cc \
94
			sql_trigger.cc examples/ha_example.cc ha_archive.cc \
104
			examples/ha_example.cc ha_archive.cc \
95
			examples/ha_tina.cc ha_blackhole.cc ha_federated.cc \
105
			examples/ha_tina.cc ha_blackhole.cc \
96
			ha_myisam.cc ha_myisammrg.cc
106
			ha_federated.cc
107
97
108
gen_lex_hash_SOURCES =	gen_lex_hash.cc
98
gen_lex_hash_SOURCES =	gen_lex_hash.cc
109
gen_lex_hash_LDADD =	$(LDADD) $(CXXLDFLAGS)
99
gen_lex_hash_LDADD =	$(LDADD) $(CXXLDFLAGS)
(-)mysql-5.0.76-old/sql/set_var.h (-14 / +14 lines)
Lines 43-58 Link Here
43
  struct my_option *option_limits;	/* Updated by by set_var_init() */
43
  struct my_option *option_limits;	/* Updated by by set_var_init() */
44
  uint name_length;			/* Updated by by set_var_init() */
44
  uint name_length;			/* Updated by by set_var_init() */
45
  const char *name;
45
  const char *name;
46
  
46
47
  sys_after_update_func after_update;
47
  sys_after_update_func after_update;
48
  bool no_support_one_shot;
48
  bool no_support_one_shot;
49
  /*
49
  /*
50
    true if the value is in character_set_filesystem, 
50
    true if the value is in character_set_filesystem,
51
    false otherwise.
51
    false otherwise.
52
    Note that we can't use a pointer to the charset as the system var is 
52
    Note that we can't use a pointer to the charset as the system var is
53
    instantiated in global scope and the charset pointers are initialized
53
    instantiated in global scope and the charset pointers are initialized
54
    later.
54
    later.
55
  */  
55
  */
56
  bool is_os_charset;
56
  bool is_os_charset;
57
  sys_var(const char *name_arg, sys_after_update_func func= NULL)
57
  sys_var(const char *name_arg, sys_after_update_func func= NULL)
58
    :name(name_arg), after_update(func)
58
    :name(name_arg), after_update(func)
Lines 261-268 Link Here
261
public:
261
public:
262
  sys_var_const_os_str(const char *name_arg, const char *value_arg)
262
  sys_var_const_os_str(const char *name_arg, const char *value_arg)
263
    :sys_var_const_str(name_arg, value_arg)
263
    :sys_var_const_str(name_arg, value_arg)
264
  { 
264
  {
265
    is_os_charset= TRUE; 
265
    is_os_charset= TRUE;
266
  }
266
  }
267
};
267
};
268
268
Lines 302-315 Link Here
302
  sys_var_const_os_str_ptr(const char *name_arg, char **value_arg)
302
  sys_var_const_os_str_ptr(const char *name_arg, char **value_arg)
303
    :sys_var_const_str_ptr(name_arg, value_arg)
303
    :sys_var_const_str_ptr(name_arg, value_arg)
304
  {
304
  {
305
    is_os_charset= TRUE; 
305
    is_os_charset= TRUE;
306
  }
306
  }
307
};
307
};
308
308
309
309
310
class sys_var_enum :public sys_var
310
class sys_var_enum :public sys_var
311
{
311
{
312
  uint	*value; 
312
  uint	*value;
313
  TYPELIB *enum_names;
313
  TYPELIB *enum_names;
314
public:
314
public:
315
  sys_var_enum(const char *name_arg, uint *value_arg,
315
  sys_var_enum(const char *name_arg, uint *value_arg,
Lines 515-521 Link Here
515
public:
515
public:
516
  ulonglong bit_flag;
516
  ulonglong bit_flag;
517
  bool reverse;
517
  bool reverse;
518
  sys_var_thd_bit(const char *name_arg, 
518
  sys_var_thd_bit(const char *name_arg,
519
                  sys_check_func c_func, sys_update_func u_func,
519
                  sys_check_func c_func, sys_update_func u_func,
520
                  ulonglong bit, bool reverse_arg=0)
520
                  ulonglong bit, bool reverse_arg=0)
521
    :sys_var_thd(name_arg), check_func(c_func), update_func(u_func),
521
    :sys_var_thd(name_arg), check_func(c_func), update_func(u_func),
Lines 674-680 Link Here
674
{
674
{
675
public:
675
public:
676
  sys_var_character_set_results(const char *name_arg) :
676
  sys_var_character_set_results(const char *name_arg) :
677
    sys_var_character_set(name_arg) 
677
    sys_var_character_set(name_arg)
678
    { nullable= 1; }
678
    { nullable= 1; }
679
  void set_default(THD *thd, enum_var_type type);
679
  void set_default(THD *thd, enum_var_type type);
680
  CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
680
  CHARSET_INFO **ci_ptr(THD *thd, enum_var_type type);
Lines 807-813 Link Here
807
  sys_var_readonly(const char *name_arg, enum_var_type type,
807
  sys_var_readonly(const char *name_arg, enum_var_type type,
808
		   SHOW_TYPE show_type_arg,
808
		   SHOW_TYPE show_type_arg,
809
		   sys_value_ptr_func value_ptr_func_arg)
809
		   sys_value_ptr_func value_ptr_func_arg)
810
    :sys_var(name_arg), var_type(type), 
810
    :sys_var(name_arg), var_type(type),
811
       show_type_value(show_type_arg), value_ptr_func(value_ptr_func_arg)
811
       show_type_value(show_type_arg), value_ptr_func(value_ptr_func_arg)
812
  {}
812
  {}
813
  bool update(THD *thd, set_var *var) { return 1; }
813
  bool update(THD *thd, set_var *var) { return 1; }
Lines 840-846 Link Here
840
{
840
{
841
public:
841
public:
842
  sys_var_thd_time_zone(const char *name_arg):
842
  sys_var_thd_time_zone(const char *name_arg):
843
    sys_var_thd(name_arg) 
843
    sys_var_thd(name_arg)
844
  {
844
  {
845
    no_support_one_shot= 0;
845
    no_support_one_shot= 0;
846
  }
846
  }
Lines 889-895 Link Here
889
{
889
{
890
public:
890
public:
891
  sys_var_thd_lc_time_names(const char *name_arg):
891
  sys_var_thd_lc_time_names(const char *name_arg):
892
    sys_var_thd(name_arg) 
892
    sys_var_thd(name_arg)
893
  {
893
  {
894
#if MYSQL_VERSION_ID < 50000
894
#if MYSQL_VERSION_ID < 50000
895
    no_support_one_shot= 0;
895
    no_support_one_shot= 0;
Lines 954-960 Link Here
954
    if (value_arg && value_arg->type() == Item::FIELD_ITEM)
954
    if (value_arg && value_arg->type() == Item::FIELD_ITEM)
955
    {
955
    {
956
      Item_field *item= (Item_field*) value_arg;
956
      Item_field *item= (Item_field*) value_arg;
957
      if (!(value=new Item_string(item->field_name, 
957
      if (!(value=new Item_string(item->field_name,
958
                  (uint) strlen(item->field_name),
958
                  (uint) strlen(item->field_name),
959
				  item->collation.collation)))
959
				  item->collation.collation)))
960
	value=value_arg;			/* Give error message later */
960
	value=value_arg;			/* Give error message later */
(-)mysql-5.0.76-old/sql/sql_list.h (-6 / +5 lines)
Lines 13-19 Link Here
13
   along with this program; if not, write to the Free Software
13
   along with this program; if not, write to the Free Software
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
15
16
17
#ifdef USE_PRAGMA_INTERFACE
16
#ifdef USE_PRAGMA_INTERFACE
18
#pragma interface			/* gcc class implementation */
17
#pragma interface			/* gcc class implementation */
19
#endif
18
#endif
Lines 252-258 Link Here
252
      check_list()
251
      check_list()
253
        name  Name to print to trace file
252
        name  Name to print to trace file
254
253
255
    RETURN 
254
    RETURN
256
      1  The list is Ok.
255
      1  The list is Ok.
257
      0  List invariants are not met.
256
      0  List invariants are not met.
258
  */
257
  */
Lines 267-273 Link Here
267
    {
266
    {
268
      if (!node->info)
267
      if (!node->info)
269
      {
268
      {
270
        DBUG_PRINT("list_invariants",("%s: error: NULL element in the list", 
269
        DBUG_PRINT("list_invariants",("%s: error: NULL element in the list",
271
                                      name));
270
                                      name));
272
        return FALSE;
271
        return FALSE;
273
      }
272
      }
Lines 313-323 Link Here
313
    ls.elements= elm;
312
    ls.elements= elm;
314
  }
313
  }
315
public:
314
public:
316
  base_list_iterator() 
315
  base_list_iterator()
317
    :list(0), el(0), prev(0), current(0)
316
    :list(0), el(0), prev(0), current(0)
318
  {}
317
  {}
319
318
320
  base_list_iterator(base_list &list_par) 
319
  base_list_iterator(base_list &list_par)
321
  { init(list_par); }
320
  { init(list_par); }
322
321
323
  inline void init(base_list &list_par)
322
  inline void init(base_list &list_par)
Lines 556-562 Link Here
556
public:
555
public:
557
  I_List() :base_ilist()	{}
556
  I_List() :base_ilist()	{}
558
  inline void empty()		{ base_ilist::empty(); }
557
  inline void empty()		{ base_ilist::empty(); }
559
  inline bool is_empty()        { return base_ilist::is_empty(); } 
558
  inline bool is_empty()        { return base_ilist::is_empty(); }
560
  inline void append(T* a)	{ base_ilist::append(a); }
559
  inline void append(T* a)	{ base_ilist::append(a); }
561
  inline void push_back(T* a)	{ base_ilist::push_back(a); }
560
  inline void push_back(T* a)	{ base_ilist::push_back(a); }
562
  inline T* get()		{ return (T*) base_ilist::get(); }
561
  inline T* get()		{ return (T*) base_ilist::get(); }
(-)mysql-5.0.76-old/strings/Makefile.am (-11 / +11 lines)
Lines 16-22 Link Here
16
# This file is public domain and comes with NO WARRANTY of any kind
16
# This file is public domain and comes with NO WARRANTY of any kind
17
17
18
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
18
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include
19
pkglib_LIBRARIES =	libmystrings.a
19
noinst_LTLIBRARIES =	libmystrings.la
20
20
21
# Exact one of ASSEMBLER_X
21
# Exact one of ASSEMBLER_X
22
if ASSEMBLER_x86
22
if ASSEMBLER_x86
Lines 37-43 Link Here
37
endif
37
endif
38
endif
38
endif
39
39
40
libmystrings_a_SOURCES = $(ASRCS) $(CSRCS)
40
libmystrings_la_SOURCES = $(ASRCS) $(CSRCS)
41
noinst_PROGRAMS = conf_to_src
41
noinst_PROGRAMS = conf_to_src
42
# Default charset definitions
42
# Default charset definitions
43
EXTRA_DIST =		ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
43
EXTRA_DIST =		ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-win1250ch.c \
Lines 54-78 Link Here
54
			strnmov-sparc.s strstr-sparc.s strxmov-sparc.s \
54
			strnmov-sparc.s strstr-sparc.s strxmov-sparc.s \
55
			t_ctype.h CMakeLists.txt
55
			t_ctype.h CMakeLists.txt
56
56
57
libmystrings_a_LIBADD=
57
libmystrings_la_LIBADD=
58
conf_to_src_SOURCES = conf_to_src.c xml.c ctype.c bcmp.c
58
conf_to_src_SOURCES = conf_to_src.c
59
conf_to_src_LDADD=
59
conf_to_src_LDADD = libmystrings.la
60
#force static linking of conf_to_src - essential when linking against
60
#force static linking of conf_to_src - essential when linking against
61
#custom installation of libc
61
#custom installation of libc
62
conf_to_src_LDFLAGS= @NOINST_LDFLAGS@
62
#conf_to_src_LDFLAGS= @NOINST_LDFLAGS@
63
63
64
# This is because the dependency tracking misses @FOO@ vars in sources.
64
# This is because the dependency tracking misses @FOO@ vars in sources.
65
#strtoull.o:		@CHARSET_OBJS@
65
#strtoull.o:		@CHARSET_OBJS@
66
66
67
67
68
FLAGS=$(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) @NOINST_LDFLAGS@
68
FLAGS=$(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
69
69
70
str_test: str_test.c $(pkglib_LIBRARIES)
70
str_test: str_test.c $(pkglib_LTLIBRARIES)
71
	$(LINK) $(FLAGS) -DMAIN $(INCLUDES) $(srcdir)/str_test.c $(LDADD) $(pkglib_LIBRARIES)
71
	$(LINK) $(FLAGS) -DMAIN $(INCLUDES) $(srcdir)/str_test.c $(LDADD) $(pkglib_LTLIBRARIES)
72
72
73
test_decimal$(EXEEXT): decimal.c $(pkglib_LIBRARIES)
73
test_decimal$(EXEEXT): decimal.c $(pkglib_LTLIBRARIES)
74
	$(CP) $(srcdir)/decimal.c ./test_decimal.c
74
	$(CP) $(srcdir)/decimal.c ./test_decimal.c
75
	$(LINK) $(FLAGS) -DMAIN  ./test_decimal.c $(LDADD) $(pkglib_LIBRARIES)
75
	$(LINK) $(FLAGS) -DMAIN  ./test_decimal.c $(LDADD) $(pkglib_LTLIBRARIES)
76
	$(RM) -f ./test_decimal.c
76
	$(RM) -f ./test_decimal.c
77
77
78
# Don't update the files from bitkeeper
78
# Don't update the files from bitkeeper
(-)mysql-5.0.76-old/tests/Makefile.am (-3 / +3 lines)
Lines 42-52 Link Here
42
42
43
insert_test_SOURCES=       insert_test.c
43
insert_test_SOURCES=       insert_test.c
44
select_test_SOURCES=       select_test.c
44
select_test_SOURCES=       select_test.c
45
insert_test_DEPENDENCIES=	$(LIBRARIES) $(pkglib_LTLIBRARIES)
45
insert_test_DEPENDENCIES=	$(LTLIBRARIES) $(pkglib_LTLIBRARIES)
46
select_test_DEPENDENCIES=	$(LIBRARIES) $(pkglib_LTLIBRARIES)
46
select_test_DEPENDENCIES=	$(LTLIBRARIES) $(pkglib_LTLIBRARIES)
47
47
48
bug25714_SOURCES=          bug25714.c
48
bug25714_SOURCES=          bug25714.c
49
bug25714_DEPENDENCIES=     $(LIBRARIES) $(pkglib_LTLIBRARIES)
49
bug25714_DEPENDENCIES=     $(LTLIBRARIES) $(pkglib_LTLIBRARIES)
50
50
51
# Fix for mit-threads
51
# Fix for mit-threads
52
DEFS =			-DUNDEF_THREADS_HACK
52
DEFS =			-DUNDEF_THREADS_HACK
(-)mysql-5.0.76-old/tools/Makefile.am (-1 / +1 lines)
Lines 23-29 Link Here
23
23
24
bin_PROGRAMS=		mysqltestmanager
24
bin_PROGRAMS=		mysqltestmanager
25
mysqltestmanager_SOURCES=	mysqlmanager.c
25
mysqltestmanager_SOURCES=	mysqlmanager.c
26
mysqltestmanager_DEPENDENCIES=	$(LIBRARIES) $(pkglib_LTLIBRARIES)
26
mysqltestmanager_DEPENDENCIES=	$(LTLIBRARIES) $(pkglib_LTLIBRARIES)
27
DEF=			-DUNDEF_THREADS_HACK
27
DEF=			-DUNDEF_THREADS_HACK
28
28
29
# Don't update the files from bitkeeper
29
# Don't update the files from bitkeeper
(-)mysql-5.0.76-old/vio/Makefile.am (-2 / +2 lines)
Lines 16-26 Link Here
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include \
16
INCLUDES =		-I$(top_builddir)/include -I$(top_srcdir)/include \
17
			$(openssl_includes)
17
			$(openssl_includes)
18
LDADD =			@CLIENT_EXTRA_LDFLAGS@ $(openssl_libs) $(yassl_libs)
18
LDADD =			@CLIENT_EXTRA_LDFLAGS@ $(openssl_libs) $(yassl_libs)
19
pkglib_LIBRARIES =	libvio.a
19
pkglib_LTLIBRARIES =	libvio.la
20
20
21
noinst_HEADERS =	vio_priv.h
21
noinst_HEADERS =	vio_priv.h
22
22
23
libvio_a_SOURCES =	vio.c viosocket.c viossl.c viosslfactories.c
23
libvio_la_SOURCES =	vio.c viosocket.c viossl.c viosslfactories.c
24
24
25
EXTRA_DIST=	CMakeLists.txt
25
EXTRA_DIST=	CMakeLists.txt
26
26

Return to bug 238487