Re: [GENERAL] Oracle buys Innobase - Mailing list pgsql-advocacy

From Jan Wieck
Subject Re: [GENERAL] Oracle buys Innobase
Date
Msg-id 4358FB57.7000809@Yahoo.com
Whole thread Raw
In response to Re: [GENERAL] Oracle buys Innobase  (Jeff Davis <jdavis-pgsql@empires.org>)
Responses Re: [GENERAL] Oracle buys Innobase
Re: [GENERAL] Oracle buys Innobase
List pgsql-advocacy
On 10/21/2005 1:58 AM, Jeff Davis wrote:
> SCassidy@overlandstorage.com wrote:
>> A "PostgreSQL to Oracle converter" might be a really big project.
>>
>> Having ported an application from PostgreSQL (7.3) to Oracle 9i, as I
>> recall, my biggest problems were:
>>
>> -  Quoting issues:  the original PostgreSQL application quoted
>> integer/numeric type, and Oracle will not allow that, so I had to make sure
>> only types that had to be quoted, were.  (I normally do not quote numbers
>> in PostgreSQL, but I inherited the application).
>
> What does the standard say about that? Which types of values in Oracle
> need to not be quoted?

Section 5.3 of SQL92 defines:

      <literal> ::=
             <signed numeric literal>
           | <general literal>

      <unsigned literal> ::=
             <unsigned numeric literal>
           | <general literal>

      <general literal> ::=
             <character string literal>
           | <national character string literal>
           | <bit string literal>
           | <hex string literal>
           | <datetime literal>
           | <interval literal>

The Restrictions for Entry level SQL say that

         a) A <general literal> shall not be a <national character string
           literal>.

         b) A <general literal> shall not be a <datetime literal> or
           <interval literal>.

There are no restrictions that say a <general literal> cannot be a
<numeric literal>. <numeric literal> is defined without quotes, but from
the above I conclude that a <general literal> is allowed instead of a
<numeric literal> to represent a numeric value, which means Oracle is
wrong IMNSVHO.

No reason to swell your breast though, we aren't perfect in the literal
area either. Because

      <datetime literal> ::=
             <date literal>
           | <time literal>
           | <timestamp literal>

      <date literal> ::=
           DATE <date string>

      <time literal> ::=
           TIME <time string>

      <timestamp literal> ::=
           TIMESTAMP <timestamp string>

      <date string> ::=
           <quote> <date value> <quote>

      ...

We allow a <general literal> to be used as a <datetime literal> or
<interval literal> without the keyword DATE, TIME, TIMESTAMP or
INTERVAL. Isn't that violating the restrictions for Entry level SQL?

Further

      1) In a <character string literal> or <national character string
         literal>, the sequence:

           <quote> <character representation>... <quote>
           <separator>... <quote> <character representation>... <quote>

          is equivalent to the sequence

           <quote> <character representation>...  <character
           representation>... <quote>

         Note: The <character representation>s in the equivalent se-
         quence are in the same sequence and relative sequence as in the
         original <character string literal>.

The rule is more or less repeated for other literal types. But 8.0.4 claims

     wieck=# select 'foo ' 'bar';
     ERROR:  syntax error at or near "'bar'" at character 15
     LINE 1: select 'foo ' 'bar';
                           ^

I guess neither Oracle nor we get the cookie here.


Jan

>
> Regards,
>     Jeff Davis
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match


--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #

pgsql-advocacy by date:

Previous
From: Jeff Davis
Date:
Subject: UCSD CSE dept uses MS SQL
Next
From: Jonathan Gennick
Date:
Subject: Re: [GENERAL] Oracle buys Innobase