[xquery-talk] type of 1.2 div 1.2?
Michael Kay
mhk at mhk.me.uk
Wed Mar 23 08:49:51 PST 2005
I think that fs:untyped-to-double is a no-op if the argument isn't
untypedAtomic, just as fn:data() is a no-op if the argument is atomic.
Remember that Galax is following the formal semantics very literally,
regardless of efficiency.
Michael Kay
> -----Original Message-----
> From: Howard Katz [mailto:howardk at fatdog.com]
> Sent: 23 March 2005 00:51
> To: Michael Kay; talk at xquery.com
> Subject: RE: [xquery-talk] type of 1.2 div 1.2?
>
> Oops, mea culpa. I misread something. I'm looking at galax,
> and typeswitch
> shows that the final result is actually decimal as it should
> be. What threw
> me was an intermediate result, which shows the normalized core
> representation for this query as:
>
> op:numeric-divide(
> fs:untyped-to-double(fn:data(1.2)),
> fs:untyped-to-double(fn:data(1.2))
>
> Given this, I still don't understand:
>
> (1) why there's an untyped-to-double conversion, since I
> would have thought
> the grammar provided the typing information on the numerics as decimal
> literals,
> and
> (2) even if there are intermediate doubles, how we get from
> there to a final
> decimal result?
>
> Howard
>
> > -----Original Message-----
> > From: talk-bounces at xquery.com
> [mailto:talk-bounces at xquery.com]On Behalf
> > Of Michael Kay
> > Sent: Tuesday, March 22, 2005 12:30 PM
> > To: howardk at fatdog.com; talk at xquery.com
> > Subject: RE: [xquery-talk] type of 1.2 div 1.2?
>
> >
> > The result should definitely be of type xs:decimal.
> >
> > There's some debate about whether it's permissible to
> return a subtype of
> > xs:decimal, e.g. xs:integer or my:veryShortInteger; but
> > returning xs:double
> > is not on.
> >
> > (Unless this is actually an XPath processor with 1.0
> compatibility mode
> > enabled).
> >
> > Michael Kay
> > http://www.saxonica.com/
> >
> >
> > > -----Original Message-----
> > > From: talk-bounces at xquery.com
> > > [mailto:talk-bounces at xquery.com] On Behalf Of Howard Katz
> > > Sent: 22 March 2005 18:44
> > > To: talk at xquery.com
> > > Subject: [xquery-talk] type of 1.2 div 1.2?
> > >
> > > What's the type and value of the single atomic returned
> by the query:
> > >
> > > 1.2 div 1.2
> > >
> > > I'm looking at different implementations. I see one returning an
> > > xsd:decimal, value 1 as a result (my understanding as well).
> > > I see another
> > > treating the data as untyped and doing two conversions to
> > > xsd:double first,
> > > again returning a value of 1 but this time of type xsd:double.
> > >
> > > Which one is correct?
> > > Howard
> > >
> > >
> > >
> > > _______________________________________________
> > > talk at xquery.com
> > > http://xquery.com/mailman/listinfo/talk
> > >
> >
> >
> > _______________________________________________
> > talk at xquery.com
> > http://xquery.com/mailman/listinfo/talk
> >
>
>
>
More information about the talk
mailing list