From: Fulvio <fb...@li...> - 2013-04-19 15:04:57
|
nl...@gn... wrote: > Hi, > I've found scid has a limit of 16.7 million (2^24) games per database, > is there an easy way to change this to 32bit or something? > > Easy: i don't think so. However the code already use a 32bit uint as gameNumberT. I looked at src/index.h: const gameNumberT MAX_GAMES = 16777214; // max. number of games is 2^(3*8)-1-1, // The "2^(3*8)-1" as si4 only uses three bytes to store this integer, From the comment it seems that the three byte is a limit introduced with the 4th database version of Scid. The limit is enforced in Index::WriteHeader(): FilePtr->WriteThreeBytes (Header.numGames); and it's easy to change, but will make scid incompatible with older version. Also, i suppose there is a reason why the limit was introduced that i do not know. Hope it helps, and if you decide to tinker with the code, please report back your conclusions to the community. Bye, Fulvio |