Board index » delphi » gbak fails when there are 2047 or more table columns

gbak fails when there are 2047 or more table columns


2007-03-22 07:52:47 AM
delphi261
gbak is failing to backup (-b) a simple database containing 1 table with
1 row and 2047 columns of char(1) data but gbak works fine on a similar
database if there are 2046 columns or less.
The interbase.log has error message:
gds__alloc: memory pool corrupted
when gbak -b is run on a db with 2047 or more columns.
Although gbak fails, databases with tables having more than 2046 columns
can be viewed OK with isql and also with API/XSQLDA.
If a single column is dropped in the 2047 column db, gbak works OK.
Is there a way to use gbak (-b) with 2047 or more table columns?
Interbase 7.5, Solaris 8 on Sun SPARC.
Databases created very simply with isql:
create database ...
create table TAB1 (col1 char(1))
alter table TAB1 add col2 char(1), add col2 char(1), ...
insert into TAB1 (col1,col2, ...) values ('a','b', ...)
Iain
 
 

Re:gbak fails when there are 2047 or more table columns

I don't know, but I suspect that if this is a limitation of gbak you
could backup your DB if you updated to IB 2007 and used DB dump instead
of gbak. The nice perk here is that it is *much* faster.
--
Craig Stuntz [TeamB] ?Vertex Systems Corp. ?Columbus, OH
Delphi/InterBase Weblog : blogs.teamb.com/craigstuntz
All the great TeamB service you've come to expect plus (New!)
Irish Tin Whistle tips: learningtowhistle.blogspot.com
 

Re:gbak fails when there are 2047 or more table columns

It's more than having just 2047 fields. I created a database with just
one table and one row. The table had 2047 integer fields. I tested
against InterBase 2007 and 7.51 and had no problem. I'd suggest you
submit your problem to QC and be sure to include a database that
demonstrates the problem. Note that the smaller the database the better.
Also, I serious wonder why you need 2047 fields in a table.
Iain Gardner writes:
Quote
gbak is failing to backup (-b) a simple database containing 1 table with
1 row and 2047 columns of char(1) data but gbak works fine on a similar
database if there are 2046 columns or less.

The interbase.log has error message:
gds__alloc: memory pool corrupted
when gbak -b is run on a db with 2047 or more columns.

Although gbak fails, databases with tables having more than 2046 columns
can be viewed OK with isql and also with API/XSQLDA.

If a single column is dropped in the 2047 column db, gbak works OK.

Is there a way to use gbak (-b) with 2047 or more table columns?

Interbase 7.5, Solaris 8 on Sun SPARC.

Databases created very simply with isql:
create database ...
create table TAB1 (col1 char(1))
alter table TAB1 add col2 char(1), add col2 char(1), ...
insert into TAB1 (col1,col2, ...) values ('a','b', ...)

Iain

--
CREATE DOMAIN NEW_COMPANY AS CHAR(8) DEFAULT 'CODEGEAR' CHECK (VALUE <>
'BORLAND') NOT NULL;