KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
For kicks I'm writing a "schema documentation" tool that generates a description of the tables and relationships in a database. I'm currently shimming it to work with SQLite. I've managed to extract the names of all the tables in a SQLite database via a query on the sqlite_master table. For each table name, I then fire off a simple select * from <table name> query, then use the sqlite3_column_count() and sqlite3_column_name() APIs to collect the column names, which I further feed to sqlite3_table_column_metadata() to get additional info. Simple enough, right? The problem is that it only works for tables that are not empty. That is, the sqlite_column_*() APIs are only valid if sqlite_step() has returned SQLITE_ROW , which is not the case for empty tables. So the question is, how can I discover column names for empty tables? Or, more generally, is there a better way to get this type of schema info in SQLite? I feel like there must be another hidden sqlite_xxx table lurking somewhere containing this info, but so far have not been able to find it.
Tags (comma-separated)
Save Edits
Cancel