<table><tr><td style="">staniek added inline comments.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D17336">View Revision</a></tr></table><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D17336#inline-98391">View Inline</a><span style="color: #4b4d51; font-weight: bold;">piggz</span> wrote in <span style="color: #4b4d51; font-weight: bold;">KDbUtils.cpp:147</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">whats this QDate(0,1,2) ?</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">It's not part of this patch but here's the answer: <a href="https://phabricator.kde.org/source/kdb/browse/master/src/tools/KDbUtils.h$57" class="remarkup-link" target="_blank" rel="noreferrer">https://phabricator.kde.org/source/kdb/browse/master/src/tools/KDbUtils.h$57</a></p>

<p style="padding: 0; margin: 8px;">From Qt docs:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">QTime::QTime()
Constructs a null time object. A null time can be a QTime(0, 0, 0, 0) (i.e., midnight) object, except that isNull() returns true and isValid() returns false.</pre></div>

<p style="padding: 0; margin: 8px;">This commit describes the workaround: <a href="https://phabricator.kde.org/R15:21e8a3da84165d610c7ba472e43b60e1fc43b172" class="remarkup-link" target="_blank" rel="noreferrer">https://phabricator.kde.org/R15:21e8a3da84165d610c7ba472e43b60e1fc43b172</a></p>

<p style="padding: 0; margin: 8px;">Otherwise in quite a few places we would have to check not only isNull but also isValid to know time valid is really null. That would be error-prone.</p>

<p style="padding: 0; margin: 8px;">PS: (related to this entire Date patch): The new classes KDb(Date)(Time) go much further because they are part of the parse tree. They can properly store invalid date/time elements of any kind so there's no loosing of information. This e.g. allows the user to reopen SQL and edit it. With regular Qt classes invalid values, say, in "SELECT #2018-12-37#" would turn to "SELECT NULL" or "SELECT <INVALID_DATE>" when query text is reopened.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R15 KDb</div></div></div><br /><div><strong>BRANCH</strong><div><div>393094-date-constants</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D17336">https://phabricator.kde.org/D17336</a></div></div><br /><div><strong>To: </strong>staniek, piggz, dczechowicz, wkosowicz<br /><strong>Cc: </strong>Kexi-Devel-list, barman, wicik, staniek<br /></div>