<div dir="ltr">In core/libs/database, the README file give some description for each sub-directories :<div><br></div><div><a href="https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/libs/database/README">https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/libs/database/README</a><br></div><div><br></div><div>As i said previously, DK use 3 Databases (core, thumbs, faces), with 3 differents schemas. For these 3 databases, we have 3 backends :</div><div><br></div><div>1/ sqlite, </div><div>2/ local mysql server</div><div>3/ remote Mysql</div><div><br></div><div>For the 2/, we have a dedicated implementation outside core :</div><div><br></div><div><a href="https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/show/databaseserver">https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/show/databaseserver</a><br></div><div><br></div><div>For this project the most important parts will be /core/libs/database/engine which will includes all parent classes for 3 DK databases (core, thumbs, faces). All of these are located repectively in core/libs/database/coredb, core/libs/database/thumbsdb, and core/libs/facesengine/facedb. This last one is outside core/libs/database for compilation reasons due to OpenCV dependency.</div><div><br></div><div>For each databases (core, thumbs, faces), the /core/libs/database/engine provide classes to :</div><div><br></div><div>- access through a singleton : facesdbaccess.h for ex.</div><div>- a wrapper to Database type (sqlite, local mysql, remote mysql) : facesbackend.h for ex. This one will init the database in memory accordingly with settings. This one load the right schema. Most of implementation are give by parent classes in core/libs/database/engine<br></div><div>- a schema updater to host porting rules from old to new schema versions : facesdbschemaupdater.h<br></div><div>- a specific implementation dedicated to host relevant tasks : facesdb.h for ex</div><div>- a specific implementation dedicated to host grouping DB tasks : facesdboperationgroup.h for ex</div><div><br></div><div>The ex given to FacesDB is the most simple to start because the implementation is not too complex. Look alos the ThumbDB which is simple too. The most complex DB implementation is CoreDB, where you will found same king of classes plus more one to delegate specific tasks. The CoreDB is the most huge database (schema), with a lots of triggers between tables. </div><div><br></div><div>In core/libs/database/, outside core, thumbs DB, you have these sub directories :</div><div><br></div><div>- collection which host classes to handle the digiKam collections (root albums, local, remote, removable). You will need to take a look later certainly, this depend of reports from bugzilla to fix.</div><div>- dbjobs which is a multi-threaded/multi-core low level interface dedicated to query the database. No need to touch it for the moment, this work well.</div><div>- haar which is dedicated to host image similarities fingerprints. This is out of your project.</div><div>- imagehistory which is dedicated to host image tree-histories accordingly with corrections applied to image by editor and BQM. This is out of your project.</div><div>- imgqsort which is dedicated to host image algorithm to sort images accordingly with noise,exposure, sharp level, etc. This is out of your project.</div><div>- items which is dedicated to host classes for image properties. You will need to take a look later certainly, this depend of reports from bugzilla to fix.</div><div>- servers which are low level classes for mysql local server. Later we will certainly write new one for PostGreSql. This is out of your project.</div><div>- tags which is dedicated to host classes for virtual album as tags. You will need to take a look later certainly, this depend of reports from bugzilla to fix.</div><div>- utils where you will found some miscs classes as DB settings widgets and dialogs.</div><div><br></div><div>This respond partially to your question ?</div><div><br></div><div>BEst</div><div><br></div><div>Gilles Caulier</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-02-29 2:10 GMT+01:00 Varun Gupta <span dir="ltr"><<a href="mailto:varungupta1803@gmail.com" target="_blank">varungupta1803@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have finished with reading the code in the folder collection and coredb from link [1]. I got familiar with the code but I guess there is lots of code to read , so it would be helpful if you could redirect me to the parts which are immediately essential so I get the understanding of the important parts and then go on with the rest of the code.<div><br></div><div>Regards,</div><div>varun</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Sun, Feb 28, 2016 at 4:49 PM, Gilles Caulier <span dir="ltr"><<a href="mailto:caulier.gilles@gmail.com" target="_blank">caulier.gilles@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Any feddback here. Did you checkout code and look in DB interface implementation ? Any questions ?<div><br></div><div>Best</div><span><font color="#888888"><div><br></div><div>Gilles Caulier</div></font></span></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2016-02-24 22:07 GMT+01:00 Gilles Caulier <span dir="ltr"><<a href="mailto:caulier.gilles@gmail.com" target="_blank">caulier.gilles@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span>2016-02-24 21:42 GMT+01:00 Varun Gupta <span dir="ltr"><<a href="mailto:varungupta1803@gmail.com" target="_blank">varungupta1803@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I have started looking at the code from the given link [1] . I still have doubts what do you mean by the last stage , in the doc do i have to list all the main problems that need to be fixed for MYSQL types?</div></blockquote><div><br></div></span><div>Exactly. Accordingly with Agile method, bugzilla is the reference to evolute and fix open source application. I already review and sort all entries in bugzilla (including duplicates) about MySql support. It will be not to hard to list the main dysfunctions about Mysql support depending of users contexts reported. Of course, there is an order to fix the problem due to interdépendances between tasks to patch the current implementation of database interface.</div><span><font color="#888888"><div><br></div><div>Gilles Caulier</div></font></span></div></div></div>
</blockquote></div><br></div>
</div></div><br></div></div><span class="">_______________________________________________<br>
Digikam-devel mailing list<br>
<a href="mailto:Digikam-devel@kde.org" target="_blank">Digikam-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/digikam-devel" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/digikam-devel</a><br>
<br></span></blockquote></div><br></div>
<br>_______________________________________________<br>
Digikam-devel mailing list<br>
<a href="mailto:Digikam-devel@kde.org">Digikam-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/digikam-devel" rel="noreferrer" target="_blank">https://mail.kde.org/mailman/listinfo/digikam-devel</a><br>
<br></blockquote></div><br></div>