[Development] QString behavior change

Julien Blanc julien.blanc at nmc-company.com
Tue Aug 11 10:38:27 CEST 2015


Le vendredi 31 juillet 2015 à 09:01 -0700, Thiago Macieira a écrit : 

> > <thiago.macieira at intel.com> wrote:
> > > In this particular case, it was reasoned that the API was inconsistent and
> > > broken. So the behaviour was changed intentionally.
> > 
> > TBH, it looks like it's still inconsistent (an empty string keeps its
> > storage allocated, a string made of spaces doesn't).
> 
> Right, they are these two cases of trimmed_helper:
> 
>         if (begin == str.cbegin() && end == str.cend())
>             return str;
>         if (begin == end)
>             return StringType();
> 
> The consistency of nullness is secondary to performance in this code section. 
> I'm not going to add a test before those two.
> 

That point is certainly valid, but i would like to raise the point that
string nullness is a *required* feature for QtSQL (a null QString is
converted to a NULL SQL, whereas a non-null empty QString is converted
to a ''). This makes a huge difference when dealing with not null sql
fields. The fact that trimming an empty string may make it null is
counterintuitive, a behaviour change, and not documented.

So, could you consider returning StringType("") instead ? (unless i’m
wrong, null strings should be handled by the first condition).

Regards,

Julien Blanc
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20150811/df6a15e3/attachment.html>


More information about the Development mailing list