Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 8dacd72

Browse files
committed
Modify GetColumnDefinition to take entire fieldDef
1 parent 6b9dad0 commit 8dacd72

File tree

11 files changed

+140
-281
lines changed

11 files changed

+140
-281
lines changed

src/ServiceStack.OrmLite.Firebird/FirebirdOrmLiteDialectProvider.cs

Lines changed: 20 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -303,18 +303,7 @@ public override string ToCreateTableStatement(Type tableType)
303303
if (sbColumns.Length != 0)
304304
sbColumns.Append(", \n ");
305305

306-
var columnDefinition = GetColumnDefinition(
307-
fieldDef.FieldName,
308-
fieldDef.ColumnType,
309-
fieldDef.IsPrimaryKey,
310-
fieldDef.AutoIncrement,
311-
fieldDef.IsNullable,
312-
fieldDef.IsRowVersion,
313-
fieldDef.FieldLength,
314-
fieldDef.Scale,
315-
GetDefaultValue(fieldDef),
316-
fieldDef.CustomFieldDefinition);
317-
306+
var columnDefinition = GetColumnDefinition(fieldDef);
318307
sbColumns.Append(columnDefinition);
319308

320309
if (fieldDef.ForeignKey == null || OrmLiteConfig.SkipForeignKeys)
@@ -362,16 +351,16 @@ public override List<string> ToCreateSequenceStatements(Type tableType)
362351
return gens;
363352
}
364353

