[DB-SIG] Proposal: Standardized way to get database schema

Fabien COUTANT fcoutant@freesurf.fr
Wed, 21 Aug 2002 08:28:47 +0200 (CEST)


------=_20020821082847_52611
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Hello,

I want to go on the idea of standardizing the way
to introspect a database
schema.

Following the suggestion from Marcos Sanchez
Provencio, I wrote a suggestion for
an API
extension that provides schema introspection.

What I did:
- tried to conform to the
current spirit of the
    API.
- took some ideas from Brian Zimmer
- directly modified HTML since
it's the only
    document I have.
- am not sure whether multi-schema support should
    be kept,
since there is otherwise no support
    for it in the rest of the API.
- the parts about
primary/foreign keys, procedures
    and indexes are incomplete.  I just gave the
    idea.
- not
sure of the exact list of SQL kinds that
    should be included.  I don't remember the
    standard
perfectly...

I hope this can be a starting point, as there
is some work remaining.

NB:
Since I have wrapping problems with my
webmail, I have to include the diff as a
MIME
attachment.  Sorry for the inconvenience.

-- 
Hope this helps,
Fabien.


------=_20020821082847_52611
Content-Type: application/octet-stream; name="DatabaseAPI-2.0.html.patch"
Content-Disposition: attachment; filename="DatabaseAPI-2.0.html.patch"
Content-Transfer-Encoding: base64

