* Another limitation, is that the entire class name (including packages) ! * cannot be longer than 32 characters (a limit forced by PostgreSQL). * * @param name Class name * @return PostgreSQL table name --- 577,583 ---- * * Because of this, a Class name may not have _ in the name.
* Another limitation, is that the entire class name (including packages) ! * cannot be longer than 64 characters (a limit forced by PostgreSQL). * * @param name Class name * @return PostgreSQL table name *************** *** 590,605 **** if (name.indexOf("_") > -1) throw new PSQLException("postgresql.serial.underscore"); ! // Postgres table names can only be 32 character long. ! // Reserve 1 char, so allow only up to 31 chars. // If the full class name with package is too long // then just use the class name. If the class name is // too long throw an exception. // ! if ( name.length() > 31 ) { name = name.substring(name.lastIndexOf(".") + 1); ! if ( name.length() > 31 ) throw new PSQLException("postgresql.serial.namelength", name, new Integer(name.length())); } return name.replace('.', '_'); --- 590,605 ---- if (name.indexOf("_") > -1) throw new PSQLException("postgresql.serial.underscore"); ! // Postgres table names can only be 64 character long. ! // Reserve 1 char, so allow only up to 63 chars. // If the full class name with package is too long // then just use the class name. If the class name is // too long throw an exception. // ! if ( name.length() > 63 ) { name = name.substring(name.lastIndexOf(".") + 1); ! if ( name.length() > 63 ) throw new PSQLException("postgresql.serial.namelength", name, new Integer(name.length())); } return name.replace('.', '_'); Index: src/test/regress/expected/name.out =================================================================== RCS file: /cvsroot/pgsql-server/src/test/regress/expected/name.out,v retrieving revision 1.5 diff -c -r1.5 name.out *** src/test/regress/expected/name.out 4 Jan 2000 16:19:34 -0000 1.5 --- src/test/regress/expected/name.out 13 Aug 2002 20:18:04 -0000 *************** *** 19,104 **** -- -- CREATE TABLE NAME_TBL(f1 name); ! INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP'); ! INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop'); INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); INSERT INTO NAME_TBL(f1) VALUES ('343f%2a'); INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf'); INSERT INTO NAME_TBL(f1) VALUES (''); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); SELECT '' AS seven, NAME_TBL.*; seven | f1 ! -------+--------------------------------- ! | ABCDEFGHIJKLMNOP ! | abcdefghijklmnop | asdfghjkl; | 343f%2a | d34aaasdf | ! | 1234567890ABCDEFGHIJKLMNOPQRSTU (7 rows) ! SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP'; six | f1 ! -----+--------------------------------- ! | abcdefghijklmnop | asdfghjkl; | 343f%2a | d34aaasdf | ! | 1234567890ABCDEFGHIJKLMNOPQRSTU ! (6 rows) ! SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP'; one | f1 ! -----+------------------ ! | ABCDEFGHIJKLMNOP ! (1 row) ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP'; three | f1 ! -------+--------------------------------- ! | 343f%2a | ! | 1234567890ABCDEFGHIJKLMNOPQRSTU ! (3 rows) ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP'; four | f1 ! ------+--------------------------------- ! | ABCDEFGHIJKLMNOP ! | 343f%2a | ! | 1234567890ABCDEFGHIJKLMNOPQRSTU ! (4 rows) ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP'; three | f1 ! -------+------------------ ! | abcdefghijklmnop | asdfghjkl; | d34aaasdf ! (3 rows) ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP'; four | f1 ! ------+------------------ ! | ABCDEFGHIJKLMNOP ! | abcdefghijklmnop | asdfghjkl; | d34aaasdf ! (4 rows) SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*'; seven | f1 ! -------+--------------------------------- ! | ABCDEFGHIJKLMNOP ! | abcdefghijklmnop | asdfghjkl; | 343f%2a | d34aaasdf | ! | 1234567890ABCDEFGHIJKLMNOPQRSTU (7 rows) SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*'; --- 19,104 ---- -- -- CREATE TABLE NAME_TBL(f1 name); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr'); INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); INSERT INTO NAME_TBL(f1) VALUES ('343f%2a'); INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf'); INSERT INTO NAME_TBL(f1) VALUES (''); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); SELECT '' AS seven, NAME_TBL.*; seven | f1 ! -------+----------------------------------------------------------------- ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! | 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq | asdfghjkl; | 343f%2a | d34aaasdf | ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ (7 rows) ! SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; six | f1 ! -----+----------------------------------------------------------------- ! | 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq | asdfghjkl; | 343f%2a | d34aaasdf | ! (5 rows) ! SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; one | f1 ! -----+----------------------------------------------------------------- ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! (2 rows) ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; three | f1 ! -------+---- | ! (1 row) ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; four | f1 ! ------+----------------------------------------------------------------- ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ | ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! (3 rows) ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; three | f1 ! -------+----------------------------------------------------------------- ! | 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq | asdfghjkl; + | 343f%2a | d34aaasdf ! (4 rows) ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; four | f1 ! ------+----------------------------------------------------------------- ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! | 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq | asdfghjkl; + | 343f%2a | d34aaasdf ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! (6 rows) SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*'; seven | f1 ! -------+----------------------------------------------------------------- ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! | 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq | asdfghjkl; | 343f%2a | d34aaasdf | ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ (7 rows) SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*'; *************** *** 108,118 **** SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]'; three | f1 ! -------+--------------------------------- | 343f%2a | d34aaasdf ! | 1234567890ABCDEFGHIJKLMNOPQRSTU ! (3 rows) SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*'; two | f1 --- 108,120 ---- SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]'; three | f1 ! -------+----------------------------------------------------------------- ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! | 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq | 343f%2a | d34aaasdf ! | 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ ! (5 rows) SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*'; two | f1 Index: src/test/regress/sql/name.sql =================================================================== RCS file: /cvsroot/pgsql-server/src/test/regress/sql/name.sql,v retrieving revision 1.5 diff -c -r1.5 name.sql *** src/test/regress/sql/name.sql 4 Jan 2000 16:21:02 -0000 1.5 --- src/test/regress/sql/name.sql 13 Aug 2002 20:18:04 -0000 *************** *** 14,22 **** CREATE TABLE NAME_TBL(f1 name); ! INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP'); ! INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop'); INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); --- 14,22 ---- CREATE TABLE NAME_TBL(f1 name); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqr'); INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); *************** *** 26,47 **** INSERT INTO NAME_TBL(f1) VALUES (''); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); SELECT '' AS seven, NAME_TBL.*; ! SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP'; ! SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP'; ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP'; ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP'; ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP'; ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP'; SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*'; --- 26,47 ---- INSERT INTO NAME_TBL(f1) VALUES (''); ! INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); SELECT '' AS seven, NAME_TBL.*; ! SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; ! SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; ! SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; ! SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR'; SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';