add the ShallRefreshViews() and related utility methods into VerticalDatUtils to determine if we should refresh views for a give set of conditions.
…e complains about absent PK info when there are tables with no changes
Change method signatures for IDataUtils ModifyColumn and AddColumn passing DataType instead of string data type to have more data type info available. Fix one unit test. Add helper functions for TableConf. Fix RefreshView TableName property logic, adding its unit test
Conflicts: TeslaSQL/DataUtils/MySQLDataUtils.cs TeslaSQL/TeslaSQL.csproj
The way the program flow is right now, the Master agent checks the master DB first, then the relay, then starts copying. Because of the way we have MySQL set up as a master, there is a point in the program where if it fails without completing, some data will never be copied over to the relay because it resets the time range to copy. I added a column in the MySQL CTIDtoTimestamp table that gets a 0 written to it when a line is inserted, then in the cleanup init table (the last method in the Master.Run() function) it writes a 1. I know this isn't great design, but until I have time to rewrite more of it I don't want to mess with the program flow and risk breaking our current working Tesla agents, so I'm leaving this one until a different sprint.
Even though the columns normally come back from information_schema in the correct order, we ran into a place where apparently they're not getting called in the correct order, so we're changing the query that MySQLDataUtils uses to get the fields and specifying to order by ORDINAL_POSITION.
In MySQL , there's a field called longtext that has the CHARACTER_MAXIMUM_SIZE defined as some huge number that's longer than an Int32 can handle, so we're changing the struct and a couple of methods to use Int64s and Nullable<Int64>s instead.
… so we handle incrementing the ctid manually now
…ds and pass that into the mysqldatautils
… of the notifier agent instead of after the email sends
…itten to email
…not explicitly set, so account for that in the mysql->mssql datacopy