[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1470904 - /subversion/trunk/subversion/libsvn_wc/wc-metadata.sql

From: Branko Čibej <brane_at_wandisco.com>
Date: Thu, 25 Apr 2013 02:25:53 +0200

On 25.04.2013 00:34, Bert Huijben wrote:
>
>> -----Original Message-----
>> From: Bert Huijben [mailto:bert_at_qqmail.nl]
>> Sent: donderdag 25 april 2013 00:14
>> To: 'Paul Burba'; 'Subversion Development'
>> Subject: RE: svn commit: r1470904 -
>> /subversion/trunk/subversion/libsvn_wc/wc-metadata.sql
>>>> Which ultimately causes libsvn_wc/upgrade:bump_to_31() to create an
>>>> INHERITED_PROPS cache for the WC root, albeit and empty one.
>>>>
>>>> The tweak I suggest above avoids the root from being selected:
>>>>
>>>> SELECT l.wc_id, l.local_relpath FROM nodes as l
>>>> LEFT OUTER JOIN nodes as r
>>>> ON l.wc_id = r.wc_id
>>>> AND r.local_relpath = l.parent_relpath
>>>> AND r.op_depth = 0 AND l.op_depth = 0
>>>> AND l.repos_path != ''
>>> ^^^
>>> This line should have that same effect?
>>> (Moved from the where to the join to have it apply to all the or clauses
>>> without having to duplicate it 3 times)
>>>
>>> Are you sure that you have that line in your testcase.
>> Tested this query and indeed it shows this problem.
>>
>> The op-depth checks on the line above it should also be moved to the where
>> part for all three cases.
> I tweaked the query further in r1471744.
>
> The 'IS NOT' expression in the new query is similar to '!=' but returns TRUE when one side is NULL, while '!=' would return NULL if either or both sides are NULL which evaluated to false in this query.

"IS" and "IS NOT" are object-identity equality checks, just like in
Python; and they should only be used when explicitly testing for NULL,
never when comparing to a typed value. NULL behaves very specially; NULL
!= NULL is NULL, for example, not TRUE, as is NULL = NULL.

-- Brane

-- 
Branko Čibej
Director of Subversion | WANdisco | www.wandisco.com
Received on 2013-04-25 02:26:27 CEST

This is an archived mail posted to the Subversion Dev mailing list.