Esempio n. 1
0
function sig_handler($signo)
{
    switch ($signo) {
        case SIGTERM:
        case SIGHUP:
            die1(0);
    }
}
Esempio n. 2
0
function sig_handler($signo)
{
    global $cdc;
    switch ($signo) {
        case SIGTERM:
        case SIGHUP:
        case SIGINT:
            FlexCDC::shutdown_plugins($cdc);
            die1(0);
    }
}
Esempio n. 3
0
 function create_mvlog($v_schema_name, $v_table_name)
 {
     $v_done = FALSE;
     $v_column_name = NULL;
     $v_data_type = NULL;
     $v_sql = NULL;
     $cursor_sql = "SELECT COLUMN_NAME, IF(COLUMN_TYPE='TIMESTAMP', 'TIMESTAMP', COLUMN_TYPE) COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='{$v_table_name}' AND TABLE_SCHEMA = '{$v_schema_name}'";
     $cur_columns = my_mysql_query($cursor_sql, $this->source);
     $v_sql = '';
     while (1) {
         if ($v_sql != '') {
             $v_sql = FlexCDC::concat($v_sql, ', ');
         }
         $row = mysql_fetch_array($cur_columns);
         if ($row === false) {
             $v_done = true;
         }
         if ($row) {
             $v_column_name = '`' . $row[0] . '`';
             $v_data_type = $row[1];
         }
         if ($v_done) {
             mysql_free_result($cur_columns);
             break;
         }
         $v_sql = FlexCDC::concat($v_sql, $v_column_name, ' ', $v_data_type);
     }
     if (trim($v_sql) == "") {
         trigger_error('Could not access table:' . $v_table_name, E_USER_ERROR);
     }
     $v_sql = FlexCDC::concat('CREATE TABLE IF NOT EXISTS`', $this->mvlogDB, '`.`', $v_schema_name, '_', $v_table_name, '` ( dml_type INT DEFAULT 0, uow_id BIGINT, `fv$server_id` INT UNSIGNED,fv$gsn bigint, ', $v_sql, 'KEY(uow_id, dml_type) ) ENGINE=INNODB');
     $create_stmt = my_mysql_query($v_sql, $this->dest);
     if (!$create_stmt) {
         die1('COULD NOT CREATE MVLOG. ' . $v_sql . "\n");
     }
     $exec_sql = " INSERT IGNORE INTO `" . $this->mvlogDB . "`.`" . $this->mvlogs . "`( table_schema , table_name , mvlog_name ) values('{$v_schema_name}', '{$v_table_name}', '" . $v_schema_name . "_" . $v_table_name . "')";
     my_mysql_query($exec_sql) or die1($exec_sql . ':' . mysql_error($this->dest) . "\n");
     return true;
 }
Esempio n. 4
0
 protected function read_mysql_type(&$col_info)
 {
     $data_type = $col_info->type;
     $metadata = $col_info->metadata;
     $m =& $this->data_types;
     #echo "READ_MYSQL_TYPE: " . $this->data_type_map[$data_type] . "\n";
     switch ($data_type) {
         case $m['tiny']:
             return $this->read(1);
         case $m['short']:
             return $this->read(2);
         case $m['int24']:
             return $this->read(3);
         case $m['long']:
             $d = $this->read(4);
             #ECHO "LONG: " . $this->cast($d) . "\n";
             return $d;
         case $m['longlong']:
             return $this->read(8);
         case $m['float']:
             return $this->read(4);
         case $m['double']:
             return $this->read(8);
         case $m['string']:
         case $m['var_string']:
             return $this->read_varstring();
         case $m['varchar']:
             return $this->read_lpstring($metadata->max_length > 255 ? 2 : 1);
         case $m['blob']:
         case $m['geometry']:
             return $this->read_lpstring($metadata->length_size);
         case $m['timestamp']:
             return $this->read(4);
         case $m['year']:
             return $this->read(1);
         case $m['date']:
         case $m['time']:
             return $this->read(3);
         case $m['datetime']:
             return $this->read(8);
         case $m['enum']:
         case $m['set']:
             return $this->read($metadata->size);
         case $m['bit']:
             return $this->read_bit_array($metadata->bits);
         case $m['newdecimal']:
             return $this->read_newdecimal($metadata->precision, $metadata->scale);
         default:
             die1("DO NOT KNOW HOW TO READ TYPE: {$data_type}\n");
     }
     return false;
 }