Hi Julian
I test a bit, Java/C/MySql/Spark/Hive/ support double/float mod, but pg
seems not to support this. There's no oracle in my hand, so the oracle is
not tested yet.

Regards!

Aron Tao


Julian Hyde <[email protected]> 于2020年10月20日周二 上午1:33写道:

> Calcite aims to cover the SQL standard, but it is not limited to it.
>
> So, given that the MOD operator in the standard does not cover DOUBLE,
> the conversation should shift to which other DBs support it. Is there
> a consensus as to the semantics? Are there related features that we
> should do too?
>
> Julian
>
> On Mon, Oct 19, 2020 at 7:57 AM Alessandro Solimando
> <[email protected]> wrote:
> >
> > Hello Aron,
> > sorry I forgot to cover the part regarding the modulo operation.
> >
> > Calcite again follows the standard on that respect, and the SQL standard
> > says:
> >
> > <modulus expression> operates on two exact numeric arguments with scale 0
> > > (zero) and returns
> > > the modulus (remainder) of the first argument divided by the second
> > > argument as an exact
> > > numeric with scale 0 (zero).
> >
> >
> > I am under the impression that you are trying to apply the modulus (mod)
> > operator over an approximate number, which is not supported as we have
> seen
> > above.
> >
> > Best regards,
> > Alessandro
> >
> > On Fri, 16 Oct 2020 at 05:02, JiaTao Tao <[email protected]> wrote:
> >
> > > Thanks, Alessandro Solimando
> > > Got it, very clear explanation.
> > > My main question here becomes that calcite doesn't support double mod.
> > >
> > > Regards!
> > >
> > > Aron Tao
> > >
> > >
> > > Alessandro Solimando <[email protected]> 于2020年10月15日周四
> > > 下午10:32写道:
> > >
> > > > Hi Aron Tao,
> > > > Calcite adheres to SQL standard in that respect (citing):
> > > >
> > > > The data types NUMERIC, DECIMAL, INTEGER and SMALLINT are
> collectively
> > > > > referred to
> > > > > as exact numeric types.
> > > >
> > > >
> > > >
> > > > The data types FLOAT, REAL, and DOUBLE PRECISION are collectively
> > > referred
> > > > > to as approx-
> > > > > imate numeric types.
> > > >
> > > >
> > > > In practice the way we represent a number can lead to an exact
> (scale +
> > > > precision) or an approximate (base + mantissa) representation, which
> > > suits
> > > > very different needs.
> > > >
> > > > Best regards,
> > > > Alessandro
> > > >
> > > > On Thu, 15 Oct 2020 at 16:16, JiaTao Tao <[email protected]>
> wrote:
> > > >
> > > > > In calcite, you can not mod doubles. In Java, you can, in C you
> can't
> > > use
> > > > > "%" to mod doubles, but you can use fmod.
> > > > >
> > > > > Regards!
> > > > >
> > > > > Aron Tao
> > > > >
> > > > >
> > > > > JiaTao Tao <[email protected]> 于2020年10月15日周四 下午10:00写道:
> > > > >
> > > > > > org.apache.calcite.sql.type.SqlTypeName#APPROX_TYPES
> > > > > > org.apache.calcite.sql.type.SqlTypeName#NUMERIC_TYPES
> > > > > >
> > > > > > Regards!
> > > > > >
> > > > > > Aron Tao
> > > > > >
> > > > >
> > > >
> > >
>

Reply via email to