Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!wuarchive!gem.mps.ohio-state.edu!ginosko!uakari.primate.wisc.edu!ames!pacbell!rtech!news
From: news@rtech.rtech.com (USENET News System)
Newsgroups: comp.databases
Subject: Re: Parsing Query Languages in the Client or Server
Message-ID: <3695@rtech.rtech.com>
Date: 25 Sep 89 20:24:55 GMT
References: <6155@sybase.sybase.com> <6167@sybase.sybase.com> <1989Sep24.215650.15732@odi.com>
Reply-To: pasker@rtech.com (Bob Pasker)
Organization: Relational Technology, Inc.
Lines: 64

In article <1989Sep24.215650.15732@odi.com> dlw@odi.com writes:
>   open, standardized interfaces.  There is already an ANSI SQL standard,
>   and a subcommittee of ANSI X3H2 is working on remote database access
>There's one aspect of this standardization that I've never understood.
>The ANSI SQL definition provides a standard for queries to relational
>databases.  However, there doesn't seem to be anything that provides a
>standard describing the format of the data returned by the server to
>the client.  For example, what delimits one value from the next, or
>one tuple from the next?  Are floating point numbers sent in an ASCII
>representation, or binary using IEEE format, or what?

There is a format specified in the RDA standard, but it's probably not
how you expect it to be defined: it doesnt specify how the data is
returned to you, but how the data is transmitted on the wire. I
believe that the format of the returned tuple data is embodied in the
SQLDA structure. SQL experts?

The format of the RDA messages comprising the dialogue between client
and server are defined in terms of their abstract syntax notation
(ASN.1) as embodied in the X.409 standard.  It is the responsibility
of the underlying communications mechanism to convert the data in the
messages between ASN.1 and a format suitable for the architecture of
the local machine.  For instance, a floating point number on MACHINE X
represented in IEEE format and needs to be sent to a VAX.  The RDA
user supplies the value in the IEEE format, the underlying
communications software (particularly, the Presentation Layer, in the
case) converts it to ASN.1/X.409 syntax (i.e.  representation) and
puts it out on the wire.  The receiving VAX converts it from ASN.1 to
VAX F- or G-floating (or whatever) format for use by the application.

>Is there currently any standardization between/among more than one
>vendor in this area?

It depends what you mean. In order for an implementation to be able to
interoperate the messages have to be in a specific format/order on the
wire; this is usually what is meant by 'RDA complient'.  This is the
requirement for (I hate to use this word) all the communications
standards.  Think of it as a variation on the Turing Test: if from my
end of the wire, I can't tell the difference between your
implementation and a know complient implementation then your
implementation is complient.  If you use the protocol state tables
described in the spec, the you're probably more likely to interoperate
than if you use some huge if tests; if you implement your stuff in
some semblance of the ISO 7-layer model, you'll have an easier chance
of building it than a monolithic program :-> Either way, though, you
should still be able to interoperate.

>Is this something being addressed by the aforementioned subcommittee
>of X3H2?  If so, how's the subcommittee's work progressing?

Yes, it is being addressed. RDA proposes to use ASN.1/X.409 and it's
highly unlikely to change.  There are some things which RDA needs that
X.409 doesn't do (I believe "arrays of records" are missing) but,
IMHO, the committee is tackling much larger fish (is there a special
smiley for mixed metaphors? :->)


- bob

+-------------------------+------------------------------+--------------------+
! Bob Pasker		  ! Relational Technology	 !          	      !
! pasker@rtech.com        ! 1080 Marina Villiage Parkway !	INGRES	      !
! (415) 748-2434	  ! Alameda, California 94501	 !		      !
+-------------------------+------------------------------+--------------------+