Open firebird-automations opened 14 years ago
Commented by: Smirnoff Serg (wildsery)
3. When "SELECT COMP1, COMP2 FROM TABLE1" then OK.
Commented by: Bert Herngreen (bertherngreen)
The block size exceeds implementation restriction means in this case that the maximum rowsize has been exceeded. 3 x 25000 is larger than the Maximum row size of 64k, 2 x 25000 isn't.
So "SELECT COMP1, COMP2 FROM TABLE1" is OK, but "SELECT COMP1, COMP2, COMP3 FROM TABLE1" then fails.
Commented by: Maxim Kuzmin (cybermax)
Bert Herngreen, i know the cause of the error. The idea is that Firebird allows to create such a situation, including unrestorable backup.
Commented by: @dyemanov
This is a regression introduced when fixing inability to restore computed fields based on other metadata. The solution was to restore computed fields as regular ones (just without data) and then alter them to be computed. Unfortunately, the record length check fires for the first table format because of that.
Submitted by: Maxim Kuzmin (cybermax)
Is related to CORE374
CREATE TABLE TABLE1 ( ID INTEGER, COMP1 COMPUTED BY (cast('' as varchar(25000))), COMP2 COMPUTED BY (cast('' as varchar(25000))), COMP3 COMPUTED BY (cast('' as varchar(25000))) );
1. When "SELECT * FROM TABLE1", get error: "Implementation limit exceeded. block size exceeds implementation restriction". 2. Backup executed succesfully. But when restore database, get error: gbak: committing metadata gbak: ERROR:unsuccessful metadata update gbak: ERROR: new record size of 75014 byte gbak: ERROR: TABLE TABLE1 gbak:Exiting before completion due to errors