Martin, Extending the size of the exactTextTypecolumn from 255 to 1024 characters unfortunately breaks compatibility with MySQL < 5.0.3: http://dev.mysql.com/doc/refman/5.1/en/binary-varbinary.html states: "The allowable maximum length is the same for BINARY and VARBINARY as it is for CHAR and VARCHAR, except that the length for BINARY and VARBINARY is a length in bytes rather than in characters." http://dev.mysql.com/doc/refman/5.0/en/char.html continues: "Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and later versions. (The maximum effective length of a VARCHAR in MySQL 5.0.3 and later is determined by the maximum row size and the character set used. The maximum length overall is 65,532 bytes.)" You could possibly use a BLOB instead, but creating indexes on a BLOB requires extra effort: http://dev.mysql.com/doc/refman/5.1/en/blob.html Andrew On 05/08/06, Martin Aumüller wrote: > SVN commit 570151 by aumuell: > > - make comment field a long text to accomodate the full length of id3v2 comments > - extend exact text default size to 1024 characters as this is the PATH_MAX limit on linux systems > BUG: 130585 > CCBUG: 119720 > > > M +1 -0 ChangeLog > M +1 -1 src/collectiondb.cpp > M +2 -2 src/collectiondb.h > > > --- trunk/extragear/multimedia/amarok/ChangeLog #570150:570151 > @@ -34,6 +34,7 @@ > to iTunes, Firefly Media Server etc. (BR 100513) > > CHANGES: > + * Lift size limit on pathnames and comments in collection db. (BR 130585) > * Generic mediadevice plugin is improved. Users can configure supported > filetypes and get more control over the location of songs and podcasts on disk > (Patch by eute). > --- trunk/extragear/multimedia/amarok/src/collectiondb.cpp #570150:570151 > @@ -561,7 +561,7 @@ > "genre INTEGER," > "title " + textColumnType() + "," > "year INTEGER," > - "comment " + textColumnType() + "," > + "comment " + longTextColumnType() + "," > "track NUMERIC(4)," > "discnumber INTEGER," > "bitrate INTEGER," > --- trunk/extragear/multimedia/amarok/src/collectiondb.h #570150:570151 > @@ -247,7 +247,7 @@ > //exactTextColumnType should be used for strings that must be stored exactly, such > //as URLs (necessary for holding control chars etc. if present in URL), except for > //trailing spaces. Comparisions should always be done case-sensitively. > - QString exactTextColumnType( int length=255 ) const { if ( getDbConnectionType() == DbConnection::mysql ) return QString( "VARBINARY(%1)" ).arg( length ); else return textColumnType( length ); } > + QString exactTextColumnType( int length=1024 ) const { if ( getDbConnectionType() == DbConnection::mysql ) return QString( "VARBINARY(%1)" ).arg( length ); else return textColumnType( length ); } > // We might consider using LONGTEXT type, as some lyrics could be VERY long..??? > QString longTextColumnType() const { if ( getDbConnectionType() == DbConnection::postgresql ) return "TEXT"; else return "TEXT"; } > QString randomFunc() const { if ( getDbConnectionType() == DbConnection::postgresql ) return "random()"; else return "RAND()"; } > @@ -485,7 +485,7 @@ > private: > //bump DATABASE_VERSION whenever changes to the table structure are made. > // This erases tags, album, artist, composer, genre, year, images, embed, directory and related_artists tables. > - static const int DATABASE_VERSION = 32; > + static const int DATABASE_VERSION = 33; > // Persistent Tables hold data that is somehow valuable to the user, and can't be erased when rescaning. > // When bumping this, write code to convert the data! > static const int DATABASE_PERSISTENT_TABLES_VERSION = 14; >