asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Wail Alkowaileet <wael....@gmail.com>
Subject Re: Comparison semantics for complex types
Date Sat, 30 Dec 2017 04:31:15 GMT
I think we should not call deep_equal implicitly when comparing objects,
arrays or multisets.
One reason is that we don't want to do hash join where the key is a complex
type (i.e what would be the hash function?).

On Fri, Dec 29, 2017 at 10:24 AM, Taewoo Kim <wangsaeu@gmail.com> wrote:

> @Heri: I'm sorry for not mentioning your deep_equal function. Yeah, indeed,
> we have your function. I checked BuiltinFunctions and found the function
> named "deep-equal". So, we need to explicitly use that function to conduct
> such comparison? If so, could you revise Wail's query? And it would be nice
> if AsterixDB can call that function when it tries to compare arrays.
>
> Best,
> Taewoo
>
> On Fri, Dec 29, 2017 at 8:59 AM, Heri Ramampiaro <heriram@gmail.com>
> wrote:
>
> > Is this similar to the “deep_equal” function I implemented a while ago?
> >
> > -heri
> >
> > Sent from my iPhone
> >
> > > On Dec 29, 2017, at 17:23, Mike Carey <dtabass@gmail.com> wrote:
> > >
> > > Indeed - we need it someday!  (Sooner rather than later would be nice.)
> > It basically needs to work like it does in languages like Python, I
> think.
> > (Cardinality and element by element equality for arrays, cardinality and
> > order-independent equality for bags, field by field equality for records,
> > and recursively through all of them.)
> > >
> > >
> > >> On 12/28/17 11:14 PM, Taewoo Kim wrote:
> > >> If I remember correctly, we don't support deep equality comparison in
> > >> AsterixDB yet.
> > >>
> > >> Best,
> > >> Taewoo
> > >>
> > >> On Thu, Dec 28, 2017 at 9:19 PM, Wail Alkowaileet <wael.y.k@gmail.com
> >
> > >> wrote:
> > >>
> > >>> Hi Devs,
> > >>>
> > >>> Currently we have an inconsistent behavior regarding the comparators:
> > >>>
> > >>> In join, we allow such operation
> > >>>
> > >>> SELECT *
> > >>> FROM [[1],[2],[3]] array1, [[1],[2],[3]] array2
> > >>> WHERE array1 = array2
> > >>>
> > >>> In select, an exception is thrown
> > >>> SELECT *
> > >>> FROM [[1],[2],[3]] array1
> > >>> WHERE array1 = [1]
> > >>>
> > >>> Error ASX0004: Unsupported type: comparison operations (>, >=,
<, and
> > <=)
> > >>> cannot process input type array
> > >>>
> > >>> What should be the semantics for such operations?
> > >>>
> > >>>
> > >>> --
> > >>>
> > >>> *Regards,*
> > >>> Wail Alkowaileet
> > >>>
> > >
> >
>



-- 

*Regards,*
Wail Alkowaileet

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message