From: David A. <da...@ri...> - 2006-07-11 11:01:20
|
The FIDMapper classes have also caused me considerable aggravation. I had to subclass AutoIncrementFIDMapper for DB2 in part because each table name needs to be qualified by the schema name. Does anyone use AutoIncrementFIDMapper as it currently exists? If it changes to abstract, what will it break? It isn't clear to me why the MySQL problem illustrated below occurs. If you add ID 100 delete it and do a SELECT MAX(ID), shouldn't it again return 100? At 10:43 AM 7/10/2006, Michael Brasser wrote: >Hi David, > >Just wanted to mention that there was some discussion on the list >about a month ago about refactoring AutoIncrementFIDMapper. It >currently uses "order by" to return a value, but this is problematic >(I've included a problem case from the earlier discussion below). Not >sure if it would make sense to (or if you would even be willing to) >look at this issue while you are working with the FIDMapper code? > >Regards, >Michael > >On June 7, 2006, Michael Brasser wrote: > > > I also like your suggestion for making AutoIncrementFIDMapper > > abstract (with subclasses for specific datastores). One potential > > problem with the current "...order by..." solution is the following > > case (which I have verified in MySQL): > > > > a. We already have 99 records, IDs 1-99 > > b. Add a new record, automatically generated ID is 100 > > c. Delete the newly added record. > > d. Add another new record, automatically generated ID is 101, but > > "SELECT MAX" and "ORDER BY" would both cause the feature id mapper to > > return 100. > > > > A MySQL-specific autoincrement mapper could be implemented using > > "SELECT last_insert_id()". I'm not familiar with Oracle, but it looks > > like it also has sequences, and could be implemented using something > > like "seq_name.CURVAL". > >On Jul 6, 2006, at 3:28 AM, David Adler wrote: > > > I would like to implement this and would like to check if anyone > > has any > > objections. The interface should not change except for > > MaxIncFIDMapper > > which I believe incorrectly returns hardcoded Types.VARCHAR for the > > column > > type when it should return the type of the actual fid column. > > (Since it > > assumes that the next fid value is MAX(key_column), it doesn't make > > sense > > for this to be a VARCHAR column). > > > > The complete work item is included below. It is difficult to test > > whether > > this breaks anything in RDBMS datastores which subclass fidmapper > > classes > > as I don't have databases other than DB2 and PostGIS installed. > > > > *** Issue details below *** > > > > The description of MaxIncFIDMapper states that it is only valid for > > numeric > > column types yet the method getColumnSize is hard-coded to return > > Types.VARCHAR. It also is hard-coded to return a column size of 255. > > > > It should return the column type that was specified in the > > constructor. > > > > AbstractFIDMapper has almost no function and all the subclasses have > > considerable duplicated function. The duplicated function should be > > factored up. > > > > There are also things that make no sense but I don't know if > > anything will > > break if they are changed. The getColumnXXX(int col) methods handle > > index > > out of bounds by returning null, 0 and ArrayIndexOutOfBounds. They > > should > > probably all return ArrayIndexOutOfBounds but this may break other > > code > > that doesn't handle an exception. > > > > > > > > Using Tomcat but need to do more? Need to support web services, > > security? > > Get stuff done quickly with pre-integrated technology to make your > > job easier > > Download IBM WebSphere Application Server v.1.0.1 based on Apache > > Geronimo > > http://sel.as-us.falkag.net/sel? > > cmd=lnk&kid=120709&bid=263057&dat=121642 > > _______________________________________________ > > Geotools-devel mailing list > > Geo...@li... > > https://lists.sourceforge.net/lists/listinfo/geotools-devel > > > > > >------------------------------------------------------------------------- >Using Tomcat but need to do more? Need to support web services, security? >Get stuff done quickly with pre-integrated technology to make your job easier >Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >_______________________________________________ >Geotools-devel mailing list >Geo...@li... >https://lists.sourceforge.net/lists/listinfo/geotools-devel |