On Mon, 25 May 2015 09:21:34 -0600, dmp <danap@ttc-cmc.net> wrote: > dmp wrote: >> dmp wrote: >>> Mansour Al Akeel wrote: ... >>>> We have: >>>> >>>> IS_GENERATEDCOLUMN String => Indicates whether this is a generated >>>> column >>>> >>>> YES --- if this a generated column >>>> NO --- if this not a generated column >>>> empty string --- if it cannot be determined whether this is a >>>> generated column >>>> >>>> >>>> My questions is, is this a bug ? if not, how can I obtain this >>>> information about a column (if it's generated or not) ? >>>> >> Hello, >> >> I'm sorry, after testing, currently the given name IS_GENERATEDCOLUMN is >> given the error as you describe. The index of 23 can be used to obtain >> the >> results desired. >> >> Did you search the mailing list for a report or issue on this? > > Sorry for an earlier error. > > rs = dbMetaData.getColumns(tableMetaData.getCatalogName(1), > tableMetaData.getSchemaName(1), > tableMetaData.getTableName(1), "%"); > > On further check, > org.postgresql.Abstractjdbc2DatabaseMetaData.getColumns() does > not implement the named Field IS_GENERATEDCOLUMN. As indicated using an > index > of 23 instead of the named Field should work.
Index 23 is IS_AUTOINCREMENT which does not have the same meaning as IS_GENERATEDCOLUMN (index 24) which was added to the JDBC specification in Java 7 / JDBC 4.1. The former is only for one specific column type: auto increment (eg serial), while the latter is for all calculated or otherwise generated columns. Mark