LS0tIERhdGFiYXNlQVBJLTIuMC5odG1sCVdlZCBBdWcgMjEgMDg6MTU6MTMgMjAwMgorKysgRGF0
YWJhc2VBUEktMi4xLmh0bWwJV2VkIEF1ZyAyMSAwODoxNToxNCAyMDAyCkBAIC05MCw2ICs5MCw3
IEBACiAgICAgICA8TEk+IDxBIEhSRUY9IiNtb2R1bGUiPk1vZHVsZSBJbnRlcmZhY2U8L0E+CiAg
ICAgICA8TEk+IDxBIEhSRUY9IiNjb25uZWN0aW9uIj5Db25uZWN0aW9uIE9iamVjdHM8L0E+CiAg
ICAgICA8TEk+IDxBIEhSRUY9IiNjdXJzb3IiPkN1cnNvciBPYmplY3RzPC9BPgorICAgICAgPExJ
PiA8QSBIUkVGPSIjc2NoZW1hIj5TY2hlbWEgT2JqZWN0czwvQT4KICAgICAgIDxMST4gPEEgSFJF
Rj0iI3R5cGVzIj5UeXBlIE9iamVjdHMgYW5kIENvbnN0cnVjdG9yczwvQT4KICAgICAgIDxMST4g
PEEgSFJFRj0iI2hpbnRzIj5JbXBsZW1lbnRhdGlvbiBIaW50czwvQT4KICAgICAgIDxMST4gPEEg
SFJFRj0iI2NoYW5nZXMiPk1ham9yIENoYW5nZXMgZnJvbSAxLjAgdG8gMi4wPC9BPgpAQCAtNDAz
LDYgKzQwNCw0OCBAQAogCSAgICBzcGVjaWZpY2F0aW9uLiAgPEEgSFJFRj0iI0Zvb3Rub3RlNCI+
WzRdPC9BPgogCSAgICA8UD4KIAorCSAgPERUPiA8Qj5zY2hlbWE8L0I+KFtuYW1lPSIiXSkKKwkg
IDxERD4KKwkgICAgUmV0dXJuIGEgbmV3IDxBIEhSRUY9IiNzY2hlbWEiPjxJPlNjaGVtYSBPYmpl
Y3Q8L0k+PC9BPgorCSAgICBmb3IgdGhlIGRhdGFiYXNlIGJlaW5nIGNvbm5lY3RlZCB0by4KKwkg
ICAgVGhpcyBtZXRob2QgaXMgb3B0aW9uYWwgYW5kIHNob3VsZCBvbmx5IGJlIHByb3ZpZGVkIGlm
IHRoZQorCSAgICBkYXRhYmFzZSBkcml2ZXIgc3VwcG9ydHMgc2NoZW1hIG9iamVjdHMuCisJICAg
IDxQPgorCSAgICAgIElmIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlIHN1cHBvcnRzIHNldmVyYWwg
c2NoZW1hcyBwZXIKKwkgICAgICBkYXRhYmFzZSwgdGhlIHNjaGVtYSBhY2Nlc3MgcGFyYW1ldGVy
cyBzaG91bGQgYmUgcHJvdmlkZWQKKwkgICAgICBhcyBhIHNpbmdsZSBzdHJpbmcgdGhyb3VnaCB0
aGUgIm5hbWUiIHBhcmFtZXRlci4KKwkgICAgICBJZiB0aGUgIm5hbWUiIHBhcmFtZXRlciBpcyBv
bWl0dGVkIG9yIGVtcHR5LCBhIGRlZmF1bHQKKwkgICAgICBzY2hlbWEgaXMgYWNjZXNzZWQuCisJ
ICAgIDxQPgorCSAgICAgIElmIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlIHN1cHBvcnRzIGV4YWN0
bHkgb25lIHNjaGVtYSwKKwkgICAgICB0aGUgZHJpdmVyIG11c3QgYWNjZXB0IGF0IGxlYXN0IGFu
IGVtcHR5IG9yIG9taXR0ZWQgIm5hbWUiCisJICAgICAgYXJndW1lbnQgYXMgY29ycmVjdCBwb3Nz
aWJpbGl0aWVzIHRvIGFjY2VzcyB0aGUgdW5pcXVlCisJICAgICAgc2NoZW1hLiAgVXNpbmcgYSBu
b24tZW1wdHkgIm5hbWUiIGFyZ3VtZW50IGluIHRoaXMgY2FzZQorCSAgICAgIGNhbiByYWlzZSBh
ICJOb3RTdXBwb3J0ZWRFcnJvciIgZXhjZXB0aW9uLgorCSAgICA8UD4KKwkgICAgICBXYXJuaW5n
OiAgdGhlIHdheSB0byBhY2Nlc3Mgc2NoZW1hcyBvdGhlciB0aGFuIGRlZmF1bHQKKwkgICAgICB0
aHJvdWdoIFNRTCBpcyB1bnNwZWNpZmllZCBhbmQgZGF0YWJhc2UgZGVwZW5kZW50OiAKKwkgICAg
ICBBcHBsaWNhdGlvbnMgc2hvdWxkIG9ubHkgcmVseSBvbiBhIGRlZmF1bHQgc2NoZW1hLgorCSAg
ICA8UD4KKworCSAgPERUPiA8Qj5zY2hlbWFsaXN0PC9CPigpCisJICA8REQ+CisJICAgIFJldHVy
biBhIHNlcXVlbmNlIG9mIHN0cmluZ3MsIGVhY2ggb25lIGRlbm90aW5nIGFjY2VzcworCSAgICBw
YXJhbWV0ZXJzIGZvciBhIHNlcGFyYXRlIHNjaGVtYS4KKwkgICAgU3RyaW5ncyBpbiB0aGlzIHNl
cXVlbmNlIGNhbiBiZSB1c2VkIGFzIGlzIGluIHRoZSAibmFtZSIKKwkgICAgcGFyYW1ldGVyIG9m
IHRoZSAic2NoZW1hIiBtZXRob2QuCisJICAgIFRoaXMgbWV0aG9kIHNob3VsZCBiZSBwcm92aWRl
ZCBieSB0aGUgZHJpdmVyIGV4YWN0bHkgd2hlbgorCSAgICB0aGUgInNjaGVtYSIgbWV0aG9kIGlz
IHByb3ZpZGVkLgorCSAgICA8UD4KKwkgICAgICBXaGVuIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNl
IHN1cHBvcnRzIHNldmVyYWwgc2NoZW1hcyBwZXIKKwkgICAgICBkYXRhYmFzZSwgdGhpcyBtZXRo
b2Qgc2hvdWxkIHJldHVybiBhIG5vbi1lbXB0eSBzZXF1ZW5jZQorCSAgICAgIG9mIG5vbi1lbXB0
eSBzdHJpbmdzLgorCSAgICA8UD4KKwkgICAgICBXaGVuIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNl
IHN1cHBvcnRzIGV4YWN0bHkgb25lIHNjaGVtYSwKKwkgICAgICB0aGlzIG1ldGhvZCByZXR1cm5z
IGV4YWN0bHkgYSBzZXF1ZW5jZSBvZiBvbmUgZW1wdHkKKwkgICAgICBzdHJpbmcuCisJICAgIDxQ
PgorCiAJPC9ETD4KIAk8UD4KIApAQCAtNjQ1LDYgKzY4OCwxMDMgQEAKIAk8L0RMPgogCiAJPFA+
CisKKyAgICA8L1VMPgorCisgICAgPEEgTkFNRT0ic2NoZW1hIj48SDM+U2NoZW1hIE9iamVjdHM8
L0gzPjwvQT4KKworICAgIDxVTD4KKworCTxQPgorCSAgU2NoZW1hIE9iamVjdHMgc2hvdWxkIHJl
c3BvbmQgdG8gdGhlIGZvbGxvd2luZyBtZXRob2RzIGFuZAorCSAgYXR0cmlidXRlczoKKwk8UD4K
KworCTxETD4KKworCSAgPERUPiA8Qj50YWJsZXM8L0I+KCkKKwkgIDxERD4KKwkgICAgUmV0dXJu
IGEgKHBvc3NpYmx5IGVtcHR5KSBzZXF1ZW5jZSBvZiBhdmFpbGFibGUgdGFibGUKKwkgICAgbm9u
LWVtcHR5IG5hbWVzLgorCSAgICA8UD4KKworCSAgPERUPiA8Qj5jb2x1bW5zPC9CPih0YWJsZSkK
KwkgIDxERD4KKwkgICAgUmV0dXJuIGEgbm9uLWVtcHR5IHNlcXVlbmNlIG9mIGFsbCB0aGUgY29s
dW1uIG5vbi1lbXB0eQorCSAgICBuYW1lcyBkZWZpbmVkIGJ5IHRoZSBleGlzdGluZyB0YWJsZSB3
aGljaCBuYW1lIGlzIGdpdmVuIGJ5CisJICAgIHRoZSAidGFibGUiIGFyZ3VtZW50LgorCSAgICA8
UD4KKwkgICAgSWYgdGhlIHJlcXVlc3RlZCB0YWJsZSBkb2VzIG5vdCBleGlzdCwgYSBEYXRhRXJy
b3IgZXhjZXB0aW9uCisJICAgIGlzIHJhaXNlZC4KKwkgICAgPFA+CisKKwkgIDxEVD4gPEI+Y29s
dW1uZGVmPC9CPih0YWJsZSxjb2x1bW4pCisJICA8REQ+CisJICAgIFJldHVybiBhIHNlcXVlbmNl
IG9mIHRoZSBmb2xsb3dpbmcgZWxlbWVudHMgaW4gdGhhdCBvcmRlcjogCisJICAgIGEgc3RyaW5n
IGRlbm90aW5nIHRoZSBTUUwgc3RhbmRhcmQga2luZCBvZiB0aGUgY29sdW1uIChvbmUKKwkgICAg
b2YgIkNIQVIiLCAiVkFSQ0hBUiIsICJJTlQiLCAiUkVBTCIsICJEQVRFIiwgIlRJTUUiKSwgYW4K
KwkgICAgaW50ZWdlciBudW1iZXIgZ2l2aW5nIHRoZSBzaXplIG9mIHRoZSBjb2x1bSAob3IgTm9u
ZSBpZgorCSAgICBpbmFwcHJvcHJpYXRlKSwgYSBib29sZWFuICgwIG9yIDEgYXMgaW50ZWdlciBu
dW1iZXIpCisJICAgIGluZGljYXRpbmcgd2hldGhlciBOVUxMcyBhcmUgYWNjZXB0ZWQsIGFuZCBh
IHN0cmluZworCSAgICBjb250YWluaW5nIHRoZSBTUUwgZXhwcmVzc2lvbiB1c2VkIGFzIGRlZmF1
bHQgdmFsdWUgd2hlbgorCSAgICBjcmVhdGluZyBuZXcgcm93cyAob3IgTm9uZSB3aGVuIG5vIGRl
ZmF1bHQgdmFsdWUgaXMgZGVmaW5lZCwKKwkgICAgb3Igd2hlbiB0aGUgdW5kZXJseWluZyBkYXRh
YmFzZSBkb2VzIG5vdCBzdXBwb3J0IGRlZmF1bHQKKwkgICAgdmFsdWVzKS4KKwkgICAgPFA+CisJ
ICAgIElmIHRoZSByZXF1ZXN0ZWQgdGFibGUgb3IgY29sdW1uIGRvZXMgbm90IGV4aXN0LCBhIERh
dGFFcnJvcgorCSAgICBleGNlcHRpb24gaXMgcmFpc2VkLgorCSAgICA8UD4KKworCSAgPERUPiA8
Qj5wcmltYXJ5a2V5PC9CPih0YWJsZSkKKwkgIDxERD4KKwkgICAgUmV0dXJuIGEgKHBvc3NpYmx5
IGVtcHR5KSBzZXF1ZW5jZSBvZiBjb2x1bW4gbm9uLWVtcHR5IG5hbWVzCisJICAgIGZvciB0aGUg
cmVxdWVzdGVkIHRhYmxlLCB0aGF0IGZvcm0gdGhlIHByaW1hcnkga2V5LiAgVGhlCisJICAgIHNl
cXVlbmNlIGlzIGVtcHR5IHdoZW4gdGhlcmUgaXMgbm8gcHJpbWFyeSBrZXkgZGVmaW5lZC4KKwkg
ICAgPFA+CisJICAgIElmIHRoZSByZXF1ZXN0ZWQgdGFibGUgZG9lcyBub3QgZXhpc3QsIGEgRGF0
YUVycm9yIGV4Y2VwdGlvbgorCSAgICBpcyByYWlzZWQuCisJICAgIDxQPgorCisJICA8RFQ+IDxC
PmZvcmVpZ25rZXlzPC9CPih0YWJsZSkKKwkgIDxERD4KKwkgICAgLi4uCisJICAgIDxQPgorCSAg
ICBJZiB0aGUgcmVxdWVzdGVkIHRhYmxlIGRvZXMgbm90IGV4aXN0LCBhIERhdGFFcnJvciBleGNl
cHRpb24KKwkgICAgaXMgcmFpc2VkLgorCSAgICA8UD4KKworCSAgPERUPiA8Qj5pbmRpY2VzPC9C
Pih0YWJsZSkKKwkgIDxERD4KKwkgICAgUmV0dXJuIGEgKHBvc3NpYmx5IGVtcHR5KSBzZXF1ZW5j
ZSBvZiBpbmRleCBub24tZW1wdHkgbmFtZXMKKwkgICAgZGVmaW5lZCBmb3IgdGhlIHJlcXVlc3Rl
ZCB0YWJsZS4KKwkgICAgPFA+CisJICAgIElmIHRoZSByZXF1ZXN0ZWQgdGFibGUgZG9lcyBub3Qg
ZXhpc3QsIGEgRGF0YUVycm9yIGV4Y2VwdGlvbgorCSAgICBpcyByYWlzZWQuCisJICAgIDxQPgor
CisJICA8RFQ+IDxCPmluZGV4ZGVmPC9CPih0YWJsZSxpbmRleCkKKwkgIDxERD4KKwkgICAgLi4u
CisJICAgIDxQPgorCSAgICBJZiB0aGUgcmVxdWVzdGVkIHRhYmxlIG9yIGluZGV4IGRvZXMgbm90
IGV4aXN0LCBhIERhdGFFcnJvcgorCSAgICBleGNlcHRpb24gaXMgcmFpc2VkLgorCSAgICA8UD4K
KworCSAgPERUPiA8Qj5wcm9jZWR1cmVzPC9CPigpCisJICA8REQ+CisJICAgIFJldHVybiBhIChw
b3NzaWJseSBlbXB0eSkgc2VxdWVuY2Ugb2YgYXZhaWxhYmxlIHByb2NlZHVyZQorCSAgICBub24t
ZW1wdHkgbmFtZXMuCisJICAgIDxQPgorCisJICA8RFQ+IDxCPnByb2NlZHVyZWRlZjwvQj4ocHJv
YykKKwkgIDxERD4KKwkgICAgLi4uCisJICAgIDxQPgorCSAgICBJZiB0aGUgcmVxdWVzdGVkIHBy
b2NlZHVyZSBkb2VzIG5vdCBleGlzdCwgYSBEYXRhRXJyb3IKKwkgICAgZXhjZXB0aW9uIGlzIHJh
aXNlZC4KKwkgICAgPFA+CisKKwk8L0RMPgogCiAgICAgPC9VTD4KIAo=

------=_20020821082847_52611--