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 ! ! +-------------------------+------------------------------+--------------------+