Commit 0b8e774e authored by unknown's avatar unknown
Browse files

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

into  mysql.com:/home/jimw/my/mysql-5.0-clean


sql/item_strfunc.cc:
  Auto merged
parents 6713cff5 fc44a776
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -927,7 +927,17 @@ typedef char bool; /* Ordinary boolean values 0 1 */

#ifndef set_timespec
#ifdef HAVE_TIMESPEC_TS_SEC
#define set_timespec(ABSTIME,SEC) { (ABSTIME).ts_sec=time(0) + (time_t) (SEC); (ABSTIME).ts_nsec=0; }
#define set_timespec(ABSTIME,SEC) \
{ \
  (ABSTIME).ts_sec=time(0) + (time_t) (SEC); \
  (ABSTIME).ts_nsec=0; \
}
#define set_timespec_nsec(ABSTIME,NSEC) \
{\
  ulonglong now= my_getsystime(); \
  (ABSTIME).ts_sec= (now / ULL(10000000)) + (NSEC / ULL(1000000000)); \
  (ABSTIME).ts_nsec= (now % ULL(10000000)) * 100 + (NSEC % ULL(1000000000)); \
}
#else
#define set_timespec(ABSTIME,SEC) \
{\
@@ -936,6 +946,12 @@ typedef char bool; /* Ordinary boolean values 0 1 */
  (ABSTIME).tv_sec=tv.tv_sec+(time_t) (SEC);\
  (ABSTIME).tv_nsec=tv.tv_usec*1000;\
}
#define set_timespec_nsec(ABSTIME,NSEC) \
{\
  ulonglong now= my_getsystime(); \
  (ABSTIME).tv_sec= (now / ULL(10000000)) + (NSEC / ULL(1000000000)); \
  (ABSTIME).tv_nsec= (now % ULL(10000000)) * 100 + (NSEC % ULL(1000000000)); \
}
#endif /* HAVE_TIMESPEC_TS_SEC */
#endif /* set_timespec */

+0 −11
Original line number Diff line number Diff line
@@ -2756,14 +2756,3 @@ DROP TABLE t1,t2;
select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;
x'10' + 0	X'10' + 0	b'10' + 0	B'10' + 0
16	16	2	2
CREATE TABLE BUG_12595(a varchar(100));
INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an");
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
a
hakan%
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
ERROR HY000: Incorrect arguments to ESCAPE
SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%';
a
ha%an
DROP TABLE BUG_12595;
+0 −11
Original line number Diff line number Diff line
@@ -2348,14 +2348,3 @@ DROP TABLE t1,t2;
#

select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0;

#
# BUG #12595
#
CREATE TABLE BUG_12595(a varchar(100));
INSERT INTO BUG_12595 VALUES ('hakan%'), ('hakank'), ("ha%an");
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan*%' ESCAPE '*';
-- error 1210
SELECT * FROM BUG_12595 WHERE a LIKE 'hakan**%' ESCAPE '**';
SELECT * FROM BUG_12595 WHERE a LIKE 'ha%%an' ESCAPE '%';
DROP TABLE BUG_12595;
+0 −6
Original line number Diff line number Diff line
@@ -2792,12 +2792,6 @@ bool Item_func_like::fix_fields(THD *thd, Item **ref)
  {
    /* If we are on execution stage */
    String *escape_str= escape_item->val_str(&tmp_value1);
    /* ESCAPE must be 1 char in length.*/
    if (escape_str && escape_str->numchars() != 1)
    {
      my_error(ER_WRONG_ARGUMENTS,MYF(0),"ESCAPE");
      return TRUE;
    }
    escape= escape_str ? *(escape_str->ptr()) : '\\';

    /*
+28 −2
Original line number Diff line number Diff line
@@ -3266,10 +3266,36 @@ void Item_func_benchmark::print(String *str)

longlong Item_func_sleep::val_int()
{
  THD *thd= current_thd;
  struct timespec abstime;
  pthread_cond_t cond;
  int error;

  DBUG_ASSERT(fixed == 1);

  double time= args[0]->val_real();
  my_sleep((ulong)time*1000000L);
  return 0;
  set_timespec_nsec(abstime, (ulonglong)(time * ULL(1000000000)));

  pthread_cond_init(&cond, NULL);
  pthread_mutex_lock(&LOCK_user_locks);

  thd->mysys_var->current_mutex= &LOCK_user_locks;
  thd->mysys_var->current_cond=  &cond;

  while (!thd->killed &&
         (error= pthread_cond_timedwait(&cond, &LOCK_user_locks,
                                        &abstime)) != ETIMEDOUT &&
         error != EINVAL) ;

  pthread_mutex_lock(&thd->mysys_var->mutex);
  thd->mysys_var->current_mutex= 0;
  thd->mysys_var->current_cond=  0;
  pthread_mutex_unlock(&thd->mysys_var->mutex);

  pthread_mutex_unlock(&LOCK_user_locks);
  pthread_cond_destroy(&cond);

  return (error == ETIMEDOUT) ? 0 : 1;
}