You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DatabaseMetaData .getTables/.getColumns/.getProcedures/.getProcedureColumns uses FBDatabaseMetaData.Clause but .getIndexInfo not. These calls should behave the same, so getIndexInfo also should use FBDatabaseMetaData.Clause.
Thank You!
The text was updated successfully, but these errors were encountered:
This difference is intentional. The methods getTables, getColumns, getProcedures and getProcedureColumns take a **pattern** parameter for the names, meaning they accept like patterns, while getIndexInfo does not take a pattern, it accepts only the actual name of the table (not a pattern).
Check the javadoc of java.sql.DatabaseMetaData for this difference, specifically:
getIndexInfo: "table - a table name; must match the table name as it is stored in this database"
vs
getTables: "tableNamePattern - a table name pattern; must match the table name as it is stored in the database"
combined with the description of patterns in the class documentation:
"Some DatabaseMetaData methods take arguments that are String patterns. These arguments all have names such as fooPattern. Within a pattern String, "%" means match any substring of 0 or more characters, and "_" means match any one character. Only metadata entries matching the search pattern are returned. If a search pattern argument is set to null, that argument's criterion will be dropped from the search."
Submitted by: Attila Molnár (e_pluribus_unum)
Hi Mark!
DatabaseMetaData .getTables/.getColumns/.getProcedures/.getProcedureColumns uses FBDatabaseMetaData.Clause but .getIndexInfo not. These calls should behave the same, so getIndexInfo also should use FBDatabaseMetaData.Clause.
Thank You!
The text was updated successfully, but these errors were encountered: