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
>>
>

Reply via email to