diff options
Diffstat (limited to 'lib/output')
| -rw-r--r-- | lib/output/dumpToConsole.cpp | 14 | ||||
| -rw-r--r-- | lib/output/pq/pqStmt.cpp | 2 | ||||
| -rw-r--r-- | lib/output/pq/sql/selectColumns.sql | 6 | ||||
| -rw-r--r-- | lib/output/pq/sql/selectSource.sql | 3 | ||||
| -rw-r--r-- | lib/output/pq/sql/selectTables.sql | 6 | ||||
| -rw-r--r-- | lib/output/pq/sql/updateSourcePosition.sql | 4 | 
6 files changed, 27 insertions, 8 deletions
diff --git a/lib/output/dumpToConsole.cpp b/lib/output/dumpToConsole.cpp index 81d9edc..1085bb5 100644 --- a/lib/output/dumpToConsole.cpp +++ b/lib/output/dumpToConsole.cpp @@ -17,7 +17,7 @@ namespace MyGrate::Output {  	DumpToConsole::tableMap(MyGrate::MariaDB_Event_Ptr event)  	{  		const auto & tm = event->event.table_map; -		AdHoc::scprintf<"Table map %?.%? -> %?\n">(std::cout, tm.database, tm.table, tm.table_id); +		scprintf<"Table map %?.%? -> %?\n">(std::cout, tm.database, tm.table, tm.table_id);  		EventHandlerBase::tableMap(std::move(event));  	} @@ -25,7 +25,7 @@ namespace MyGrate::Output {  	DumpToConsole::insertRow(MyGrate::MariaDB_Event_Ptr event)  	{  		const auto & rs = event->event.rows; -		AdHoc::scprintf<"Insert into %?\n">(std::cout, rs.table_id); +		scprintf<"Insert into %?\n">(std::cout, rs.table_id);  		dumpRowData(event->event.rows);  	} @@ -33,7 +33,7 @@ namespace MyGrate::Output {  	DumpToConsole::updateRow(MyGrate::MariaDB_Event_Ptr event)  	{  		const auto & rs = event->event.rows; -		AdHoc::scprintf<"Update %?\n">(std::cout, rs.table_id); +		scprintf<"Update %?\n">(std::cout, rs.table_id);  		dumpRowPairData(event->event.rows);  	} @@ -41,7 +41,7 @@ namespace MyGrate::Output {  	DumpToConsole::deleteRow(MyGrate::MariaDB_Event_Ptr event)  	{  		const auto & rs = event->event.rows; -		AdHoc::scprintf<"Delete from %?\n">(std::cout, rs.table_id); +		scprintf<"Delete from %?\n">(std::cout, rs.table_id);  		dumpRowData(event->event.rows);  	} @@ -50,19 +50,19 @@ namespace MyGrate::Output {  		void  		operator()(const T & v) const  		{ -			AdHoc::scprintf<"\t\t%?\n">(std::cout, v); +			scprintf<"\t\t%?\n">(std::cout, v);  		}  		void  		operator()(const uint8_t & v) const  		{ -			AdHoc::scprintf<"\t\t%d\n">(std::cout, v); +			scprintf<"\t\t%d\n">(std::cout, v);  		}  		void  		operator()(const int8_t & v) const  		{ -			AdHoc::scprintf<"\t\t%d\n">(std::cout, v); +			scprintf<"\t\t%d\n">(std::cout, v);  		}  	}; diff --git a/lib/output/pq/pqStmt.cpp b/lib/output/pq/pqStmt.cpp index 04b48c6..078c239 100644 --- a/lib/output/pq/pqStmt.cpp +++ b/lib/output/pq/pqStmt.cpp @@ -46,7 +46,7 @@ namespace MyGrate::Output::Pq {  		if (const auto i = c->stmts.find(q); i != c->stmts.end()) {  			return i->second;  		} -		auto nam {AdHoc::scprintf<"pst%0x">(c->stmts.size())}; +		auto nam {scprintf<"pst%0x">(c->stmts.size())};  		ResPtr res {PQprepare(c->conn.get(), nam.c_str(), q, (int)n, nullptr), PQclear};  		verify<std::runtime_error>(PQresultStatus(res.get()) == PGRES_COMMAND_OK, q);  		return c->stmts.emplace(q, std::move(nam)).first->second; diff --git a/lib/output/pq/sql/selectColumns.sql b/lib/output/pq/sql/selectColumns.sql new file mode 100644 index 0000000..e9cd107 --- /dev/null +++ b/lib/output/pq/sql/selectColumns.sql @@ -0,0 +1,6 @@ +SELECT t.table_name, STRING_AGG(c.column_name, '|' ORDER BY c.ordinal_position) +FROM mygrate.source s +	JOIN information_schema.tables t USING(table_schema) +	LEFT OUTER JOIN information_schema.columns c USING(table_schema, table_name) +WHERE s.id = $1 +GROUP BY t.table_name diff --git a/lib/output/pq/sql/selectSource.sql b/lib/output/pq/sql/selectSource.sql new file mode 100644 index 0000000..3048410 --- /dev/null +++ b/lib/output/pq/sql/selectSource.sql @@ -0,0 +1,3 @@ +SELECT host, username, password, port, filename, position, serverid, table_schema +FROM mygrate.source s +WHERE s.id = $1 diff --git a/lib/output/pq/sql/selectTables.sql b/lib/output/pq/sql/selectTables.sql new file mode 100644 index 0000000..389dfe2 --- /dev/null +++ b/lib/output/pq/sql/selectTables.sql @@ -0,0 +1,6 @@ +SELECT t.table_name, STRING_AGG(k.column_name, '|' ORDER BY k.ordinal_position) pk_cols +FROM mygrate.source s +	JOIN information_schema.tables t USING(table_schema) +	LEFT OUTER JOIN information_schema.key_column_usage k USING(table_schema, table_name) +WHERE s.id = $1 +GROUP BY t.table_name diff --git a/lib/output/pq/sql/updateSourcePosition.sql b/lib/output/pq/sql/updateSourcePosition.sql new file mode 100644 index 0000000..3d3d665 --- /dev/null +++ b/lib/output/pq/sql/updateSourcePosition.sql @@ -0,0 +1,4 @@ +UPDATE mygrate.source SET +	filename = $1, +	position = $2 +WHERE id = $3  | 
