MOON
Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4
System: Linux vps.panamaemb.org.sg 3.10.0-1160.80.1.vz7.191.4 #1 SMP Thu Dec 15 20:31:06 MSK 2022 x86_64
User: panama (500)
PHP: 5.2.17
Disabled: NONE
Upload Files
File: //usr/share/mysql-test/include/get_ndb_epochs.inc
# ==== Purpose ====
#
# Extract the epoch values from SHOW ENGINE NDB STATUS.
#
# ==== Usage ====
#
# --source include/get_ndb_epochs.inc
# --echo $ndb_latest_epoch
# --echo $ndb_latest_trans_epoch
# --echo $ndb_latest_received_binlog_epoch
# --echo $ndb_latest_handled_binlog_epoch
# --echo $ndb_latest_applied_binlog_epoch
#
# ==== Parameters ====
#
# $ndb_status_binlog_row
#   The row number of the output of SHOW ENGINE NDB STATUS
#   last was seen.
#   No need to set explictly, but used between sourcing this
#   include file several times, since it is highly probable
#   (but not certain) that same row number also applies next
#   time.

if (!$ndb_status_binlog_row)
{
  let $ndb_status_binlog_row = 1;
}

# Try two times, in case the row number of binlog state changes
# between two invocations of SHOW ENGINE NDB STATUS.
let $attempts= 2;
while ($attempts)
{
  let $q= query_get_value(SHOW ENGINE NDB STATUS, Status, $ndb_status_binlog_row);
  if ( `SELECT '$q' = 'No such row'` )
  {
    dec $attempts;
    if (!$attempts)
    {
      echo ERROR IN TEST: No binlog row found in SHOW ENGINE NDB STATUS;
      die ERROR IN TEST: No binlog row found in SHOW ENGINE NDB STATUS;
    }
    # row will be increased to 1 further down
    let $ndb_status_binlog_row = 0;
  }
  if (`SELECT INSTR('$q', 'latest_epoch=')`)
  {
    let $attempts = 0 ;
  }
  if ($attempts)
  {
    inc $ndb_status_binlog_row;
  }
}

let $ndb_latest_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_epoch=')), ',', 1), '=', -1)`;
let $ndb_latest_trans_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_trans_epoch=')), ',', 1), '=', -1)`;
let $ndb_latest_received_binlog_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_received_binlog_epoch=')), ',', 1), '=', -1)`;
let $ndb_latest_handled_binlog_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_handled_binlog_epoch=')), ',', 1), '=', -1)`;
let $ndb_latest_applied_binlog_epoch= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING('$q', INSTR('$q', 'latest_applied_binlog_epoch=')), ',', 1), '=', -1)`;