mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
Portability fixes
scripts/mysql_install_db.sh: Portability fix (! is not portable) sql/item_func.cc: Use my_strtoll10() instead of strtoull() sql/repl_failsafe.cc: Use my_strtoll10() instead of strtoull() sql/sql_analyse.cc: Use my_strtoll10() instead of strtoull() sql/sql_yacc.yy: Use my_strtoll10() instead of strtoull() strings/my_strtoll10.c: Fix compiler warnings
This commit is contained in:
parent
cd8f9ed2a2
commit
47890151b4
6 changed files with 38 additions and 21 deletions
|
@ -10,6 +10,8 @@
|
|||
in_rpm=0
|
||||
windows=0
|
||||
defaults=""
|
||||
tmp_file=/tmp/mysql_install_db.$$
|
||||
|
||||
case "$1" in
|
||||
--no-defaults|--defaults-file=*|--defaults-extra-file=*)
|
||||
defaults="$1"; shift
|
||||
|
@ -212,9 +214,11 @@ then
|
|||
then
|
||||
echo "Fill help tables"
|
||||
fi
|
||||
if ! (echo "use mysql;
|
||||
"
|
||||
cat $fill_help_tables) | eval "$mysqld_install_cmd_line"
|
||||
echo "use mysql;" > $tmp_file
|
||||
cat $tmp_file $fill_help_tables | eval "$mysqld_install_cmd_line"
|
||||
res=$?
|
||||
rm $tmp_file
|
||||
if test $res != 0
|
||||
then
|
||||
echo ""
|
||||
echo "WARNING: HELP FILES ARE NOT COMPLETELY INSTALLED!"
|
||||
|
|
|
@ -2376,7 +2376,10 @@ longlong user_var_entry::val_int(my_bool *null_value)
|
|||
case INT_RESULT:
|
||||
return *(longlong*) value;
|
||||
case STRING_RESULT:
|
||||
return strtoull(value,NULL,10); // String is null terminated
|
||||
{
|
||||
int error;
|
||||
return my_strtoll10(value, (char**) 0, &error);// String is null terminated
|
||||
}
|
||||
case ROW_RESULT:
|
||||
DBUG_ASSERT(1); // Impossible
|
||||
break;
|
||||
|
|
|
@ -915,12 +915,14 @@ int load_master_data(THD* thd)
|
|||
setting active_mi, because init_master_info() sets active_mi with
|
||||
defaults.
|
||||
*/
|
||||
int error;
|
||||
|
||||
if (init_master_info(active_mi, master_info_file, relay_log_info_file,
|
||||
0))
|
||||
send_error(thd, ER_MASTER_INFO);
|
||||
strmake(active_mi->master_log_name, row[0],
|
||||
sizeof(active_mi->master_log_name));
|
||||
active_mi->master_log_pos = strtoull(row[1], (char**) 0, 10);
|
||||
active_mi->master_log_pos= my_strtoll10(row[1], (char**) 0, &error);
|
||||
/* at least in recent versions, the condition below should be false */
|
||||
if (active_mi->master_log_pos < BIN_LOG_HEADER_SIZE)
|
||||
active_mi->master_log_pos = BIN_LOG_HEADER_SIZE;
|
||||
|
|
|
@ -187,7 +187,9 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
|||
}
|
||||
if (str == end && info->integers)
|
||||
{
|
||||
info->ullval = (ulonglong) strtoull(begin ,NULL, 10);
|
||||
char *endpos= (char*) end;
|
||||
int error;
|
||||
info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error);
|
||||
if (info->integers == 1)
|
||||
return 0; // a single number can't be zerofill
|
||||
info->maybe_zerofill = 1;
|
||||
|
@ -199,7 +201,9 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
|||
return 0;
|
||||
if ((str + 1) == end) // number was something like '123[.eE]'
|
||||
{
|
||||
info->ullval = (ulonglong) strtoull(begin, NULL, 10);
|
||||
char *endpos= (char*) str;
|
||||
int error;
|
||||
info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error);
|
||||
return 1;
|
||||
}
|
||||
if (*str == 'e' || *str == 'E') // number may be something like '1e+50'
|
||||
|
@ -218,7 +222,9 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len)
|
|||
for (str++; *(end - 1) == '0'; end--); // jump over zeros at the end
|
||||
if (str == end) // number was something like '123.000'
|
||||
{
|
||||
info->ullval = (ulonglong) strtoull(begin, NULL, 10);
|
||||
char *endpos= (char*) str;
|
||||
int error;
|
||||
info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error);
|
||||
return 1;
|
||||
}
|
||||
for (; str != end && my_isdigit(system_charset_info,*str); str++)
|
||||
|
|
|
@ -3636,18 +3636,20 @@ delete_limit_clause:
|
|||
};
|
||||
|
||||
ULONG_NUM:
|
||||
NUM { $$= strtoul($1.str,NULL,10); }
|
||||
| LONG_NUM { $$= (ulong) strtoll($1.str,NULL,10); }
|
||||
| ULONGLONG_NUM { $$= (ulong) strtoull($1.str,NULL,10); }
|
||||
| REAL_NUM { $$= strtoul($1.str,NULL,10); }
|
||||
| FLOAT_NUM { $$= strtoul($1.str,NULL,10); };
|
||||
NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| LONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| ULONGLONG_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| REAL_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| FLOAT_NUM { int error; $$= (ulong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
;
|
||||
|
||||
ulonglong_num:
|
||||
NUM { $$= (ulonglong) strtoul($1.str,NULL,10); }
|
||||
| ULONGLONG_NUM { $$= strtoull($1.str,NULL,10); }
|
||||
| LONG_NUM { $$= (ulonglong) strtoll($1.str,NULL,10); }
|
||||
| REAL_NUM { $$= strtoull($1.str,NULL,10); }
|
||||
| FLOAT_NUM { $$= strtoull($1.str,NULL,10); };
|
||||
NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| ULONGLONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| LONG_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| REAL_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
| FLOAT_NUM { int error; $$= (ulonglong) my_strtoll10($1.str, (char**) 0, &error); }
|
||||
;
|
||||
|
||||
procedure_clause:
|
||||
/* empty */
|
||||
|
|
|
@ -196,15 +196,15 @@ longlong my_strtoll10(const char *nptr, char **endptr, int *error)
|
|||
goto overflow;
|
||||
|
||||
/* Check that we didn't get an overflow with the last digit */
|
||||
if (i > cutoff || i == cutoff && (j > cutoff2 || j == cutoff2 &&
|
||||
k > cutoff3))
|
||||
if (i > cutoff || (i == cutoff && ((j > cutoff2 || j == cutoff2) &&
|
||||
k > cutoff3)))
|
||||
goto overflow;
|
||||
li=i*LFACTOR2+ (ulonglong) j*100 + k;
|
||||
return (longlong) li;
|
||||
|
||||
overflow: /* *endptr is set here */
|
||||
*error= MY_ERRNO_ERANGE;
|
||||
return negative ? LONGLONG_MIN : ULONGLONG_MAX;
|
||||
return negative ? LONGLONG_MIN : (longlong) ULONGLONG_MAX;
|
||||
|
||||
end_i:
|
||||
*endptr= (char*) s;
|
||||
|
|
Loading…
Reference in a new issue