Commit 1e1ea6ce authored by unknown's avatar unknown

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into  zippy.(none):/home/cmiller/work/mysql/mysql-5.0.19-tbr


mysql-test/r/sp.result:
  Auto merged
mysql-test/t/sp.test:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
parents f8862a05 40f38a2d
...@@ -185,6 +185,7 @@ void tee_fprintf(FILE *file, const char *fmt, ...); ...@@ -185,6 +185,7 @@ void tee_fprintf(FILE *file, const char *fmt, ...);
void tee_fputs(const char *s, FILE *file); void tee_fputs(const char *s, FILE *file);
void tee_puts(const char *s, FILE *file); void tee_puts(const char *s, FILE *file);
void tee_putc(int c, FILE *file); void tee_putc(int c, FILE *file);
static void tee_print_sized_data(const char *data, unsigned int length, unsigned int width);
/* The names of functions that actually do the manipulation. */ /* The names of functions that actually do the manipulation. */
static int get_options(int argc,char **argv); static int get_options(int argc,char **argv);
static int com_quit(String *str,char*), static int com_quit(String *str,char*),
...@@ -2308,20 +2309,29 @@ print_table_data(MYSQL_RES *result) ...@@ -2308,20 +2309,29 @@ print_table_data(MYSQL_RES *result)
for (uint off= 0; off < mysql_num_fields(result); off++) for (uint off= 0; off < mysql_num_fields(result); off++)
{ {
const char *str= cur[off] ? cur[off] : "NULL"; const char *str= cur[off] ? cur[off] : "NULL";
uint currlength;
uint maxlength;
uint numcells;
field= mysql_fetch_field(result); field= mysql_fetch_field(result);
uint maxlength= field->max_length; maxlength= field->max_length;
currlength= (uint) lengths[off];
numcells= charset_info->cset->numcells(charset_info,
str, str + currlength);
if (maxlength > MAX_COLUMN_LENGTH) if (maxlength > MAX_COLUMN_LENGTH)
{ {
tee_fputs(str, PAGER); tee_print_sized_data(str, currlength, maxlength);
tee_fputs(" |", PAGER); tee_fputs(" |", PAGER);
} }
else else
{ {
uint currlength= (uint) lengths[off]; if (num_flag[off] != 0)
uint numcells= charset_info->cset->numcells(charset_info, tee_fprintf(PAGER, " %-*s|", maxlength + currlength - numcells, str);
str, str + currlength); else
tee_fprintf(PAGER, num_flag[off] ? "%*s |" : " %-*s|", {
maxlength + currlength - numcells, str); tee_print_sized_data(str, currlength, maxlength);
tee_fputs(" |", PAGER);
}
} }
} }
(void) tee_fputs("\n", PAGER); (void) tee_fputs("\n", PAGER);
...@@ -2331,6 +2341,35 @@ print_table_data(MYSQL_RES *result) ...@@ -2331,6 +2341,35 @@ print_table_data(MYSQL_RES *result)
} }
static void
tee_print_sized_data(const char *data, unsigned int length, unsigned int width)
{
/*
It is not a number, so print each character justified to the left.
For '\0's print ASCII spaces instead, as '\0' is eaten by (at
least my) console driver, and that messes up the pretty table
grid. (The \0 is also the reason we can't use fprintf() .)
*/
unsigned int i;
const char *p;
tee_putc(' ', PAGER);
for (i= 0, p= data; i < length; i+= 1, p+= 1)
{
if (*p == '\0')
tee_putc((int)' ', PAGER);
else
tee_putc((int)*p, PAGER);
}
i+= 1;
for ( ; i < width; i+= 1)
tee_putc((int)' ', PAGER);
}
static void static void
print_table_data_html(MYSQL_RES *result) print_table_data_html(MYSQL_RES *result)
{ {
......
...@@ -69,3 +69,10 @@ c_cp932 ...@@ -69,3 +69,10 @@ c_cp932
+----------------------+------------+--------+
| concat('>',col1,'<') | col2 | col3 |
+----------------------+------------+--------+
| >a < | b | 123421 |
| >a < | 0123456789 | 4 |
| >abcd< | | 4 |
+----------------------+------------+--------+
...@@ -56,3 +56,8 @@ drop table t1; ...@@ -56,3 +56,8 @@ drop table t1;
--exec $MYSQL --default-character-set=utf8 test -e "charset cp932; set character_set_client= cp932; select '\'" --exec $MYSQL --default-character-set=utf8 test -e "charset cp932; set character_set_client= cp932; select '\'"
--exec $MYSQL --default-character-set=utf8 test -e "/*charset cp932 */; set character_set_client= cp932; select '\'" --exec $MYSQL --default-character-set=utf8 test -e "/*charset cp932 */; set character_set_client= cp932; select '\'"
--exec $MYSQL --default-character-set=utf8 test -e "/*!\C cp932 */; set character_set_client= cp932; select '\'" --exec $MYSQL --default-character-set=utf8 test -e "/*!\C cp932 */; set character_set_client= cp932; select '\'"
#
# Bug#16859 -- NULLs in columns must not truncate data as if a C-language "string".
#
--exec $MYSQL -t test -e "create table t1 (col1 binary(4), col2 varchar(10), col3 int); insert into t1 values ('a', 'b', 123421),('a ', '0123456789', 4), ('abcd', '', 4); select concat('>',col1,'<'), col2, col3 from t1; drop table t1;" 2>&1
...@@ -369,8 +369,8 @@ BuildMySQL "--disable-shared \ ...@@ -369,8 +369,8 @@ BuildMySQL "--disable-shared \
--with-client-ldflags='-all-static' \ --with-client-ldflags='-all-static' \
$USE_OTHER_LIBC_DIR \ $USE_OTHER_LIBC_DIR \
%else %else
%endif
--with-zlib-dir=bundled \ --with-zlib-dir=bundled \
%endif
--with-comment=\"MySQL Community Edition - Standard (GPL)\" \ --with-comment=\"MySQL Community Edition - Standard (GPL)\" \
--with-server-suffix='%{server_suffix}' \ --with-server-suffix='%{server_suffix}' \
--with-archive-storage-engine \ --with-archive-storage-engine \
...@@ -690,8 +690,11 @@ fi ...@@ -690,8 +690,11 @@ fi
%{_libdir}/mysql/libndbclient.a %{_libdir}/mysql/libndbclient.a
%{_libdir}/mysql/libndbclient.la %{_libdir}/mysql/libndbclient.la
%{_libdir}/mysql/libvio.a %{_libdir}/mysql/libvio.a
%if %{STATIC_BUILD}
%else
%{_libdir}/mysql/libz.a %{_libdir}/mysql/libz.a
%{_libdir}/mysql/libz.la %{_libdir}/mysql/libz.la
%endif
%files shared %files shared
%defattr(-, root, root, 0755) %defattr(-, root, root, 0755)
...@@ -723,6 +726,11 @@ fi ...@@ -723,6 +726,11 @@ fi
* Fri Mar 03 2006 Kent Boortz <kent@mysql.com> * Fri Mar 03 2006 Kent Boortz <kent@mysql.com>
- Don't output an embedded package as it is empty - Don't output an embedded package as it is empty
- Can't use bundled zlib when doing static build. Might be a
automake/libtool problem, having two .la files, "libmysqlclient.la"
and "libz.la", on the same command line to link "thread_test"
expands to too many "-lc", "-lpthread" and other libs giving hard
to nail down duplicate symbol defintion problems.
* Fri Jan 10 2006 Joerg Bruehe <joerg@mysql.com> * Fri Jan 10 2006 Joerg Bruehe <joerg@mysql.com>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment