Bug #4173 Some aggregate functions used in a prepared query fail on big endian platforms

Submitted: 16 Jun 2004 23:08 Modified: 18 Jun 2004 1:29
Reporter: Nathaniel Blanchard Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S1 (Critical)
Version:4.1.2 OS:IBM AIX (AIX, OSX, Solaris (sparc), HP-UX)
Assigned to: Michael Widenius CPU Architecture:Any

[16 Jun 2004 23:08] Nathaniel Blanchard
Description:
Using a prepared query, some aggregate functions (tested with SUM and AVG so far) return their results in the wrong byte order when fetched, while on big endian hardware.

This sounds very similar to bug 3578.

I've confirmed the attached test plan returns incorrect values on the following platforms:

AIX 5.2
Solaris 8 (sparc) (x86 works fine since its a lowhigh machine)
Mac OS X (Darwin Kernel Version 6.8)

How to repeat:
  MYSQL_STMT *stmt;
  MYSQL_BIND bind_array[3];
  MYSQL *mysql = NULL;
  int id; /* input and output data of 'id' column */

  const char *stmt_text;
  int rc; /* to save return value of API calls */
  int i; /* loop counter */

  setup_connection();

  stmt= mysql_stmt_init(mysql);

  stmt_text= "INSERT INTO t1 (id) VALUES (?)";

  mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text));

  memset(bind_array, 0, sizeof(bind_array));

  bind_array[0].buffer_type= MYSQL_TYPE_LONG;
  bind_array[0].buffer= (char*) &id;

  mysql_stmt_bind_param(stmt, bind_array);

  for (id= 1; id <= 3; ++id)
    mysql_stmt_execute(stmt);

  stmt_text= "select sum(id) from t1";
  mysql_stmt_prepare(stmt, stmt_text, strlen(stmt_text));

  mysql_stmt_execute(stmt);
  mysql_stmt_bind_result(stmt, bind_array);

  while ((rc= mysql_stmt_fetch(stmt)) == 0)
  {
    printf("result =  %d\n", id);
  }

  mysql_stmt_close(stmt);
  cleanup();

  return 0;
[18 Jun 2004 1:29] Michael Widenius
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Fix will be in 4.1.3

Regards,
Monty

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.050 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.