Hi @chris49,
I did some digging in the code, and here’s what I found.
These markers are added by Acumatica and used as metadata for Acumatica when reading data; it helps translate the native MySql data types to the internal types used by Acumatica and to ensure consistent behaviour between SQL Server and MySql.
A good example is the NoteID field -- in SQL Server, the uniqueidentifier type is used, but in MySql, it is a char(36). To ensure this gets parsed as a GUID the marker is used by Acumatica.
The different markers used can be found in the PX.DbServices.Points.MySql.MySqlMarkers class, contained in PX.DbServices.dll:
namespace PX.DbServices.Points.MySql
{
public static class MySqlMarkers
{
public static readonly bool UseBinary16ForGuid = false;
public const string SmallDateTime = "sy_smalldate";
public const string DateTime2 = "sy_datetime2";
public const string Boolean = "sy_boolean";
public const string Guid = "sy_guid";
public const string defaultMaskNoAccess = "df_Mask00";
public const string defaultMaskReadOnly = "df_MaskAA";
public const string defaultMaskReadWrite = "df_MaskFF";
public const string SpecialIndex = "AUTOINCR_Special";
public const string TriggerStart = "TriggerStart";
public const string IndexForForeignKey = "si_forFK";
public const string IndexForUpdate = "si_tempUpd";
public const string IndexForIdentity = "si_autoincr";
public const string GuidBeforeTrigger = "'00112233-4455-6677-8899-AABBCCDDEEFF'";
}
}