Attempting to migrate an ODB file with a TEXT table (a table definition linked to an external text file) are ignored.
The migration (assuming no other problems) runs to completion without error but the text table definitions are lost.
(example to follow, but will be an hour or so)
Sorry, I hit save to quickly.
Firebird does have support for external files also but the implementation is somewhat different from HSQLdb.
HSQLdb embedded in ODB files uses a restricted naming scheme for the external files and requires that the files be stored in either the same directory as the ODB file or a directory below that.
Firebird 3.0 also offers this restricted mode for their 'external file' support. Which would, it seems, allow the same restrictions as now.
The fb engine must be configured for this support using the configuration item:
ExternalFileAccess = (None, Full, Restricted)
For restricted mode a list of directories are supplied and relative naming is allowed. ExternalFileAccess = Restrict /some/directory
Two pieces of functionality available in HSQL are not available in fb.
1: The ability to create a text table from a SELECT INTO statement, in HSQL if you supply a file name and it does not exist the file is created with a structure to match the result set and the data copied into it. Under fb you can only do SELECT INTO a text table that has already been defined and that already exists on disk.
2: In HSQL you can change which file file a TEXT TABLE definition points to with a SET command. In FB the table definition must be dropped and recreated to do that.
I don't know what the current configuration setting is. Executing a CREATE TABLE command in the SQL window will run to completion and the table defintion is displayed, but no column information is saved, it is a table with zero columns. (I know, needs a different issue)
One more difference.
Under HSQL text tables may contain blob fields.
Under fb external files do not support blob fields.
Created attachment 141666 [details]
Extract the *.zip-file. Open the database. HSQLDB could read table, Migration doesen't work
I could confirm the buggy behavior.
Extract the attached *.zip-file.
Make a copy of the database in the same folder - the original database is unusable afterwords ...
Open the database.
Press "Yes" to migrate.
This error appears:
*unsuccessful metadata update
*ALTER TABLE Adressen failed
*SQL error code = -607
*Table Adressen does not exist
'ALTER TABLE "Adressen" ALTER COLUMN "ID" RESTART WITH 4'
Table "Adressen" hasn't been migrated.
Firebird doesn't support UPDATE and DELETE for text-tables. So it might be a better idea for some users to import text-tables to internal tables of Firebird. The complete migration of the attached example with the same functionality seems to be impossible to me when reading the documentation for Firebird 2.5.
Seems external tables are disabled for the internal Firebird database. When running
CREATE TABLE TEST_TXT
EXTERNAL FILE 'test.txt' (
message CHAR(100) );
There isn't created test.txt.
When I refresh the tables I could see TEST_TXT - but without any row and any column.
Trying to insert values through direct SQL shows:1:
*Use of external file at location /home/robby_daten/Lotest/test.txt is not allowed by server configuration
The one point: External files are not allowed.
The second: The database is at /home/robby/Downloads/... - Firebird searches for the file at the position I started my LO-testversion.
Now I try to delete the table in my database-file, but it is impossible through the GUI, only works in direct SQL (DROP TABLE TEST_TXT;)