Added very simple parser for table replication listener for statement based replication.
This commit is contained in:
parent
9ca66dccf1
commit
e64a141134
@ -5,7 +5,7 @@ cmake_minimum_required (VERSION 2.6)
|
||||
# the library.
|
||||
|
||||
set(table_replication_consistency_sources
|
||||
table_replication_consistency.cpp table_replication_listener.cpp )
|
||||
table_replication_consistency.cpp table_replication_listener.cpp table_replication_parser.cpp)
|
||||
|
||||
# ---------- Find Boost Headers/Libraries -----------------------
|
||||
SET(Boost_DEBUG FALSE)
|
||||
|
@ -36,11 +36,14 @@ Updated:
|
||||
#include "listener_exception.h"
|
||||
#include "table_replication_consistency.h"
|
||||
#include "table_replication_listener.h"
|
||||
#include "table_replication_parser.h"
|
||||
|
||||
using mysql::Binary_log;
|
||||
using mysql::system::create_transport;
|
||||
using namespace std;
|
||||
using namespace mysql::system;
|
||||
using namespace mysql;
|
||||
using namespace system;
|
||||
using namespace table_replication_parser;
|
||||
|
||||
namespace mysql {
|
||||
|
||||
@ -72,6 +75,60 @@ boost::mutex table_replication_mutex; /* This mutex is used protect
|
||||
abve data structure from
|
||||
multiple threads */
|
||||
|
||||
/***********************************************************************//**
|
||||
Internal function to update table consistency information based
|
||||
on log event header, table name and if GTID is known the gtid.*/
|
||||
static void
|
||||
tbrl_update_consistency(
|
||||
/*====================*/
|
||||
Log_event_header *lheader, /*!< in: Log event header */
|
||||
string database_dot_table, /*!< in: db.table name */
|
||||
bool gtid_known, /*!< in: is GTID known */
|
||||
Gtid& gtid) /*!< in: gtid */
|
||||
{
|
||||
bool not_found = true;
|
||||
table_listener_consistency_t *tc=NULL;
|
||||
|
||||
// Need to be protected by mutex to avoid concurrency problems
|
||||
boost::mutex::scoped_lock lock(table_consistency_mutex);
|
||||
|
||||
if(table_consistency_map.find(database_dot_table) == table_consistency_map.end()) {
|
||||
not_found = true;
|
||||
} else {
|
||||
// Loop through the consistency values
|
||||
for(multimap<std::string, table_listener_consistency_t*>::iterator i = table_consistency_map.find(database_dot_table);
|
||||
i != table_consistency_map.end(); ++i) {
|
||||
tc = (*i).second;
|
||||
if (tc->server_id == lheader->server_id) {
|
||||
not_found = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(not_found) {
|
||||
// Consistency for this table and server not found, insert a record
|
||||
table_listener_consistency_t* tb_c = (table_listener_consistency_t*) malloc(sizeof(table_listener_consistency_t));
|
||||
tb_c->database_dot_table = (char *)malloc(database_dot_table.size()+1);
|
||||
strcpy(tb_c->database_dot_table, database_dot_table.c_str());
|
||||
tb_c->server_id = lheader->server_id;
|
||||
tb_c->binlog_pos = lheader->next_position;
|
||||
tb_c->gtid_known = gtid_known;
|
||||
tb_c->gtid = (char *)malloc(gtid.get_string().size()+1);
|
||||
strcpy(tb_c->gtid, gtid.get_string().c_str());
|
||||
|
||||
table_consistency_map.insert(pair<std::string, table_listener_consistency_t*>(database_dot_table,tb_c));
|
||||
} else {
|
||||
// Consistency for this table and server found, update the
|
||||
// consistency values
|
||||
tc->binlog_pos = lheader->next_position;
|
||||
free(tc->gtid);
|
||||
tc->gtid = (char *)malloc(gtid.get_string().size()+1);
|
||||
strcpy(tc->gtid, gtid.get_string().c_str());
|
||||
tc->gtid_known = gtid_known;
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This is the function that is executed by replication listeners.
|
||||
At startup it will try to connect the server and start listening
|
||||
@ -126,9 +183,44 @@ void* tb_replication_listener_reader(
|
||||
|
||||
case QUERY_EVENT: {
|
||||
Query_event *qevent = dynamic_cast<Query_event *>(event);
|
||||
// TODO: Do real handling i.e.:
|
||||
// statement based replication: parse the query and find out the db
|
||||
// and table
|
||||
int n_tables = 0;
|
||||
|
||||
// This is overkill but we really do not know how
|
||||
// many names there are at this state
|
||||
char **db_names = (char **) malloc(qevent->query.size()+1 * sizeof(char *));
|
||||
char **table_names = (char **) malloc(qevent->query.size()+1 * sizeof(char *));
|
||||
|
||||
// Try to parse db.table names from the SQL-clause
|
||||
if (tbr_parser_table_names(db_names, table_names, &n_tables, qevent->query.c_str())) {
|
||||
// Success, set up the consistency
|
||||
// information for every table
|
||||
for(int k=0;k < n_tables; k++) {
|
||||
// Update the consistency
|
||||
// information
|
||||
|
||||
if(db_names[k][0]=='\0') {
|
||||
database_dot_table = qevent->db_name;
|
||||
} else {
|
||||
database_dot_table = string(db_names[k]);
|
||||
}
|
||||
database_dot_table.append(".");
|
||||
database_dot_table.append(string(table_names[k]));
|
||||
|
||||
tbrl_update_consistency(lheader, database_dot_table, gtid_known, gtid);
|
||||
|
||||
free(db_names[k]);
|
||||
free(table_names[k]);
|
||||
}
|
||||
free(db_names);
|
||||
free(table_names);
|
||||
} else {
|
||||
for(int k=0; k < n_tables; k++) {
|
||||
free(db_names[k]);
|
||||
free(table_names[k]);
|
||||
}
|
||||
free(db_names);
|
||||
free(table_names);
|
||||
}
|
||||
|
||||
std::cout << "Thread: " << id << " server_id " << lheader->server_id
|
||||
<< " position " << lheader->next_position << " : Found event of type "
|
||||
@ -187,9 +279,6 @@ void* tb_replication_listener_reader(
|
||||
case DELETE_ROWS_EVENT:
|
||||
{
|
||||
Row_event *revent = dynamic_cast<Row_event*>(event);
|
||||
bool not_found = false;
|
||||
table_listener_consistency_t *tc=NULL;
|
||||
|
||||
tb_it= tid2tname.begin();
|
||||
tb_it= tid2tname.find(revent->table_id);
|
||||
if (tb_it != tid2tname.end())
|
||||
@ -197,48 +286,8 @@ void* tb_replication_listener_reader(
|
||||
database_dot_table= tb_it->second;
|
||||
}
|
||||
|
||||
// Need to be protected by mutex to avoid concurrency problems
|
||||
boost::mutex::scoped_lock lock(table_consistency_mutex);
|
||||
|
||||
not_found = true;
|
||||
|
||||
if(table_consistency_map.find(database_dot_table) == table_consistency_map.end()) {
|
||||
not_found = true;
|
||||
} else {
|
||||
// Loop through the consistency values
|
||||
for(multimap<std::string, table_listener_consistency_t*>::iterator i = table_consistency_map.find(database_dot_table);
|
||||
i != table_consistency_map.end(); ++i) {
|
||||
tc = (*i).second;
|
||||
if (tc->server_id == lheader->server_id) {
|
||||
not_found = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(not_found) {
|
||||
// Consistency for this table and server not found, insert a record
|
||||
table_listener_consistency_t* tb_c = (table_listener_consistency_t*) malloc(sizeof(table_listener_consistency_t));
|
||||
tb_c->database_dot_table = (char *)malloc(database_dot_table.size()+1);
|
||||
strcpy(tb_c->database_dot_table, database_dot_table.c_str());
|
||||
tb_c->server_id = lheader->server_id;
|
||||
tb_c->binlog_pos = lheader->next_position;
|
||||
tb_c->gtid_known = gtid_known;
|
||||
tb_c->gtid = (char *)malloc(gtid.get_string().size()+1);
|
||||
strcpy(tb_c->gtid, gtid.get_string().c_str());
|
||||
|
||||
table_consistency_map.insert(pair<std::string, table_listener_consistency_t*>(database_dot_table,tb_c));
|
||||
} else {
|
||||
// Consistency for this table and server found, update the
|
||||
// consistency values
|
||||
|
||||
tc->binlog_pos = lheader->next_position;
|
||||
free(tc->gtid);
|
||||
tc->gtid = (char *)malloc(gtid.get_string().size()+1);
|
||||
strcpy(tc->gtid, gtid.get_string().c_str());
|
||||
tc->gtid_known = gtid_known;
|
||||
}
|
||||
|
||||
// Update the consistency information
|
||||
tbrl_update_consistency(lheader, database_dot_table, gtid_known, gtid);
|
||||
|
||||
std::cout << "Thread: " << id << " server_id " << lheader->server_id
|
||||
<< " position " << lheader->next_position << " : Found event of type "
|
||||
|
441
table_replication_consistency/table_replication_parser.cpp
Normal file
441
table_replication_consistency/table_replication_parser.cpp
Normal file
@ -0,0 +1,441 @@
|
||||
/*
|
||||
Copyright (C) 2013, SkySQL Ab
|
||||
|
||||
|
||||
This file is distributed as part of the SkySQL Gateway. It is free
|
||||
software: you can redistribute it and/or modify it under the terms of the
|
||||
GNU General Public License as published by the Free Software Foundation,
|
||||
version 2.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with
|
||||
this program; if not, write to the Free Software Foundation, Inc., 51
|
||||
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Author: Jan Lindström jan.lindstrom@skysql.com
|
||||
|
||||
Created: 20-06-2013
|
||||
Updated:
|
||||
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "table_replication_parser.h"
|
||||
|
||||
namespace mysql {
|
||||
|
||||
namespace table_replication_parser {
|
||||
|
||||
typedef struct {
|
||||
char* m_start;
|
||||
char* m_pos;
|
||||
} tb_parser_t;
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function initializes internal parser data structure based on
|
||||
string to be parsed.*/
|
||||
static void
|
||||
tbr_parser_init(
|
||||
/*============*/
|
||||
tb_parser_t* m, /*!< inout: Parser structure to initialize */
|
||||
const char* s) /*!< in: String to parse */
|
||||
{
|
||||
m->m_start = (char *)s;
|
||||
m->m_pos = (char *)s;
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function skips all space characters on front
|
||||
@return position on string with next non space character*/
|
||||
static char*
|
||||
tbr_parser_skipwspc(
|
||||
char* str) /*!< in string */
|
||||
{
|
||||
while (isspace(*str)) {
|
||||
str++;
|
||||
}
|
||||
return(str);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function parses input string and tries to match it to the given keyword.
|
||||
@return true if next keyword matches, false if not
|
||||
*/
|
||||
static bool
|
||||
tbr_match_keyword(
|
||||
/*==============*/
|
||||
tb_parser_t* m, /*!< inout: Parser structure */
|
||||
const char* const_str) /*!< in: Keyword to match */
|
||||
{
|
||||
size_t len;
|
||||
|
||||
m->m_pos = tbr_parser_skipwspc(m->m_pos);
|
||||
|
||||
if (const_str[0] == '\0') {
|
||||
return(m->m_pos[0] == '\0');
|
||||
}
|
||||
|
||||
len = strlen(const_str);
|
||||
|
||||
// Parsing is based on comparing two srings ignoring case
|
||||
if (strncasecmp(m->m_pos, const_str, len) == 0) {
|
||||
unsigned char c = (unsigned char)m->m_pos[len];
|
||||
if (isascii(c)) {
|
||||
if (isalnum(c)) {
|
||||
return (true);
|
||||
}
|
||||
if (c == '_') {
|
||||
return (false);
|
||||
}
|
||||
}
|
||||
m->m_pos += len;
|
||||
return(true);
|
||||
}
|
||||
return(false);
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
Internal function to parse next quoted string
|
||||
@return true if quoted string found, false if not
|
||||
*/
|
||||
static bool
|
||||
tbr_get_quoted(
|
||||
/*===========*/
|
||||
tb_parser_t* m, /*!< inout: Parser structure */
|
||||
char* buf, /*!< out: parsed string */
|
||||
unsigned int size,/*!< in: buffer size */
|
||||
bool keep_quotes) /*!< in: is quotes left on string */
|
||||
{
|
||||
char quote;
|
||||
tb_parser_t saved_m;
|
||||
|
||||
m->m_pos = tbr_parser_skipwspc(m->m_pos);
|
||||
|
||||
saved_m = *m;
|
||||
|
||||
quote = *m->m_pos++;
|
||||
|
||||
if (keep_quotes) {
|
||||
*buf++ = quote;
|
||||
size--;
|
||||
}
|
||||
|
||||
while (*m->m_pos != '\0') {
|
||||
if (*m->m_pos == quote) {
|
||||
if ((m->m_pos)[1] == quote) {
|
||||
m->m_pos++;
|
||||
|
||||
if (keep_quotes) {
|
||||
*buf++ = quote;
|
||||
|
||||
if (size-- <= 1) {
|
||||
*m = saved_m;
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
*buf++ = *m->m_pos++;
|
||||
|
||||
if (size-- <= 1) {
|
||||
*m = saved_m;
|
||||
return(true);
|
||||
}
|
||||
}
|
||||
|
||||
if (*m->m_pos != quote) {
|
||||
*m = saved_m;
|
||||
return(false);
|
||||
}
|
||||
|
||||
m->m_pos++;
|
||||
|
||||
if (keep_quotes) {
|
||||
*buf++ = quote;
|
||||
|
||||
if (size-- <= 1) {
|
||||
*m = saved_m;
|
||||
return(true);
|
||||
}
|
||||
}
|
||||
|
||||
*buf = '\0';
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function parses identifiers e.g. table name
|
||||
@return true if identifier is found, false if not
|
||||
*/
|
||||
static bool
|
||||
tbr_get_id(
|
||||
/*=======*/
|
||||
tb_parser_t* m, /*!< intout: Parser structure */
|
||||
char* id_buf, /*!< out: parsed identifier */
|
||||
unsigned int id_size) /*!< in: identifier size */
|
||||
{
|
||||
char* org_id_buf = id_buf;
|
||||
tb_parser_t saved_m;
|
||||
|
||||
m->m_pos = tbr_parser_skipwspc(m->m_pos);
|
||||
saved_m = *m;
|
||||
|
||||
if (*m->m_pos == '"' || *m->m_pos == '`') {
|
||||
if (!tbr_get_quoted(m, id_buf, id_size, false)) {
|
||||
*m = saved_m;
|
||||
return(false);
|
||||
}
|
||||
} else {
|
||||
while (isalnum(*m->m_pos) || *m->m_pos == '_') {
|
||||
*id_buf++ = *m->m_pos++;
|
||||
|
||||
if (id_size-- <= 1) {
|
||||
*m = saved_m;
|
||||
return(true);
|
||||
}
|
||||
}
|
||||
*id_buf = '\0';
|
||||
}
|
||||
|
||||
if (strlen(org_id_buf) > 0) {
|
||||
return(true);
|
||||
} else {
|
||||
*m = saved_m;
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function parses constants e.g. "."
|
||||
@return true if constant is found, false if not
|
||||
*/
|
||||
static bool
|
||||
tbr_match_const(
|
||||
/*============*/
|
||||
tb_parser_t* m, /*!< inout: Parser structure */
|
||||
const char* const_str) /*!< in: constant to be parsed */
|
||||
{
|
||||
size_t len;
|
||||
|
||||
m->m_pos = tbr_parser_skipwspc(m->m_pos);
|
||||
|
||||
if (const_str[0] == '\0') {
|
||||
return(m->m_pos[0] == '\0');
|
||||
}
|
||||
|
||||
len = strlen(const_str);
|
||||
|
||||
if (strncasecmp(m->m_pos, const_str, len) == 0) {
|
||||
m->m_pos += len;
|
||||
return(true);
|
||||
} else {
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function skips to position where given keyword is found
|
||||
@return true if keyword is found, false if not
|
||||
*/
|
||||
static bool
|
||||
tbr_skipto_keyword(
|
||||
/*===============*/
|
||||
tb_parser_t* m, /*!< inout: Parser structure */
|
||||
const char* const_str,/*!< in: keyword to find*/
|
||||
const char* end_str) /*!< in: stop at this keyword */
|
||||
{
|
||||
size_t len;
|
||||
bool more = true;
|
||||
|
||||
m->m_pos = tbr_parser_skipwspc(m->m_pos);
|
||||
|
||||
if (const_str[0] == '\0') {
|
||||
return(m->m_pos[0] == '\0');
|
||||
}
|
||||
|
||||
len = strlen(const_str);
|
||||
|
||||
while (more) {
|
||||
if (strncasecmp(m->m_pos, const_str, len) == 0) {
|
||||
m->m_pos += len;
|
||||
return(true);
|
||||
} else {
|
||||
if(!(tbr_match_const(m, (char *)end_str))) {
|
||||
m->m_pos++;
|
||||
|
||||
if (*(m->m_pos) == '\0'){
|
||||
return (false);
|
||||
}
|
||||
} else {
|
||||
m->m_pos-=strlen(end_str);
|
||||
return (false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This internal function parses table name consisting database + "." + table
|
||||
@return true if table name is found, false if not
|
||||
*/
|
||||
static bool
|
||||
tbr_get_tablename(
|
||||
/*==============*/
|
||||
tb_parser_t* m, /*!< inout: Parser structure */
|
||||
char* dbname_buf, /*!< out: Database name or empty string */
|
||||
size_t dbname_size, /*!< in: size of db buffer */
|
||||
char* tabname_buf, /*!< out: Tablename or empty string */
|
||||
size_t tabname_size) /*!< in: size of tablename buffer */
|
||||
{
|
||||
tb_parser_t saved_m;
|
||||
|
||||
saved_m = *m;
|
||||
|
||||
/* Try to parse database name */
|
||||
if (!tbr_get_id(m, dbname_buf, dbname_size)) {
|
||||
return(false);
|
||||
}
|
||||
|
||||
/* If string does not contain constant "." there is no database name */
|
||||
if (!tbr_match_const(m, (char *)".")) {
|
||||
*m = saved_m;
|
||||
dbname_buf[0] = '\0';
|
||||
|
||||
if (!tbr_get_id(m, tabname_buf, tabname_size)) {
|
||||
return(false);
|
||||
}
|
||||
return(true);
|
||||
}
|
||||
|
||||
/* Try to parser table name */
|
||||
if (!tbr_get_id(m, tabname_buf, tabname_size)) {
|
||||
return(false);
|
||||
}
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
/***********************************************************************//**
|
||||
This function parses SQL-clauses and extracts table names
|
||||
from the clause.
|
||||
@return true if table names found, false if not
|
||||
*/
|
||||
bool
|
||||
tbr_parser_table_names(
|
||||
/*===================*/
|
||||
char **db_name, /*!< inout: Array of db names */
|
||||
char **table_name, /*!< inout: Array of table names */
|
||||
int *n_tables, /*!< out: Number of db.table names found */
|
||||
const char* sql_string) /*!< in: SQL-clause */
|
||||
{
|
||||
tb_parser_t m;
|
||||
size_t name_count=0;
|
||||
char *dbname=NULL;
|
||||
char *tbname=NULL;
|
||||
size_t len = strlen(sql_string);
|
||||
|
||||
tbr_parser_init(&m, sql_string);
|
||||
*n_tables = 0;
|
||||
|
||||
// MySQL does not support multi-table insert or replace
|
||||
if ((tbr_match_keyword(&m, "INSERT") || tbr_match_keyword(&m, "REPLACE")) &&
|
||||
tbr_skipto_keyword(&m, "INTO", "")) {
|
||||
dbname = (char *)malloc(len+1);
|
||||
tbname = (char *)malloc(len+1);
|
||||
|
||||
if (tbr_get_tablename(&m, dbname, len, tbname, len)) {
|
||||
db_name[name_count] = dbname;
|
||||
table_name[name_count] = tbname;
|
||||
name_count++;
|
||||
} else {
|
||||
free(dbname);
|
||||
free(tbname);
|
||||
return (false); // Parse error
|
||||
}
|
||||
}
|
||||
// MySQL does support multi table delete/update
|
||||
if ((tbr_match_keyword(&m, "DELETE") &&
|
||||
tbr_skipto_keyword(&m, "FROM","")) ||
|
||||
(tbr_match_keyword(&m, "UPDATE"))) {
|
||||
dbname = (char *)malloc(len+1);
|
||||
tbname = (char *)malloc(len+1);
|
||||
|
||||
// These will eat the optional keywords from update
|
||||
tbr_match_keyword(&m, "LOW PRIORITY");
|
||||
tbr_match_keyword(&m, "IGNORE");
|
||||
|
||||
// Parse the first db.table name
|
||||
if (tbr_get_tablename(&m, dbname, len,tbname,len)) {
|
||||
db_name[name_count] = dbname;
|
||||
table_name[name_count] = tbname;
|
||||
name_count++;
|
||||
|
||||
// Table names are delimited by ","
|
||||
while(tbr_match_const(&m, ",")) {
|
||||
dbname = (char *)malloc(len+1);
|
||||
tbname = (char *)malloc(len+1);
|
||||
// Parse the next db.table name
|
||||
if (tbr_get_tablename(&m, dbname, len,tbname,len)) {
|
||||
db_name[name_count] = dbname;
|
||||
table_name[name_count] = tbname;
|
||||
name_count++;
|
||||
} else {
|
||||
free(dbname);
|
||||
free(tbname);
|
||||
return (false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// LOAD command
|
||||
if (tbr_match_keyword(&m, "LOAD") &&
|
||||
tbr_skipto_keyword(&m, "INTO", "")) {
|
||||
|
||||
// Eat TABLE keyword
|
||||
tbr_match_keyword(&m, "TABLE");
|
||||
|
||||
dbname = (char *)malloc(len+1);
|
||||
tbname = (char *)malloc(len+1);
|
||||
|
||||
if (tbr_get_tablename(&m, dbname, len, tbname, len)) {
|
||||
db_name[name_count] = dbname;
|
||||
table_name[name_count] = tbname;
|
||||
name_count++;
|
||||
} else {
|
||||
free(dbname);
|
||||
free(tbname);
|
||||
return (false); // Parse error
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: Is create table/drop table needed ?
|
||||
|
||||
*n_tables = name_count;
|
||||
|
||||
if (name_count == 0) {
|
||||
return (false); // Parse error
|
||||
}
|
||||
|
||||
return (true);
|
||||
}
|
||||
|
||||
} // table_replication_parser
|
||||
|
||||
} // mysql
|
||||
|
51
table_replication_consistency/table_replication_parser.h
Normal file
51
table_replication_consistency/table_replication_parser.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright (C) 2013, SkySQL Ab
|
||||
|
||||
|
||||
This file is distributed as part of the SkySQL Gateway. It is free
|
||||
software: you can redistribute it and/or modify it under the terms of the
|
||||
GNU General Public License as published by the Free Software Foundation,
|
||||
version 2.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along with
|
||||
this program; if not, write to the Free Software Foundation, Inc., 51
|
||||
Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Author: Jan Lindström jan.lindstrom@skysql.com
|
||||
|
||||
Created: 20-06-2013
|
||||
Updated:
|
||||
|
||||
*/
|
||||
|
||||
#ifndef TABLE_REPLICATION_PARSER_H
|
||||
#define TABLE_REPLICATION_PARSER_H
|
||||
|
||||
namespace mysql {
|
||||
|
||||
namespace table_replication_parser {
|
||||
|
||||
/***********************************************************************//**
|
||||
This function parses SQL-clauses and extracts table names
|
||||
from the clause.
|
||||
@return true if table names found, false if not
|
||||
*/
|
||||
bool
|
||||
tbr_parser_table_names(
|
||||
/*===================*/
|
||||
char **db_name, /*!< inout: Array of db names */
|
||||
char **table_name, /*!< inout: Array of table names */
|
||||
int *n_tables, /*!< out: Number of db.table names found */
|
||||
const char* sql_string); /*!< in: SQL-clause */
|
||||
|
||||
} // table_replication_parser
|
||||
|
||||
} // mysql
|
||||
|
||||
#endif
|
||||
|
@ -17,10 +17,6 @@
|
||||
//Path to a program.
|
||||
CMAKE_AR:FILEPATH=/usr/bin/ar
|
||||
|
||||
//For backwards compatibility, what version of CMake commands and
|
||||
// syntax should this version of CMake try to support.
|
||||
CMAKE_BACKWARDS_COMPATIBILITY:STRING=2.4
|
||||
|
||||
//Choose the type of build, options are: None(CMAKE_CXX_FLAGS or
|
||||
// CMAKE_C_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.
|
||||
CMAKE_BUILD_TYPE:STRING=Debug
|
||||
@ -159,12 +155,6 @@ CMAKE_USE_RELATIVE_PATHS:BOOL=OFF
|
||||
// Studio IDE projects all commands are done without /nologo.
|
||||
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
|
||||
|
||||
//Single output directory for building all executables.
|
||||
EXECUTABLE_OUTPUT_PATH:PATH=
|
||||
|
||||
//Single output directory for building all libraries.
|
||||
LIBRARY_OUTPUT_PATH:PATH=
|
||||
|
||||
//Path to a library.
|
||||
LIB_CRYPTO:FILEPATH=/usr/lib/x86_64-linux-gnu/libcrypto.so
|
||||
|
||||
@ -174,12 +164,6 @@ MySQL_INCLUDE_DIR:PATH=/usr/local/include
|
||||
//Path to a library.
|
||||
MySQL_LIBRARY:FILEPATH=/usr/lib/libmysqlclient_r.so
|
||||
|
||||
//Value Computed by CMake
|
||||
Project_BINARY_DIR:STATIC=/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test
|
||||
|
||||
//Value Computed by CMake
|
||||
Project_SOURCE_DIR:STATIC=/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test
|
||||
|
||||
//Path to a file.
|
||||
SkySQL_INCLUDE_DIR:PATH=/home/jan/skysql/skygateway/skygateway/utils
|
||||
|
||||
|
@ -261,3 +261,266 @@ Parsed CXX implicit link information from above output:
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
|
||||
|
||||
|
||||
The system is: Linux - 3.5.0-28-generic - x86_64
|
||||
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
|
||||
Compiler: /usr/bin/gcc
|
||||
Build flags:
|
||||
Id flags:
|
||||
|
||||
The output was:
|
||||
0
|
||||
|
||||
|
||||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
|
||||
|
||||
The C compiler identification is GNU, found in "/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CompilerIdC/a.out"
|
||||
|
||||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
|
||||
Compiler: /usr/bin/c++
|
||||
Build flags:
|
||||
Id flags:
|
||||
|
||||
The output was:
|
||||
0
|
||||
|
||||
|
||||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
|
||||
|
||||
The CXX compiler identification is GNU, found in "/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CompilerIdCXX/a.out"
|
||||
|
||||
Determining if the C compiler works passed with the following output:
|
||||
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command:/usr/bin/make "cmTryCompileExec4066791333/fast"
|
||||
/usr/bin/make -f CMakeFiles/cmTryCompileExec4066791333.dir/build.make CMakeFiles/cmTryCompileExec4066791333.dir/build
|
||||
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
|
||||
Building C object CMakeFiles/cmTryCompileExec4066791333.dir/testCCompiler.c.o
|
||||
/usr/bin/gcc -o CMakeFiles/cmTryCompileExec4066791333.dir/testCCompiler.c.o -c /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/testCCompiler.c
|
||||
Linking C executable cmTryCompileExec4066791333
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4066791333.dir/link.txt --verbose=1
|
||||
/usr/bin/gcc CMakeFiles/cmTryCompileExec4066791333.dir/testCCompiler.c.o -o cmTryCompileExec4066791333 -rdynamic
|
||||
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
|
||||
|
||||
Detecting C compiler ABI info compiled with the following output:
|
||||
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command:/usr/bin/make "cmTryCompileExec4094219882/fast"
|
||||
/usr/bin/make -f CMakeFiles/cmTryCompileExec4094219882.dir/build.make CMakeFiles/cmTryCompileExec4094219882.dir/build
|
||||
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
|
||||
Building C object CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o
|
||||
/usr/bin/gcc -o CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c
|
||||
Linking C executable cmTryCompileExec4094219882
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4094219882.dir/link.txt --verbose=1
|
||||
/usr/bin/gcc -v CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec4094219882 -rdynamic
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/gcc
|
||||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
|
||||
Target: x86_64-linux-gnu
|
||||
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
|
||||
Thread model: posix
|
||||
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec4094219882' '-rdynamic' '-mtune=generic' '-march=x86-64'
|
||||
/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec4094219882 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o
|
||||
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
|
||||
|
||||
Parsed C implicit link information from above output:
|
||||
link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)]
|
||||
ignore line: [Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp]
|
||||
ignore line: []
|
||||
ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec4094219882/fast"]
|
||||
ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec4094219882.dir/build.make CMakeFiles/cmTryCompileExec4094219882.dir/build]
|
||||
ignore line: [make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp']
|
||||
ignore line: [/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1]
|
||||
ignore line: [Building C object CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o]
|
||||
ignore line: [/usr/bin/gcc -o CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c]
|
||||
ignore line: [Linking C executable cmTryCompileExec4094219882]
|
||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4094219882.dir/link.txt --verbose=1]
|
||||
ignore line: [/usr/bin/gcc -v CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -o cmTryCompileExec4094219882 -rdynamic ]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/gcc]
|
||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper]
|
||||
ignore line: [Target: x86_64-linux-gnu]
|
||||
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec4094219882' '-rdynamic' '-mtune=generic' '-march=x86-64']
|
||||
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec4094219882 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o]
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2] ==> ignore
|
||||
arg [--sysroot=/] ==> ignore
|
||||
arg [--build-id] ==> ignore
|
||||
arg [--no-add-needed] ==> ignore
|
||||
arg [--as-needed] ==> ignore
|
||||
arg [--eh-frame-hdr] ==> ignore
|
||||
arg [-m] ==> ignore
|
||||
arg [elf_x86_64] ==> ignore
|
||||
arg [--hash-style=gnu] ==> ignore
|
||||
arg [-export-dynamic] ==> ignore
|
||||
arg [-dynamic-linker] ==> ignore
|
||||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
|
||||
arg [-zrelro] ==> ignore
|
||||
arg [-o] ==> ignore
|
||||
arg [cmTryCompileExec4094219882] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o] ==> ignore
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7]
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu]
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib]
|
||||
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
|
||||
arg [-L/lib/../lib] ==> dir [/lib/../lib]
|
||||
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..]
|
||||
arg [CMakeFiles/cmTryCompileExec4094219882.dir/CMakeCCompilerABI.c.o] ==> ignore
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [--as-needed] ==> ignore
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [--no-as-needed] ==> ignore
|
||||
arg [-lc] ==> lib [c]
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [--as-needed] ==> ignore
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [--no-as-needed] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
|
||||
remove lib [gcc]
|
||||
remove lib [gcc_s]
|
||||
remove lib [gcc]
|
||||
remove lib [gcc_s]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.7]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> [/usr/lib]
|
||||
collapse dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
|
||||
collapse dir [/lib/../lib] ==> [/lib]
|
||||
collapse dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
|
||||
collapse dir [/usr/lib/../lib] ==> [/usr/lib]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> [/usr/lib]
|
||||
implicit libs: [c]
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
|
||||
|
||||
|
||||
Determining if the CXX compiler works passed with the following output:
|
||||
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command:/usr/bin/make "cmTryCompileExec3884602878/fast"
|
||||
/usr/bin/make -f CMakeFiles/cmTryCompileExec3884602878.dir/build.make CMakeFiles/cmTryCompileExec3884602878.dir/build
|
||||
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
|
||||
Building CXX object CMakeFiles/cmTryCompileExec3884602878.dir/testCXXCompiler.cxx.o
|
||||
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec3884602878.dir/testCXXCompiler.cxx.o -c /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
|
||||
Linking CXX executable cmTryCompileExec3884602878
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3884602878.dir/link.txt --verbose=1
|
||||
/usr/bin/c++ CMakeFiles/cmTryCompileExec3884602878.dir/testCXXCompiler.cxx.o -o cmTryCompileExec3884602878 -rdynamic
|
||||
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
|
||||
|
||||
Detecting CXX compiler ABI info compiled with the following output:
|
||||
Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp
|
||||
|
||||
Run Build Command:/usr/bin/make "cmTryCompileExec3591115516/fast"
|
||||
/usr/bin/make -f CMakeFiles/cmTryCompileExec3591115516.dir/build.make CMakeFiles/cmTryCompileExec3591115516.dir/build
|
||||
make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1
|
||||
Building CXX object CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o
|
||||
/usr/bin/c++ -o CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp
|
||||
Linking CXX executable cmTryCompileExec3591115516
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3591115516.dir/link.txt --verbose=1
|
||||
/usr/bin/c++ -v CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec3591115516 -rdynamic
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
|
||||
Target: x86_64-linux-gnu
|
||||
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
|
||||
Thread model: posix
|
||||
gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3591115516' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64'
|
||||
/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec3591115516 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o
|
||||
make[1]: Leaving directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp'
|
||||
|
||||
|
||||
Parsed CXX implicit link information from above output:
|
||||
link line regex: [^( *|.*[/\])(ld|ld|collect2)[^/\]*( |$)]
|
||||
ignore line: [Change Dir: /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp]
|
||||
ignore line: []
|
||||
ignore line: [Run Build Command:/usr/bin/make "cmTryCompileExec3591115516/fast"]
|
||||
ignore line: [/usr/bin/make -f CMakeFiles/cmTryCompileExec3591115516.dir/build.make CMakeFiles/cmTryCompileExec3591115516.dir/build]
|
||||
ignore line: [make[1]: Entering directory `/home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp']
|
||||
ignore line: [/usr/bin/cmake -E cmake_progress_report /home/jan/skysql/skygateway/skygateway/table_replication_consistency/test/CMakeFiles/CMakeTmp/CMakeFiles 1]
|
||||
ignore line: [Building CXX object CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o]
|
||||
ignore line: [/usr/bin/c++ -o CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp]
|
||||
ignore line: [Linking CXX executable cmTryCompileExec3591115516]
|
||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3591115516.dir/link.txt --verbose=1]
|
||||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -o cmTryCompileExec3591115516 -rdynamic ]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper]
|
||||
ignore line: [Target: x86_64-linux-gnu]
|
||||
ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.2-2ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1) ]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.7/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTryCompileExec3591115516' '-rdynamic' '-shared-libgcc' '-mtune=generic' '-march=x86-64']
|
||||
link line: [ /usr/lib/gcc/x86_64-linux-gnu/4.7/collect2 --sysroot=/ --build-id --no-add-needed --as-needed --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -z relro -o cmTryCompileExec3591115516 /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o]
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/collect2] ==> ignore
|
||||
arg [--sysroot=/] ==> ignore
|
||||
arg [--build-id] ==> ignore
|
||||
arg [--no-add-needed] ==> ignore
|
||||
arg [--as-needed] ==> ignore
|
||||
arg [--eh-frame-hdr] ==> ignore
|
||||
arg [-m] ==> ignore
|
||||
arg [elf_x86_64] ==> ignore
|
||||
arg [--hash-style=gnu] ==> ignore
|
||||
arg [-export-dynamic] ==> ignore
|
||||
arg [-dynamic-linker] ==> ignore
|
||||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
|
||||
arg [-zrelro] ==> ignore
|
||||
arg [-o] ==> ignore
|
||||
arg [cmTryCompileExec3591115516] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o] ==> ignore
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7]
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu]
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib]
|
||||
arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu]
|
||||
arg [-L/lib/../lib] ==> dir [/lib/../lib]
|
||||
arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu]
|
||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||
arg [-L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..]
|
||||
arg [CMakeFiles/cmTryCompileExec3591115516.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
|
||||
arg [-lstdc++] ==> lib [stdc++]
|
||||
arg [-lm] ==> lib [m]
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [-lc] ==> lib [c]
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o] ==> ignore
|
||||
remove lib [gcc_s]
|
||||
remove lib [gcc]
|
||||
remove lib [gcc_s]
|
||||
remove lib [gcc]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7] ==> [/usr/lib/gcc/x86_64-linux-gnu/4.7]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib] ==> [/usr/lib]
|
||||
collapse dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu]
|
||||
collapse dir [/lib/../lib] ==> [/lib]
|
||||
collapse dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu]
|
||||
collapse dir [/usr/lib/../lib] ==> [/usr/lib]
|
||||
collapse dir [/usr/lib/gcc/x86_64-linux-gnu/4.7/../../..] ==> [/usr/lib]
|
||||
implicit libs: [stdc++;m;c]
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/4.7;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib]
|
||||
|
||||
|
||||
|
@ -11,11 +11,28 @@ SET(CMAKE_MAKEFILE_DEPENDS
|
||||
"CMakeFiles/CMakeCXXCompiler.cmake"
|
||||
"CMakeFiles/CMakeSystem.cmake"
|
||||
"CMakeLists.txt"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCCompiler.cmake.in"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCCompilerABI.c"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCInformation.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCXXCompiler.cmake.in"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCXXCompilerABI.cpp"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCXXInformation.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeClDeps.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeCommonLanguageInclude.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeDetermineCompilerABI.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeDetermineSystem.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeFindBinUtils.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeGenericSystem.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeParseImplicitLinkInfo.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeSystem.cmake.in"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeSystemSpecificInformation.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeTestCXXCompiler.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeTestCompilerCommon.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/CMakeUnixFindMake.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/Compiler/GNU-C.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/Compiler/GNU-CXX.cmake"
|
||||
"/usr/share/cmake-2.8/Modules/Compiler/GNU.cmake"
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user