| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
| |
Crash appears in in the autogen / permod and sqlite3 code generation. In the xml code generation the problem does not appear due to the protection against the NULL pointer.
Added protection on the other places as well
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Generated sqlite3 databases are roughly ready to support tools and projects that
require a significant fraction of what Doxygen collects.
output quality:
- collect primary info for most major entities and relationships
- fix causes of junk data in some columns (i.e. const * / QCString /
string / memory issues)
- convert decription field markup (mix of markdown, HTML, and Doxygen commands)
into XML
- eliminate duplicate/overlapping data (both rows and columns)
usability:
- abort if database already exists; prompt user to archive/delete it
- record Doxygen and sql schema versions so tools/clients can target/message
appropriately
- refine schema to support and simplify common queries
addon/doxypysql:
- adopt schema changes
- py3 compat
|
|
|
|
|
|
|
|
| |
check return value and in case of failures, print the errmsg.
to print the errmsg, the sqlite3* db is needed along with the
prepared statement, so add a db member to SqlStmt.
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
| |
|
|
|
|
|
|
|
| |
executing the multiple statements in the schema, we
also get the indeces created.
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
| |
|
| |
|
|
|
|
|
|
| |
some doxy typos and some misc. source typos
typos
some doxy typos and some misc. source typos
|
| |
|
| |
|
|
|
|
|
| |
Modified the memberdef table so that it includes all elements xmlgen
dups for a memberdef.
|
| |
|
|
|
|
| |
All refid are now INTEGERS pointing into the refids Table.
|
|
|
|
| |
Match the name used by XML.
|
| |
|
|
|
|
| |
improve performance
|
|
|
|
|
|
|
|
| |
Comments should help DB users that are unfamiliar to doxygen internals.
You can dump the schema with:
echo ".schema" | sqlite3 doxygen_sqlite3.db
|
|
|
|
|
| |
:const was binded only when al->constSpecifier was non-NULL.
Fix that by removing the test on al->constSpecifier
|
|
|
|
|
|
| |
Resolves a typo (dervied->derived) in sqlite prepared query var, which was preventing the derivedcompounddef table from populating.
Fixing this issue also exposed an underlying problem where junk data was showing up in two columns. Porting some if/else logic from the code that inserts to basecompounddef seems to have fixed this, as well.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The uniqueness of rows is maintained by first doing a select.
In case the item is not found, it's INSERTed.
This is done for files, refids, params and includes, data
that is not unique by itself, like cross-references for example.
In other words, you can have many memberdefs in one file,
but you can only have one cross-reference between two functions
since the reference location is unique.
So, when SELECTing files and refids, use the file name and refids
as primary key since that's the fastest way to do it.
Also 'OR REPLACE' not necessary in 'INSERT OR REPLACE'.
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* template and function arguments
* innernamespaces
* put sqlite3_stmt and the coresponding query in
a struct
* use has(Multi|One)LineInitializer instead of hardcoded value
when extracting references from initializers
* sqlite3_clear_bindings in step()
* getRow in step() should use different sqlite3_ functions
depending on wether is doing 'INSERT' or 'SELECT'
includes table uses only file IDs
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
|
| |
In table basecompoundref, use SQLITE_TRANSIENT for
base, derived, refid
|
|
|
|
|
|
|
|
|
|
| |
memberdef table changes:
* rename bstart to bodystart
* rename id_bfile to id_bodyfile
* add bodyend
* add {brief,detailed,inbody}description
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
|
|
|
| |
* call sqlite3_clear_bindings when step fails
* more miss-placed returns
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
|
|
| |
these were causing a major performance hit
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
|
|
|
| |
the code comes from the early stage of sqlite3gen, when xref keys were
kept as "file:line:column", not as function name.
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
|
|
|
|
|
|
| |
return-ing on a "step" failure, drops
any info that could be extracted further on.
instead, call sqlite3_clear_bindings()
statements fail and carry on
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
|
|
| |
this way, it's easier to see what's missing from sqlite3gen
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <groleo@gmail.com>
|
| |
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|
| |
|
|
|
|
| |
Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
|