Fails to import solution into 3.5.1 when made in 3.5

This may or may not be Servoy import code defect.
I exported a solution made in 3.5 2007 August 20. I also did a MySQL backup of the client data database the same day. I went to client and created the MySQL from scratch, and restored the data ok. I set up the Servoy developer version 3.5 ok on client machine. I successfully imported the solution ok. It is still running ok (it is a demo).

At the office I re-installed Servoy 3.5.1 from scratch, but used MySQL as the servoy_repository - this is ok. I restored the same MySQL databse from the backup ok.

I then try to restore the solution and get this error:

com.servoy.j2db.persistence.RepositoryException: com.servoy.j2db.persistence.RepositoryException: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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
Reserved words used as table or column names: tables: call; columns: type system int type;

Yes I know about the reserved words used as table/column names. But should this cause the failure?

I was hoping to try to re-install Servoy 3.5 in an attempt to duplicate the original but I find no way to download from Servoy site.

I examined the solution that I exported (by changing the name to .jar from .servoy and opening with winzip) and found that the version is:

<version_info>
<xml_version>12</xml_version>
<repository_version>30</repository_version>
<servoy_version>3.5</servoy_version>
<servoy_build>513</servoy_build>
</version_info>

When I examine the database_info.xml in the solution I find the schema is correct.

I am trying to search for log files to help me but I find none in the MySQL logs, nor any in the Servoy logs.

Is there a way to extract the exported solution from its jar file version and “recreate” it??

Regards,
Tom Parry

Yes I know about the reserved words used as table/column names. But should this cause the failure?

I think so but I also think that you rowsize is an important issue.
From the little information you give about the data itself I extract that you created the tables/columns yourself so you probably ‘forgot’ to take care potential compatibility issues.

Is there a way to extract the exported solution from its jar file version and “recreate” it?

I don’t think anybody succeeded doing this.

Marcel,
From the little info on the Servoy exception message I cannot figure out which table it is referring to in order to be able to narrow down the problem.
I can open all the tables in MYSQL without a problem. So it must be in the definition of the database_info.xml that there might be some strange mis-interpretation of the column spec.

From what I can see there is an extraneous table included that could give this error:
example_data (maybe I mistakenly include this servoy_crm example_data in my export?). This database I do not use in my solution. Perhaps the table user_preferences having a column ‘preference_blob’ of length 2147483647 would be fine in Sybase (where it was originally) but not in MySQL.

SO If I had the databse/table name in the excpetion perhaps that would help!
Also if I could delete this extraneous database/table then perhaps it would load ok. But I see there is a CRC so that would be a problem…

Also if I could delete this extraneous database/table then perhaps it would load ok. But I see there is a CRC so that would be a problem

I would not go that path anyway.
It does not solve the issue.

There must be a table/column that causes the issue.
Are you sure there is not any reference in your calculations?

Tom,

In the unzipped .servoy-file there is a file called export/database_info.xml describing all the table definitions in the solution.
Servoy tries to create all tables listed in there that do not already exist, it also tries to add all non-existing columns.

Apparently there is a problem in the mysql-dialect in servoy 3.5.1 that the table cannot be created.
If you create the table including all listed columns in the database before importing the solution, servoy will not try to change the table and import will probably succeed.

You can create the table using either the developer dataprovider dialog or create the table directly in the database (in that case restart developer before importing the solution).

Please create a case in our support system and attach your solution that won’t import so we can fix this issue.
Include the db version info as well.

see http://forum.servoy.com/viewtopic.php?t=6789

Rob

I did try creating the MySQL database before importing - no change. If my theory is correct that the example_data is attempted to be created in MySQL instead of Sybase (where it came from in the Servoy sample solutions) then perhaps this could be checked for mixed database servers?. I filed a case as suggested.

This issue is fixed in Servoy 3.5.2.

Rob

Thanks for investigating, confirming the defect and fixing it.
Is there any schedule for the next update?