MySql.Data.MySqlClient.SchemaProvider.GetDataSourceInformation C# (CSharp) Method

GetDataSourceInformation() private method

private GetDataSourceInformation ( ) : DataTable
return System.Data.DataTable
        private DataTable GetDataSourceInformation()
        {
#if CF
            throw new NotSupportedException();
#else
            DataTable dt = new DataTable("DataSourceInformation");
            dt.Columns.Add("CompositeIdentifierSeparatorPattern", typeof (string));
            dt.Columns.Add("DataSourceProductName", typeof (string));
            dt.Columns.Add("DataSourceProductVersion", typeof (string));
            dt.Columns.Add("DataSourceProductVersionNormalized", typeof (string));
            dt.Columns.Add("GroupByBehavior", typeof (GroupByBehavior));
            dt.Columns.Add("IdentifierPattern", typeof (string));
            dt.Columns.Add("IdentifierCase", typeof (IdentifierCase));
            dt.Columns.Add("OrderByColumnsInSelect", typeof (bool));
            dt.Columns.Add("ParameterMarkerFormat", typeof (string));
            dt.Columns.Add("ParameterMarkerPattern", typeof (string));
            dt.Columns.Add("ParameterNameMaxLength", typeof (int));
            dt.Columns.Add("ParameterNamePattern", typeof (string));
            dt.Columns.Add("QuotedIdentifierPattern", typeof (string));
            dt.Columns.Add("QuotedIdentifierCase", typeof (IdentifierCase));
            dt.Columns.Add("StatementSeparatorPattern", typeof (string));
            dt.Columns.Add("StringLiteralPattern", typeof (string));
            dt.Columns.Add("SupportedJoinOperators", typeof (SupportedJoinOperators));

            DBVersion v = connection.driver.Version;
            string ver = String.Format("{0:0}.{1:0}.{2:0}",
                                       v.Major, v.Minor, v.Build);

            DataRow row = dt.NewRow();
            row["CompositeIdentifierSeparatorPattern"] = "\\.";
            row["DataSourceProductName"] = "MySQL";
            row["DataSourceProductVersion"] = connection.ServerVersion;
            row["DataSourceProductVersionNormalized"] = ver;
            row["GroupByBehavior"] = GroupByBehavior.Unrelated;
            row["IdentifierPattern"] =
                @"(^\`\p{Lo}\p{Lu}\p{Ll}_@#][\p{Lo}\p{Lu}\p{Ll}\p{Nd}@$#_]*$)|(^\`[^\`\0]|\`\`+\`$)|(^\"" + [^\""\0]|\""\""+\""$)";
            row["IdentifierCase"] = IdentifierCase.Insensitive;
            row["OrderByColumnsInSelect"] = false;
            row["ParameterMarkerFormat"] = "{0}";
            row["ParameterMarkerPattern"] = "(@[A-Za-z0-9_$#]*)";
            row["ParameterNameMaxLength"] = 128;
            row["ParameterNamePattern"] =
                @"^[\p{Lo}\p{Lu}\p{Ll}\p{Lm}_@#][\p{Lo}\p{Lu}\p{Ll}\p{Lm}\p{Nd}\uff3f_@#\$]*(?=\s+|$)";
            row["QuotedIdentifierPattern"] = @"(([^\`]|\`\`)*)";
            row["QuotedIdentifierCase"] = IdentifierCase.Sensitive;
            row["StatementSeparatorPattern"] = ";";
            row["StringLiteralPattern"] = "'(([^']|'')*)'";
            row["SupportedJoinOperators"] = 15;
            dt.Rows.Add(row);

            return dt;
#endif
        }