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; }