[Kde-pim] Review Request 111711: Replace runtime schema parsing with compile-time code generation

Dan Vrátil dvratil at redhat.com
Fri Jul 26 16:50:30 BST 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/111711/#review36552
-----------------------------------------------------------

Ship it!


Nice, thanks!

- Dan Vrátil


On July 26, 2013, 10:07 a.m., Volker Krause wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/111711/
> -----------------------------------------------------------
> 
> (Updated July 26, 2013, 10:07 a.m.)
> 
> 
> Review request for Akonadi.
> 
> 
> Description
> -------
> 
> This removes the not exactly cheap XML DOM parsing for the schema creation, and replaces it with generating the structures returned by the parsing code at compile time. From a functional POV this equivalent, but it gets us half way to removing the dependency on QtXml and it paves the way for more sophisticated schema annotations for compile-time query checking in the future.
> 
> Git Log:
> 
> No need to compile in the schema XML now.
> 
> 
> Get rid of the XML DOM parsing code for the db setup.
>     
> Replaced with compile-time generated code now.
> 
> 
> Generate schema as classes rather than one single namespace.
>     
> This way we can have multiple ones, e.g the real one and the one we use
> for unit testing.
> 
> 
> Also generate schema description for relation tables.
> 
> 
> Generate schema description objects at compile time.
>     
> This will replace the run-time parsing of the schema XML.
> 
> 
> Mime types and flags are created automatically on demand.
>     
> So there's no need to pre-fill the database with some well-known ones.
> 
> 
> Move schema data types into their own file.
> 
> 
> Diffs
> -----
> 
>   server/CMakeLists.txt a8551a1 
>   server/src/storage/akonadidb.qrc a681294 
>   server/src/storage/akonadidb.xml 4a560ac 
>   server/src/storage/datastore.cpp 138639f 
>   server/src/storage/dbinitializer.h 03f75e7 
>   server/src/storage/dbinitializer.cpp adca112 
>   server/src/storage/dbinitializer_p.h b103690 
>   server/src/storage/dbinitializer_p.cpp b0f0428 
>   server/src/storage/schema-header.xsl PRE-CREATION 
>   server/src/storage/schema-source.xsl PRE-CREATION 
>   server/src/storage/schema.h PRE-CREATION 
>   server/src/storage/schema.xsl PRE-CREATION 
>   server/src/storage/schematypes.h PRE-CREATION 
>   server/src/storage/schematypes.cpp PRE-CREATION 
>   server/tests/unittest/CMakeLists.txt 69740fb 
>   server/tests/unittest/dbinitializertest.cpp 029b8cc 
>   server/tests/unittest/dbinitializertest_data/dbinitializertestdata.qrc 85f37c5 
>   server/tests/unittest/dbinitializertest_data/unittest_schema.xml 501dfd8 
> 
> Diff: http://git.reviewboard.kde.org/r/111711/diff/
> 
> 
> Testing
> -------
> 
> db setup is covered by unit tests
> 
> 
> Thanks,
> 
> Volker Krause
> 
>

_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list