> > The SQLite implementation may be a good choice as it is probably one > of the simplest ones, even if it doesn't really have any real > information_schema.
As i understand it, firebird doesn't have a "schema" in this sense either. > What you'll need first, is a way to > reverse-engineer schema information from your Firebird database. I > found this website here: > http://www.alberton.info/firebird_sql_meta_info.html > Yes, querying the system tables is pretty much the only way (CMIIW) of getting the internals of Firebird and Interbase. (Putting stuff here for future reference, just in case:) - http://www.firebirdfaq.org/faq329/ - http://www.firebirdfaq.org/faq174/ <http://www.firebirdfaq.org/faq329/> - There's a good writeup (with diagrams and everything!) here: http://www.firebirdsql.it/download/doc_download/362-the-firebird-system-tables-martijn-tonies- Another option is to implement #1636 > https://github.com/jOOQ/jOOQ/issues/1636 > > This would allow for arbitrary database dialects to be supported by > jooq-meta, and thus by jooq-codegen, if their JDBC drivers > sufficiently implement the JDBC DatabaseMetaData API (which is rarely > the case, unfortunately). > The default JDBC driver for firebird (Jaybird - http://www.firebirdsql.org/en/jdbc-driver/) has several classes that seems to do this (e.g. http://www.jarvana.com/jarvana/view/org/firebirdsql/jdbc/jaybird/2.1.6/jaybird-2.1.6-javadoc.jar!/org/firebirdsql/jdbc/FBDatabaseMetaData.html ) but i'm not familiar with them nor the API itself; I also couldn't find much info on whether jaybird fully support the API atm. This is definitely useful though. I suppose it would be interesting to retrofit a JDBC Metadata API solution after the basic implementation is done. Additional question: What's the significance of the "0" attached to the end of the method names? ... protected List<SchemaDefinition> getSchemata0() throws SQLException protected List<SequenceDefinition> getSequences0() throws SQLException protected List<TableDefinition> getTables0() throws SQLException protected List<RoutineDefinition> getRoutines0() throws SQLException protected List<PackageDefinition> getPackages0() throws SQLException protected List<EnumDefinition> getEnums0() throws SQLException protected List<UDTDefinition> getUDTs0() throws SQLException protected List<ArrayDefinition> getArrays0() throws SQLException .. Thanks, ts.