365-
public override string GetColumnDefinition(string fieldName, Type fieldType,
366-
bool isPrimaryKey, bool autoIncrement, bool isNullable, bool isRowVersion,
367-
int? fieldLength, int? scale, string defaultValue, string customFieldDefinition)
354+
public override string GetColumnDefinition(FieldDefinition fieldDef)
368355
{
369-
var fieldDefinition = customFieldDefinition ?? GetColumnTypeDefinition(fieldType, fieldLength, scale);
356+
var fieldDefinition = fieldDef.CustomFieldDefinition
357+
?? GetColumnTypeDefinition(fieldDef.ColumnType, fieldDef.FieldLength, fieldDef.Scale);
370358

371359
var sql = StringBuilderCache.Allocate();
372-
sql.AppendFormat("{0} {1}", GetQuotedColumnName(fieldName), fieldDefinition);
360+
sql.AppendFormat("{0} {1}", GetQuotedColumnName(fieldDef.FieldName), fieldDefinition);
373361

374-
if (isRowVersion)
362+
var defaultValue = GetDefaultValue(fieldDef);
363+
if (fieldDef.IsRowVersion)
375364
{
376365
sql.AppendFormat(DefaultValueFormat, 1L);
377366
}
@@ -380,7 +369,7 @@ public override string GetColumnDefinition(string fieldName, Type fieldType,
380369
sql.AppendFormat(DefaultValueFormat, defaultValue);
381370
}
382371

383-
if (!isNullable)
372+
if (!fieldDef.IsNullable)
384373
{
385374
sql.Append(" NOT NULL");
386375
}
@@ -754,47 +743,22 @@ public override string GetForeignKeyOnUpdateClause(ForeignKeyConstraint foreignK
754743
#region DDL
755744
public override string ToAddColumnStatement(Type modelType, FieldDefinition fieldDef)
756745
{
757-
var column = GetColumnDefinition(fieldDef.FieldName,
758-
fieldDef.ColumnType,
759-
fieldDef.IsPrimaryKey,
760-
fieldDef.AutoIncrement,
761-
fieldDef.IsNullable,
762-
fieldDef.IsRowVersion,
763-
fieldDef.FieldLength,
764-
fieldDef.Scale,
765-
fieldDef.DefaultValue,
766-
fieldDef.CustomFieldDefinition);
767-
768-
return string.Format("ALTER TABLE {0} ADD {1} ;",
769-
GetQuotedTableName(GetModel(modelType)),
770-
column);
746+
var column = GetColumnDefinition(fieldDef);
747+
return $"ALTER TABLE {GetQuotedTableName(GetModel(modelType))} ADD {column} ;";
771748
}
772749

773750
public override string ToAlterColumnStatement(Type modelType, FieldDefinition fieldDef)
774751
{
775-
var column = GetColumnDefinition(fieldDef.FieldName,
776-
fieldDef.ColumnType,
777-
fieldDef.IsPrimaryKey,
778-
fieldDef.AutoIncrement,
779-
fieldDef.IsNullable,
780-
fieldDef.IsRowVersion,
781-
fieldDef.FieldLength,
782-
fieldDef.Scale,
783-
fieldDef.DefaultValue,
784-
fieldDef.CustomFieldDefinition);
785-
return string.Format("ALTER TABLE {0} ALTER {1} ;",
786-
GetQuotedTableName(GetModel(modelType)),
787-
column);
788-
}
789-
790-
public override string ToChangeColumnNameStatement(Type modelType,
791-
FieldDefinition fieldDef,
792-
string oldColumnName)
793-
{
794-
return string.Format("ALTER TABLE {0} ALTER {1} TO {2} ;",
795-
GetQuotedTableName(GetModel(modelType)),
796-
GetQuotedColumnName(oldColumnName),
797-
GetQuotedColumnName(fieldDef.FieldName));
752+
var column = GetColumnDefinition(fieldDef);
753+
return $"ALTER TABLE {GetQuotedTableName(GetModel(modelType))} ALTER {column} ;";
754+
}
755+
756+
public override string ToChangeColumnNameStatement(Type modelType, FieldDefinition fieldDef, string oldColumnName)
757+
{
758+
return string.Format("ALTER TABLE {0} ALTER {1} TO {2};",
759+
GetQuotedTableName(GetModel(modelType)),
760+
GetQuotedColumnName(oldColumnName),
761+
GetQuotedColumnName(fieldDef.FieldName));
798762
}
799763
#endregion DDL
800764

src/ServiceStack.OrmLite.MySql/MySqlDialectProvider.cs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -201,18 +201,7 @@ public string GetColumnDefinition(FieldDefinition fieldDef)
201201
return StringBuilderCache.ReturnAndFree(sql);
202202
}
203203

204-
var ret = base.GetColumnDefinition(
205-
fieldDef.FieldName,
206-
fieldDef.ColumnType,
207-
fieldDef.IsPrimaryKey,
208-
fieldDef.AutoIncrement,
209-
fieldDef.IsNullable,
210-
fieldDef.IsRowVersion,
211-
fieldDef.FieldLength,
212-
fieldDef.Scale,
213-
GetDefaultValue(fieldDef),
214-
fieldDef.CustomFieldDefinition);
215-
204+
var ret = base.GetColumnDefinition(fieldDef);
216205
if (fieldDef.IsRowVersion)
217206
return ret + " DEFAULT 1";
218207

src/ServiceStack.OrmLite.Oracle/OracleOrmLiteDialectProvider.cs

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -788,18 +788,7 @@ public override string ToCreateTableStatement(Type tableType)
788788

789789
if (sbColumns.Length != 0) sbColumns.Append(", \n ");
790790

791-
var columnDefinition = GetColumnDefinition(
792-
fieldDef.FieldName,
793-
fieldDef.ColumnType,
794-
fieldDef.IsPrimaryKey,
795-
fieldDef.AutoIncrement,
796-
fieldDef.IsNullable,
797-
fieldDef.IsRowVersion,
798-
fieldDef.FieldLength,
799-
fieldDef.Scale,
800-
GetDefaultValue(fieldDef),
801-
fieldDef.CustomFieldDefinition);
802-
791+
var columnDefinition = GetColumnDefinition(fieldDef);
803792
sbColumns.Append(columnDefinition);
804793

805794
if (fieldDef.ForeignKey == null || OrmLiteConfig.SkipForeignKeys)
@@ -894,16 +883,16 @@ public override List<string> SequenceList(Type tableType)
894883
return gens;
895884
}
896885

897-
public override string GetColumnDefinition(string fieldName, Type fieldType,
898-
bool isPrimaryKey, bool autoIncrement, bool isNullable, bool isRowVersion,
899-
int? fieldLength, int? scale, string defaultValue, string customFieldDefinition)
886+
public override string GetColumnDefinition(FieldDefinition fieldDef)
900887
{
901-
var fieldDefinition = customFieldDefinition ?? GetColumnTypeDefinition(fieldType, fieldLength, scale);
888+
var fieldDefinition = fieldDef.CustomFieldDefinition
889+
?? GetColumnTypeDefinition(fieldDef.FieldType, fieldDef.FieldLength, fieldDef.Scale);
902890

903891
var sql = StringBuilderCache.Allocate();
904-
sql.AppendFormat("{0} {1}", GetQuotedColumnName(fieldName), fieldDefinition);
892+
sql.AppendFormat("{0} {1}", GetQuotedColumnName(fieldDef.FieldName), fieldDefinition);
905893

906-
if (isRowVersion)
894+
var defaultValue = GetDefaultValue(fieldDef);
895+
if (fieldDef.IsRowVersion)
907896
{
908897
sql.AppendFormat(DefaultValueFormat, 1L);
909898
}
@@ -912,7 +901,7 @@ public override string GetColumnDefinition(string fieldName, Type fieldType,
912901
sql.AppendFormat(DefaultValueFormat, defaultValue);
913902
}
914903

915-
sql.Append(isNullable ? " NULL" : " NOT NULL");
904+
sql.Append(fieldDef.IsNullable ? " NULL" : " NOT NULL");
916905

917906
var definition = StringBuilderCache.ReturnAndFree(sql);
918907
return definition;

src/ServiceStack.OrmLite.PostgreSQL/PostgreSQLDialectProvider.cs

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -62,51 +62,41 @@ public PostgreSqlDialectProvider()
6262
};
6363
}
6464

