Commit cb81389a authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1

into  sanja.is.com.ua:/home/bell/mysql/bk/work-5.0
parents 34b2ed5f b4980d43
...@@ -805,6 +805,9 @@ AC_SUBST(WRAPLIBS) ...@@ -805,6 +805,9 @@ AC_SUBST(WRAPLIBS)
if test "$TARGET_LINUX" = "true"; then if test "$TARGET_LINUX" = "true"; then
AC_MSG_CHECKING([for atomic operations]) AC_MSG_CHECKING([for atomic operations])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
atom_ops= atom_ops=
AC_TRY_RUN([ AC_TRY_RUN([
#include <asm/atomic.h> #include <asm/atomic.h>
...@@ -840,6 +843,8 @@ int main() ...@@ -840,6 +843,8 @@ int main()
if test -z "$atom_ops"; then atom_ops="no"; fi if test -z "$atom_ops"; then atom_ops="no"; fi
AC_MSG_RESULT($atom_ops) AC_MSG_RESULT($atom_ops)
AC_LANG_RESTORE
AC_ARG_WITH(pstack, AC_ARG_WITH(pstack,
[ --with-pstack Use the pstack backtrace library], [ --with-pstack Use the pstack backtrace library],
[ USE_PSTACK=$withval ], [ USE_PSTACK=$withval ],
......
...@@ -35,3 +35,14 @@ select -1 >> 0, -1 << 0; ...@@ -35,3 +35,14 @@ select -1 >> 0, -1 << 0;
select -1 >> 1, -1 << 1; select -1 >> 1, -1 << 1;
-1 >> 1 -1 << 1 -1 >> 1 -1 << 1
9223372036854775807 18446744073709551614 9223372036854775807 18446744073709551614
drop table if exists t1,t2;
create table t1(a int);
create table t2(a int, b int);
insert into t1 values (1), (2), (3);
insert into t2 values (1, 7), (3, 7);
select t1.a, t2.a, t2.b, bit_count(t2.b) from t1 left join t2 on t1.a=t2.a;
a a b bit_count(t2.b)
1 1 7 3
2 NULL NULL NULL
3 3 7 3
drop table t1, t2;
...@@ -17,4 +17,18 @@ select 0 | -1, 0 ^ -1, 0 & -1; ...@@ -17,4 +17,18 @@ select 0 | -1, 0 ^ -1, 0 & -1;
select -1 >> 0, -1 << 0; select -1 >> 0, -1 << 0;
select -1 >> 1, -1 << 1; select -1 >> 1, -1 << 1;
#
# Bug 13044: wrong bit_count() results
#
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
create table t1(a int);
create table t2(a int, b int);
insert into t1 values (1), (2), (3);
insert into t2 values (1, 7), (3, 7);
select t1.a, t2.a, t2.b, bit_count(t2.b) from t1 left join t2 on t1.a=t2.a;
drop table t1, t2;
# End of 4.1 tests # End of 4.1 tests
...@@ -2462,11 +2462,8 @@ longlong Item_func_bit_count::val_int() ...@@ -2462,11 +2462,8 @@ longlong Item_func_bit_count::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
ulonglong value= (ulonglong) args[0]->val_int(); ulonglong value= (ulonglong) args[0]->val_int();
if (args[0]->null_value) if ((null_value= args[0]->null_value))
{
null_value=1; /* purecov: inspected */
return 0; /* purecov: inspected */ return 0; /* purecov: inspected */
}
return (longlong) my_count_bits(value); return (longlong) my_count_bits(value);
} }
......
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