Row size too large. The maximum row size for the used table

Posted by Community Admin on 04-Aug-2018 14:19

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.

All Replies

Posted by Community Admin on 24-Nov-2011 00:00

Hey Sitefinity Team,

I'm running SF4.3.1885.0 with MySQL. I had many errors with SF4.2, for example when I wanted to open blogs in the backend, but now I upgraded and it's even worse. Now just calling Default.aspx gives me the following error. I'm really frustrated at the moment. I can't go back to SF4.2 because downgrade is not available.

Sorry for my question, but what the heck are you doing in the database that you can run into that error? Altering tables, adding colums? Sounds not like a good idea.

Server Error in '/' Application.

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: Telerik.OpenAccess.RT.sql.SQLException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SQLException: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs]
   Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.executeUpdate(String sql) +190
   Telerik.OpenAccess.RT.Adonet2Generic.Impl.StatementImp.execute(String sql) +5
   OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlScript(String script, Connection con, SqlDriver sqlDriver, Boolean noShredder) +310

[OpenAccessException: SQL exception on 'ALTER TABLE `sf_blog_posts` ADD COLUMN `summary_en` NVARCHAR(4000) NULL' : Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs]
   Telerik.OpenAccess.RT.ExceptionWrapper.Throw() +7
   OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.throwBuildException(String str, Exception e) +60
   OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.ExecuteSqlScript(String script, Connection con, SqlDriver sqlDriver, Boolean noShredder) +365
   OpenAccessRuntime.DataObjects.tools.ant.DataObjectsTaskBase.runScript(String script) +111
   OpenAccessRuntime.DataObjects.tools.ant.ExecuteScriptTask.execute() +288

[OpenAccessException: Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE `sf_blog_posts` ADD COLUMN `summary_en` NVARCHAR(4000) NULL' : Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs]
   Telerik.Sitefinity.Data.OA.OpenAccessConnection.UpgradeDatabase(Database database) +132
   Telerik.Sitefinity.Data.OA.OpenAccessConnection.UpdateMetadata(MetadataSource metadataSource, String moduleName, List`1 dynamicTypesToRegister, IOpenAccessMetadataProvider provider) +2802

[Exception: Unable to upgrade database schema metadataSource provided by 'Telerik.Sitefinity.Modules.Libraries.Data.OpenAccessLibrariesProvider': Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE `sf_blog_posts` ADD COLUMN `summary_en` NVARCHAR(4000) NULL' : Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs]
   DynamicModule.ns.Wrapped_OpenAccessLibrariesProvider_12202b05611d4be5beb584214f22e283.Initialize(String providerName, NameValueCollection config, Type managerType) +198
   Telerik.Sitefinity.Data.ManagerBase`1.InstantiateProvider(IDataProviderSettings providerSettings, Type providerType, ExceptionPolicyName policy, ManagerBase`1 manager) +1357
   Telerik.Sitefinity.Data.ManagerBase`1.InstantiateProvider(IDataProviderSettings providerSettings, ExceptionPolicyName policy, ManagerBase`1 manager) +63
   Telerik.Sitefinity.Data.ManagerBase`1.SetProvider(String providerName, String transactionName) +297
   Telerik.Sitefinity.Data.ManagerBase`1..ctor(String providerName, String transactionName) +123
   BuildUp_Telerik.Sitefinity.Modules.Libraries.LibrariesManager(IBuilderContext ) +179
   Telerik.Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp(IBuilderContext context) +12
   Telerik.Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext context) +195
   Telerik.Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context) +190
   Telerik.Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable`1 resolverOverrides) +163

[ResolutionFailedException: Resolution of the dependency failed, type = "Telerik.Sitefinity.Modules.Libraries.LibrariesManager", name = "OpenAccessDataProvider".
Exception occurred while: Calling constructor Telerik.Sitefinity.Modules.Libraries.LibrariesManager(System.String providerName).
Exception is: Exception - Unable to upgrade database schema metadataSource provided by 'Telerik.Sitefinity.Modules.Libraries.Data.OpenAccessLibrariesProvider': Telerik.OpenAccess.OpenAccessException: SQL exception on 'ALTER TABLE `sf_blog_posts` ADD COLUMN `summary_en` NVARCHAR(4000) NULL' : Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
-----------------------------------------------
At the time of the exception, the container was:

  Resolving Telerik.Sitefinity.Modules.Libraries.LibrariesManager,OpenAccessDataProvider
  Calling constructor Telerik.Sitefinity.Modules.Libraries.LibrariesManager(System.String providerName)
]
   Telerik.Sitefinity.Data.ManagerBase.GetManager(Type managerType, String providerName) +130
   Telerik.Sitefinity.Modules.Libraries.LibrariesNodeFilter.IsNodeAccessPrevented(PageSiteNode pageNode) +130
   Telerik.Sitefinity.Web.SiteMapBase.IsAccessibleToUserInternal(SiteMapNode node, SitefinityPrincipal user) +405
   Telerik.Sitefinity.Web.NodeFiltersCache.IsAccessible(SiteMapBase sitemap, SiteMapNode node, SitefinityPrincipal user) +228
   Telerik.Sitefinity.Web.SiteMapBase.IsAccessibleToUser(HttpContext context, SiteMapNode node) +148
   Telerik.Sitefinity.Web.SitefinitySiteMap.IsAccessibleToUser(HttpContext context, SiteMapNode node) +19
   System.Web.SiteMapNode.IsAccessibleToUser(HttpContext context) +17
   Telerik.Sitefinity.Web.SitefinityRoute.CheckSecurity(HttpContextBase httpContext, PageSiteNode node) +40
   Telerik.Sitefinity.Web.SitefinityRoute.GetRouteData(HttpContextBase httpContext) +396
   System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +287
   System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +60
   System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +86
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.237

Posted by Community Admin on 24-Nov-2011 00:00

Some further investigation shows with help of MySQL Administrator that you add multiple colums for each language to different tables. I have localizations for en, it, fr, es, de. All the varchars with size up to 4000 characters destroys the MySQL border for row size. Especially when UTF-8 is used so that the space you need is multiplied with 3.

First of all, it is not a very good way to alter tables and add so many colums for each language, but that is okay if it works. In my case it will never work I guess. Maybe I have to port everything to MSSQL-Server.

I'm frustrated about this issue because it makes it impossible to use Sitefinity with MySQL and many localizations. You should overthink your database schema. Can you tell me that it would work with mssql?

Posted by Community Admin on 29-Nov-2011 00:00

Hi Carsten Koster,

Yes, we know about this issue, which is mentioned in the latest release notes:

MySQL: Multilingual is not supported

Unfortunately, the fix for this problem is complicated, it is related to reorganizing of the database layer regarding multilingual. We are considering to redesign this, by moving different languages in different tables instead of columns. However, because of the complication and regression risk of the change, it is still not planned.

With MS SQL server there is no such limitation.

Best wishes,
Vlad
the Telerik team

Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 01-Dec-2011 00:00

Hi Vlad,

thanks for the answer. I will try to migrate the MySQL db to MSSQL.

Bye

This thread is closed