65-
public override string GetColumnDefinition(
66-
string fieldName,
67-
Type fieldType,
68-
bool isPrimaryKey,
69-
bool autoIncrement,
70-
bool isNullable,
71-
bool isRowVersion,
72-
int? fieldLength,
73-
int? scale,
74-
string defaultValue,
75-
string customFieldDefinition)
65+
public override string GetColumnDefinition(FieldDefinition fieldDef)
7666
{
77-
if (isRowVersion)
67+
if (fieldDef.IsRowVersion)
7868
return null;
7969

8070
string fieldDefinition = null;
81-
if (customFieldDefinition != null)
71+
if (fieldDef.CustomFieldDefinition != null)
8272
{
83-
fieldDefinition = customFieldDefinition;
73+
fieldDefinition = fieldDef.CustomFieldDefinition;
8474
}
8575
else
8676
{
87-
if (autoIncrement)
77+
if (fieldDef.AutoIncrement)
8878
{
89-
if (fieldType == typeof(long))
79+
if (fieldDef.ColumnType == typeof(long))
9080
fieldDefinition = "bigserial";
91-
else if (fieldType == typeof(int))
81+
else if (fieldDef.ColumnType == typeof(int))
9282
fieldDefinition = "serial";
9383
}
9484
else
9585
{
96-
fieldDefinition = GetColumnTypeDefinition(fieldType, fieldLength, scale);
86+
fieldDefinition = GetColumnTypeDefinition(fieldDef.ColumnType, fieldDef.FieldLength, fieldDef.Scale);
9787
}
9888
}
9989

10090
var sql = StringBuilderCache.Allocate();
101-
sql.AppendFormat("{0} {1}", GetQuotedColumnName(fieldName), fieldDefinition);
91+
sql.AppendFormat("{0} {1}", GetQuotedColumnName(fieldDef.FieldName), fieldDefinition);
10292

103-
if (isPrimaryKey)
93+
if (fieldDef.IsPrimaryKey)
10494
{
10595
sql.Append(" PRIMARY KEY");
10696
}
10797
else
10898
{
109-
if (isNullable)
99+
if (fieldDef.IsNullable)
110100
{
111101
sql.Append(" NULL");
112102
}
@@ -116,6 +106,7 @@ public override string GetColumnDefinition(
116106
}
117107
}
118108

109+
var defaultValue = GetDefaultValue(fieldDef);
119110
if (!string.IsNullOrEmpty(defaultValue))
120111
{
121112
sql.AppendFormat(DefaultValueFormat, defaultValue);

src/ServiceStack.OrmLite.SqlServer/SqlServer2014OrmLiteDialectProvider.cs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,7 @@ public override string ToCreateTableStatement(Type tableType)
2424
if (fieldDef.CustomSelect != null)
2525
continue;
2626

27-
var columnDefinition = GetColumnDefinition(
28-
fieldDef.FieldName,
29-
fieldDef.ColumnType,
30-
fieldDef.IsPrimaryKey,
31-
fieldDef.AutoIncrement,
32-
fieldDef.IsNullable,
33-
fieldDef.IsRowVersion,
34-
fieldDef.FieldLength,
35-
fieldDef.Scale,
36-
GetDefaultValue(fieldDef),
37-
fieldDef.CustomFieldDefinition);
38-
27+
var columnDefinition = GetColumnDefinition(fieldDef);
3928
if (columnDefinition == null)
4029
continue;
4130

src/ServiceStack.OrmLite.SqlServer/SqlServerOrmLiteDialectProvider.cs

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -186,35 +186,15 @@ public override string GetDropForeignKeyConstraints(ModelDefinition modelDef)
186186

187187
public override string ToAddColumnStatement(Type modelType, FieldDefinition fieldDef)
188188
{
189-
var column = GetColumnDefinition(fieldDef.FieldName,
190-
fieldDef.ColumnType,
191-
fieldDef.IsPrimaryKey,
192-
fieldDef.AutoIncrement,
193-
fieldDef.IsNullable,
194-
fieldDef.IsRowVersion,
195-
fieldDef.FieldLength,
196-
fieldDef.Scale,
197-
fieldDef.DefaultValue,
198-
fieldDef.CustomFieldDefinition);
199-
189+
var column = GetColumnDefinition(fieldDef);
200190
var modelName = GetQuotedTableName(GetModel(modelType).ModelName);
201191

202192
return $"ALTER TABLE {modelName} ADD {column};";
203193
}
204194

205195
public override string ToAlterColumnStatement(Type modelType, FieldDefinition fieldDef)
206196
{
207-
var column = GetColumnDefinition(fieldDef.FieldName,
208-
fieldDef.ColumnType,
209-
fieldDef.IsPrimaryKey,
210-
fieldDef.AutoIncrement,
211-
fieldDef.IsNullable,
212-
fieldDef.IsRowVersion,
213-
fieldDef.FieldLength,
214-
fieldDef.Scale,
215-
fieldDef.DefaultValue,
216-
fieldDef.CustomFieldDefinition);
217-
197+
var column = GetColumnDefinition(fieldDef);
218198
var modelName = GetQuotedTableName(GetModel(modelType).ModelName);
219199

220200
return $"ALTER TABLE {modelName} ALTER COLUMN {column};";
@@ -223,21 +203,17 @@ public override string ToAlterColumnStatement(Type modelType, FieldDefinition fi
223203
public override string ToChangeColumnNameStatement(Type modelType, FieldDefinition fieldDef, string oldColumnName)
224204
{
225205
var modelName = NamingStrategy.GetTableName(GetModel(modelType).ModelName);
226-
227206
var objectName = $"{modelName}.{oldColumnName}";
228207

229208
return $"EXEC sp_rename {GetQuotedValue(objectName)}, {GetQuotedValue(fieldDef.FieldName)}, {GetQuotedValue("COLUMN")};";
230209
}
231210

232-
public override string GetColumnDefinition(string fieldName, Type fieldType, bool isPrimaryKey, bool autoIncrement,
233-
bool isNullable, bool isRowVersion, int? fieldLength, int? scale, string defaultValue, string customFieldDefinition)
211+
public override string GetColumnDefinition(FieldDefinition fieldDef)
234212
{
235-
if (isRowVersion)
236-
return $"{fieldName} rowversion NOT NULL";
237-
238-
var definition = base.GetColumnDefinition(fieldName, fieldType, isPrimaryKey, autoIncrement,
239-
isNullable, isRowVersion, fieldLength, scale, defaultValue, customFieldDefinition);
213+
if (fieldDef.IsRowVersion)
214+
return $"{fieldDef.FieldName} rowversion NOT NULL";
240215

216+
var definition = base.GetColumnDefinition(fieldDef);
241217
return definition;
242218
}
243219

src/ServiceStack.OrmLite.Sqlite/SqliteOrmLiteDialectProviderBase.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,13 @@ public override bool DoesColumnExist(IDbConnection db, string columnName, string
183183
return false;
184184
}
185185

186-
public override string GetColumnDefinition(string fieldName, Type fieldType, bool isPrimaryKey, bool autoIncrement,
187-
bool isNullable, bool isRowVersion, int? fieldLength, int? scale, string defaultValue, string customFieldDefinition)
186+
public override string GetColumnDefinition(FieldDefinition fieldDef)
188187
{
189188
// http://www.sqlite.org/lang_createtable.html#rowid
190-
var ret = base.GetColumnDefinition(fieldName, fieldType, isPrimaryKey, autoIncrement, isNullable, isRowVersion, fieldLength, scale, defaultValue, customFieldDefinition);
191-
if (isPrimaryKey)
189+
var ret = base.GetColumnDefinition(fieldDef);
190+
if (fieldDef.IsPrimaryKey)
192191
return ret.Replace(" BIGINT ", " INTEGER ");
193-
if (isRowVersion)
192+
if (fieldDef.IsRowVersion)
194193
return ret + " DEFAULT 1";
195194

196195
return ret;

0 commit comments

Comments
 (0)