static int bulk_insert_id(MYSQL *mysql)
{
  int i;
  int rc;
  MYSQL_BIND bind[2];
  unsigned int array_size= 2;
  int val_a[2]= {1,2};
  int val_b[2]= {3,4};
  char indicators[2]= {STMT_INDICATOR_NULL, STMT_INDICATOR_NULL};
  char *testcase[]= {"MYSQL_TYPE_LONG", "MYSQL_TYPE_NULL", "STMT_INDICATOR_NULL"};

  for (i=0; i < 3; i++)
  {
    MYSQL_RES *res;
    MYSQL_ROW row;
    MYSQL_STMT *stmt= mysql_stmt_init(mysql);
    rc= mysql_query(mysql, "CREATE OR REPLACE TABLE t1 (a int not null auto_increment primary key, b int)");
    check_mysql_rc(rc, mysql);

    memset(&bind, 0, sizeof(MYSQL_BIND));
    switch (i) {
    case 0:
      bind[0].buffer_type= MYSQL_TYPE_LONG;
      break;
    case 1:
      bind[0].buffer_type= MYSQL_TYPE_NULL;
      break;
    case 2:
      bind[0].buffer_type= MYSQL_TYPE_LONG;
      bind[0].u.indicator= indicators;
      break;
    }
    bind[0].buffer= val_a;
    bind[1].buffer_type= MYSQL_TYPE_LONG;
    bind[1].buffer= val_a;

    rc= mysql_stmt_prepare(stmt, SL("insert into t1 values(?,?)"));
    check_stmt_rc(rc, stmt);

    rc= mysql_stmt_attr_set(stmt, STMT_ATTR_ARRAY_SIZE, &array_size);
    check_stmt_rc(rc, stmt);

    rc= mysql_stmt_bind_param(stmt, bind);
    check_stmt_rc(rc, stmt);

    rc= mysql_stmt_execute(stmt);
    check_stmt_rc(rc, stmt);

    rc= mysql_query(mysql, "COMMIT");
    check_mysql_rc(rc, mysql);

    diag("Insert id with buffer_type %s: %lld", 
        testcase[i],
        mysql_stmt_insert_id(stmt));

    rc= mysql_query(mysql, "SELECT max(a) FROM t1");
    check_mysql_rc(rc, mysql);

    res= mysql_store_result(mysql);
    row= mysql_fetch_row(res);
    diag("Max value for t1.a=%s", row[0]);
    mysql_free_result(res);

    mysql_stmt_close(stmt);
  }
  return OK;
}

