Has there been any further progress/issues here? Karl
On Mon, Jun 20, 2011 at 10:19 AM, Karl Wright <[email protected]> wrote: > Rather than change the database contract, which would have > far-reaching effects, is there any way to simply implement > getTableSchema to work properly with the abstraction? For example, > read the result of the DESCRIBE within the getTableSchema method and > translate it in whatever manner is needed. > > If this is a broader issue with the way the MySQL JDBC driver works > for all queries, then overriding getData() within DBInterfaceMySQL > would seem like the right way to go. > > Karl > > > On Mon, Jun 20, 2011 at 10:08 AM, [email protected] > <[email protected]> wrote: >> Hi, >> i'm working on MySql implementation of DBinferface, I have found a problem >> in >> the current implementation of getTableSchema. I don't know if the DESCRIBE is >> part of the SQL standard o not, but in MySql after the execution of the query >> the result is a "virtual table" populated with the data taken from the >> database >> metadata. >> The problem is that; the ResultSet contain the column name of the original >> table, but the findColum method on the "virtual table" with the original >> table >> name triggers one SQLException because there is no column with this name. We >> need to use the label. >> >> I have thought 2 solution >> >> 1) Modify the signature of org.apache.manifoldcf.core.database.findColumn >> from >> findColumn(ResultSet rs, String name) to findColumn(ResultSet rs, String >> columnName, String labelKey). The implementation is equals to the oldest one, >> but when you fail to retrieve the columnIndex you can try with the label, it >> it >> fails to return -1. >> >> 2) Make an override on org.apache.manifoldcf.core.database.getData in MySql >> implementation just doing copy and paste of the current code and change the >> findColumn implementation with the implementation described above. >> >> What do you think? >> >> Emanuele >> >
