From 8b7e8772da98c220da0330b6186b2dee9c3accb2 Mon Sep 17 00:00:00 2001 From: MarioE Date: Wed, 27 Nov 2013 22:00:47 -0500 Subject: [PATCH] Add float/double data types --- TShockAPI/DB/IQueryBuilder.cs | 52 +++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/TShockAPI/DB/IQueryBuilder.cs b/TShockAPI/DB/IQueryBuilder.cs index d65af44a..ac38c86f 100644 --- a/TShockAPI/DB/IQueryBuilder.cs +++ b/TShockAPI/DB/IQueryBuilder.cs @@ -45,8 +45,8 @@ namespace TShockAPI.DB table.Columns.Select( c => "'{0}' {1} {2} {3} {4} {5}".SFormat(c.Name, DbTypeToString(c.Type, c.Length), c.Primary ? "PRIMARY KEY" : "", - c.AutoIncrement ? "AUTOINCREMENT" : "", c.NotNull ? "NOT NULL" : "", - c.Unique ? "UNIQUE" : "")); + c.AutoIncrement ? "AUTOINCREMENT" : "", c.NotNull ? "NOT NULL" : "", + c.Unique ? "UNIQUE" : "")); return "CREATE TABLE {0} ({1})".SFormat(EscapeTableName(table.Name), string.Join(", ", columns)); } @@ -57,14 +57,16 @@ namespace TShockAPI.DB private static readonly Dictionary TypesAsStrings = new Dictionary { - {MySqlDbType.VarChar, "TEXT"}, - {MySqlDbType.String, "TEXT"}, - {MySqlDbType.Text, "TEXT"}, - {MySqlDbType.TinyText, "TEXT"}, - {MySqlDbType.MediumText, "TEXT"}, - {MySqlDbType.LongText, "TEXT"}, - {MySqlDbType.Int32, "INTEGER"}, - {MySqlDbType.Blob, "BLOB"}, + { MySqlDbType.VarChar, "TEXT" }, + { MySqlDbType.String, "TEXT" }, + { MySqlDbType.Text, "TEXT" }, + { MySqlDbType.TinyText, "TEXT" }, + { MySqlDbType.MediumText, "TEXT" }, + { MySqlDbType.LongText, "TEXT" }, + { MySqlDbType.Float, "REAL" }, + { MySqlDbType.Double, "REAL" }, + { MySqlDbType.Int32, "INTEGER" }, + { MySqlDbType.Blob, "BLOB" }, }; public string DbTypeToString(MySqlDbType type, int? length) @@ -72,7 +74,7 @@ namespace TShockAPI.DB string ret; if (TypesAsStrings.TryGetValue(type, out ret)) return ret; - throw new NotImplementedException(Enum.GetName(typeof (MySqlDbType), type)); + throw new NotImplementedException(Enum.GetName(typeof(MySqlDbType), type)); } protected override string EscapeTableName(string table) @@ -89,12 +91,12 @@ namespace TShockAPI.DB table.Columns.Select( c => "{0} {1} {2} {3} {4}".SFormat(c.Name, DbTypeToString(c.Type, c.Length), c.Primary ? "PRIMARY KEY" : "", - c.AutoIncrement ? "AUTO_INCREMENT" : "", c.NotNull ? "NOT NULL" : "")); + c.AutoIncrement ? "AUTO_INCREMENT" : "", c.NotNull ? "NOT NULL" : "")); var uniques = table.Columns.Where(c => c.Unique).Select(c => c.Name); return "CREATE TABLE {0} ({1} {2})".SFormat(EscapeTableName(table.Name), string.Join(", ", columns), - uniques.Count() > 0 - ? ", UNIQUE({0})".SFormat(string.Join(", ", uniques)) - : ""); + uniques.Count() > 0 + ? ", UNIQUE({0})".SFormat(string.Join(", ", uniques)) + : ""); } public override string RenameTable(string from, string to) @@ -104,21 +106,23 @@ namespace TShockAPI.DB private static readonly Dictionary TypesAsStrings = new Dictionary { - {MySqlDbType.VarChar, "VARCHAR"}, - {MySqlDbType.String, "CHAR"}, - {MySqlDbType.Text, "TEXT"}, - {MySqlDbType.TinyText, "TINYTEXT"}, - {MySqlDbType.MediumText, "MEDIUMTEXT"}, - {MySqlDbType.LongText, "LONGTEXT"}, - {MySqlDbType.Int32, "INT"}, + { MySqlDbType.VarChar, "VARCHAR" }, + { MySqlDbType.String, "CHAR" }, + { MySqlDbType.Text, "TEXT" }, + { MySqlDbType.TinyText, "TINYTEXT" }, + { MySqlDbType.MediumText, "MEDIUMTEXT" }, + { MySqlDbType.LongText, "LONGTEXT" }, + { MySqlDbType.Float, "FLOAT" }, + { MySqlDbType.Double, "DOUBLE" }, + { MySqlDbType.Int32, "INT" }, }; public string DbTypeToString(MySqlDbType type, int? length) { string ret; if (TypesAsStrings.TryGetValue(type, out ret)) - return ret + (length != null ? "({0})".SFormat((int) length) : ""); - throw new NotImplementedException(Enum.GetName(typeof (MySqlDbType), type)); + return ret + (length != null ? "({0})".SFormat((int)length) : ""); + throw new NotImplementedException(Enum.GetName(typeof(MySqlDbType), type)); } protected override string EscapeTableName(string table)