1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

merge with 4.0 (to get compiler error fixes for innodb)

client/mysqltest.c:
  Auto merged
include/errmsg.h:
  Auto merged
include/mysql_version.h.in:
  Auto merged
innobase/que/que0que.c:
  Auto merged
mysql-test/t/rpl000009.test:
  Auto merged
sql/set_var.cc:
  Auto merged
libmysql/errmsg.c:
  merge with 4.0
libmysql/libmysql.c:
  merge with 4.0
mysql-test/mysql-test-run.sh:
  merge with 4.0
mysql-test/r/rpl000009.result:
  merge with 4.0
scripts/mysql_fix_privilege_tables.sh:
  merge with 4.0
sql/repl_failsafe.cc:
  merge with 4.0
This commit is contained in:
unknown
2004-03-19 15:17:56 +02:00
17 changed files with 318 additions and 155 deletions

View File

@ -603,6 +603,57 @@ mysql_connect(MYSQL *mysql,const char *host,
#endif
#ifdef CHECK_LICENSE
/*
Check server side variable 'license'.
If the variable does not exist or does not contain 'Commercial',
we're talking to non-commercial server from commercial client.
SYNOPSIS
check_license()
RETURN VALUE
0 success
!0 network error or the server is not commercial.
Error code is saved in mysql->net.last_errno.
*/
static int check_license(MYSQL *mysql)
{
MYSQL_ROW row;
MYSQL_RES *res;
NET *net= &mysql->net;
static const char query[]= "SELECT @@license";
static const char required_license[]= LICENSE;
if (mysql_real_query(mysql, query, sizeof(query)-1))
{
if (net->last_errno == ER_UNKNOWN_SYSTEM_VARIABLE)
{
net->last_errno= CR_WRONG_LICENSE;
sprintf(net->last_error, ER(net->last_errno), required_license);
}
return 1;
}
if (!(res= mysql_use_result(mysql)))
return 1;
row= mysql_fetch_row(res);
/*
If no rows in result set, or column value is NULL (none of these
two is ever true for server variables now), or column value
mismatch, set wrong license error.
*/
if (!net->last_errno &&
(!row || !row[0] ||
strncmp(row[0], required_license, sizeof(required_license))))
{
net->last_errno= CR_WRONG_LICENSE;
sprintf(net->last_error, ER(net->last_errno), required_license);
}
mysql_free_result(res);
return net->last_errno;
}
#endif /* CHECK_LICENSE */
/**************************************************************************
Change user and database
**************************************************************************/