Received: from localhost (maia-5.hub.org [200.46.204.182]) by postgresql.org (Postfix) with ESMTP id 974DD9FB97F for ; Fri, 20 Apr 2007 06:05:52 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.182]) (amavisd-maia, port 10024) with ESMTP id 92959-02 for ; Fri, 20 Apr 2007 06:05:43 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.4 Received: from smtp4.yandex.ru (smtp4.yandex.ru [213.180.223.136]) by postgresql.org (Postfix) with ESMTP id C521C9FA170 for ; Fri, 20 Apr 2007 06:05:44 -0300 (ADT) Received: from [82.209.238.118] ([82.209.238.118]:7688 "EHLO asup_tur" smtp-auth: "sql4-en" TLS-CIPHER: TLS-PEER-CN1: ) by mail.yandex.ru with ESMTP id S7768189AbXDTJFf (ORCPT ); Fri, 20 Apr 2007 13:05:35 +0400 X-Comment: RFC 2476 MSA function at smtp4.yandex.ru logged sender identity as: sql4-en Date: Fri, 20 Apr 2007 12:08:19 +0300 From: Dmitry Turin X-Mailer: The Bat! (v2.01) Personal Reply-To: Dmitry Turin X-Priority: 3 (Normal) Message-ID: <814860828.20070420120819@narod.ru> To: Andrew Sullivan CC: pgsql-sql@postgresql.org Subject: Re: We all are looped on Internet: request + transport = invariant In-Reply-To: <20070419134808.GB14187@phlogiston.dyndns.org> References: <14110647859.20070413105812@narod.ru> <20070413150936.GA31517@phlogiston.dyndns.org> <1684192906.20070419090827@narod.ru> <20070419134808.GB14187@phlogiston.dyndns.org> MIME-Version: 1.0 Content-Type: text/plain; charset=Windows-1251 Content-Transfer-Encoding: 8bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=1.459 tagged_above=0 required=5 tests=AWL=-0.181, BAYES_50=0.001, URIBL_SBL=1.639 X-Spam-Level: * X-Archive-Number: 200704/171 X-Sequence-Number: 28171 >you are proposing is to ... break the relational model of SQL No. I'm proposing to add new thinking about relational model (primary i want to write "to add new view", but i remember, that "view" is reserved word in SQL :) ). Ņonvince yourself, please: create table a ( id num primary key; data float; ); create table b ( id num primary key; ref num references a(id); data float; ); create table c ( id num primary key; link num references b(id); data float; ); insert into a values (1, 12.3); insert into b values (10, 1, 23.4); insert into b values (20, 1, 34.5); insert into b values (30, 1, 45.6); insert into c values (100,10,56.7); insert into c values (101,10,67.8); insert into c values (200,20,78.9); insert into c values (201,20,89.1); insert into c values (300,30,91.2); My suggest is "a.b.c"-request. Output is I wrote about that in http://sql4.by.ru/site/sql40/en/author/introduction_eng.htm http://sql4.by.ru/site/sql40/en/author/determination_eng.htm >to make it look more like XML Understand: XML is not model of data (in my suggest), XML is format of output. Can you offer better format for output of tree? If you can, write please, i listen. >because of some special purpose application Reception of tree from database is really often case. For example, open several schemes of database (in Erwin, in RationalRose, in other modeller) - scheme is net (count). After that, look at source of server programs, servicing this databases. These programs get part of net (not part of one table!, not part of joined tables! not part of one view!) and put it into program-visualizer. In back direction, server program get tree (records for several tables, not for one table!) and put it into database. >SQL ... It's ... language, unconcerned with transport I agree. Now it's so. >change the syntax of SQL SQL remains inviolate. I offer addition to it - i offer Tree Manipulation Language. Look once more: create table a ( id num primary key; data float; ); create table b ( id num primary key; ref1 num references a(id); ref2 num references a(id); data float; ); create table c ( id num primary key; lnk1 num references b(id); lnk2 num references b(id); data float; ); insert into a values (1, 12.3); insert into a values (2, 23.4); insert into b values (10, 1, 2, 34.5); insert into b values (20, 1, 2, 45.6); insert into b values (30, 1, 2, 56.7); insert into b values (40, 1, 2, 67.8); insert into c values (100,10,20,78.9); insert into c values (101,10,20,89.1); insert into c values (200,30,40,91.2); insert into c values (201,30,40,88.8) But TML is: a.b/ref1.c/lnk1 --- P.S. I'm very glad to get acquainted with you, and i'm much interesting to talk with you. Let's to write maximum simply, let's to use maximum simple expressions to understand each other better. Dmitry Turin http://html60.chat.ru http://sql40.chat.ru