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

Commit 0dbc363

Browse files
committed
Add MaxVarCharLength to all RDBMS string converters
1 parent b261cb0 commit 0dbc363

File tree

6 files changed

+16
-0
lines changed

6 files changed

+16
-0
lines changed

src/ServiceStack.OrmLite.MySql/Converters/MySqlStringConverters.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ namespace ServiceStack.OrmLite.MySql.Converters
66
public class MySqlStringConverter : StringConverter
77
{
88
public MySqlStringConverter() : base(255) {}
9+
10+
//https://stackoverflow.com/a/37721151/85785
11+
public override int MaxVarCharLength => UseUnicode ? 16383 : 21844;
912

1013
public override string MaxColumnDefinition => "LONGTEXT";
1114
}

src/ServiceStack.OrmLite.Oracle/Converters/OracleStringConverters.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ protected OracleStringConverter(int stringLength) : base(stringLength)
1414

1515
public override string MaxColumnDefinition => UseUnicode ? "NVARCHAR2(2000)" : "NVARCHAR2(4000)";
1616

17+
public override int MaxVarCharLength => UseUnicode ? 2000 : 4000;
18+
1719
public override string GetColumnDefinition(int? stringLength)
1820
{
1921
if (stringLength.GetValueOrDefault() == StringLengthAttribute.MaxText)
@@ -36,6 +38,8 @@ public Oracle12StringConverter() : base(32767) {}
3638

3739
public override string MaxColumnDefinition => UseUnicode ? "NVARCHAR2(16383)" : "NVARCHAR2(32767)";
3840

41+
public override int MaxVarCharLength => UseUnicode ? 16383 : 32767;
42+
3943
public override string GetColumnDefinition(int? stringLength)
4044
{
4145
if (stringLength.GetValueOrDefault() == StringLengthAttribute.MaxText)

src/ServiceStack.OrmLite.PostgreSQL/Converters/PostgreSqlStringConverters.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ public class PostgreSqlStringConverter : StringConverter
99
{
1010
public override string ColumnDefinition => "TEXT";
1111

12+
//https://dba.stackexchange.com/questions/189876/size-limit-of-character-varying-postgresql
13+
public override int MaxVarCharLength => UseUnicode ? 10485760 / 2 : 10485760;
14+
1215
public override string GetColumnDefinition(int? stringLength)
1316
{
1417
//PostgreSQL doesn't support NVARCHAR when UseUnicode = true so just use TEXT

src/ServiceStack.OrmLite.SqlServer/Converters/SqlServerStringConverters.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ namespace ServiceStack.OrmLite.SqlServer.Converters
99
public class SqlServerStringConverter : StringConverter
1010
{
1111
public override string MaxColumnDefinition => UseUnicode ? "NVARCHAR(MAX)" : "VARCHAR(MAX)";
12+
13+
public override int MaxVarCharLength => UseUnicode ? 4000 : 8000;
1214

1315
public override string GetColumnDefinition(int? stringLength)
1416
{

src/ServiceStack.OrmLite.Sqlite/Converters/SqliteStringConverters.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,7 @@ namespace ServiceStack.OrmLite.Sqlite.Converters
55
public class SqliteStringConverter : StringConverter
66
{
77
public override string MaxColumnDefinition => UseUnicode ? "NVARCHAR(1000000)" : "VARCHAR(1000000)";
8+
9+
public override int MaxVarCharLength => 1000000;
810
}
911
}

src/ServiceStack.OrmLite/Converters/StringConverter.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public StringConverter(int stringLength)
1717

1818
public int StringLength { get; set; }
1919

20+
public virtual int MaxVarCharLength => UseUnicode ? 8000 : 4000;
21+
2022
protected string maxColumnDefinition;
2123
public virtual string MaxColumnDefinition
2224
{

0 commit comments

Comments
 (0)