Geoff hendrey wrote:
On the advice I got back from my last email, I tried to use getIdentfierQuoteString 
(which returns ").


So I tried escaping the undescore like this:
m.getColumns(null, null, tableName,  "%\"_\"XXX"); //find columns ending in _XXX

but that doesn't work, nor does is really seem to make any sense. I really need 
the searchEscapeString. Without it, how can anyone use getColumns? It's *very* 
common for table names to have an underscore, but unless I can escape the 
underscore, it will be treated as a wildcard for any single character.

I must be missing something.

Hello Geoff,

Actually, I don't think there is any support for using an escape character in the metadata calls. DatabaseMetaData.getSearchStringEscape will always return the empty string, and the queries used do not have an ESCAPE-clause.

I quickly hacked the code by adding the ESCAPE-clause, and then I were able to make it work by using "%\\_%" as the pattern. By specifying another character, you can get away with things like "%#_%". A comment in the code suggests that Derby does not have a default escape character, but I don't know anything about that.


Unless there already is a Jira for this, maybe you could add a request for it?
(https://issues.apache.org/jira/browse/DERBY)
Adding the functionality is easy, but I have not considered any update issues and how to change or "disable" the escape character if that is needed.


A workaround would be to get a set of columns with getColumns, then do the filtering you can't do in the database because of the escape problems in your application code...



regards,
--
Kristian


-geoff



Reply via email to