From: Robert M. <rob...@gm...> - 2006-10-27 23:04:09
|
On 10/27/06, Lars Heill <Lar...@su...> wrote: > > Have a nice weekend - and thanks for chasing this! > Lars, I'm downloading HADB for linux now. However, I found the real problem. It has to do with the fact that everything that comes back from HADB is right-padded to be 32-chars. So, when we ask DatabaseMetaData for table in the schema using DatabaseMetaData.getTables, it tells us that the type of the table is "TABLE " And when we look for whether or not we cache these objects in SchemaInfoCache.containsType(String[] types, String type) we do the following: if(type.equals(types[i])) // line: 211 And types[] contains "TABLE" so we never find it, and skip over it in SchemaInfoCache.getITableInfos at line 921: if(false == SchemaInfoCache.containsType(types, iTableInfo.getType())) { continue; } Not sure what that code is trying to do - but I didn't write it so that's not really saying much. In any case, it seems to me that your database (HADB) is playing tricks on us with all that right-padding. I changed line 211 above to look like: if(type.trim().equalsIgnoreCase(types[i])) and I see tables now. So I'll check that into CVS and you can check out the next snapshot when you have time and let me know if that solves the problem. There was one other user (Bernard) who noted this same symptom with MS-SQLServer, so CC'ing the list and I'm hopeful that this addresses the problem there as well. Rob |