SQL5

From: Dmitry Turin <dmitry(dot)turin(at)belarusbank(dot)minsk(dot)by>
To: pgsql-jobs(at)postgresql(dot)org
Subject: SQL5
Date: 2008-11-17 08:31:25
Message-ID: 1456965520.20081117103125@belarusbank.minsk.by
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jobs

Hi, Pgsql-jobs.

Whole task at 17 November 2008:

Client must be a browser. Proposals, stated in first 7 articles [1] on
http://html60.euro.ru/site/html60/en/author/index_eng.htm
should be implemented [2]. Technology maybe any, and this question is not
principle for us.

As for DBMS, slides #17-42, 47-56, 63, 102-109, 114-143, 147-157, 160-177,
180-197 of [url]http://sql50.euro.ru/sql5.16.4.pdf[/url] with changes [3]
should be implemented. Implementation must be C programming only
(no any middleware), so we take principle position.

[1] i.e.
http://html60.euro.ru/site/html60/en/author/looker_eng.htm
http://html60.euro.ru/site/html60/en/author/tree_eng.htm
http://html60.euro.ru/site/html60/en/author/cube_eng.htm
http://html60.euro.ru/site/html60/en/author/screen_eng.htm

http://html60.euro.ru/site/html60/en/author/forxml_eng.htm
http://html60.euro.ru/site/html60/en/author/hidden_eng.htm
http://html60.euro.ru/site/html60/en/author/db_eng.htm

[2]
corrections for HTML6, listed early in Second Posting,
are already entered into papers of http://html60.euro.ru

[3]
Changes are not reflected on [url]http://sql50.euro.ru[/url] yet

*) terms (for two related projects - SQL5 & HTML6)

_master table_ is table, to primary key of which _slave table_ refers

if html master table is not in the same html-document (where slave table is),
and user clicks cell of html slave table (refering to master table),
then new separate browser window appears, and *content of master* table is displayed in it.

field of view A refers to the same column (of second table C), to which selected (by view) field (of table B) refers

communication - must be implemented via SQL5 over TCP
(look at slides #27-28 of [url]http://sql50.euro.ru/sql5.16.4.pdf[/url])
without closing TCP-connection after obtaining XML-document (or HTML-document as particular case)

each 'select ...' extracts data into LAN or WAN
(instead of 'insert ... select ...' and 'select ... into ...', coping data into internal DBMS table)

each 'select ... union ... select ...' interpreted as single extraction of xml into LAN or WAN

*) SQL5

in addition to slide
#31,etc of [url]http://sql50.euro.ru/sql5.16.4.pdf[/url]
statement
SELECT * FROM a.b.c COMMENTING a, b;
extracts comment of fields of "a", "b"
COMMENT a/@a1 BY "column title";
as first xml-elements <a>, <b> with additional (service) xml-attribute @_ (_=comment)

in addition to slide
#31-32, 39(Another output), 40 of [url]http://sql50.euro.ru/sql5.16.4.pdf[/url]
and
[url]http://html60.euro.ru/site/html60/en/author/looker_eng.htm[/url]
[url]http://html60.euro.ru/site/html60/en/author/combo_eng.htm[/url]
[url]http://html60.euro.ru/site/html60/en/author/tree_eng.htm[/url]
DBMS ends each answer to request by bament <?new/?>

instead of slide
#40 of [url]http://sql50.euro.ru/sql5.16.4.pdf[/url]
the following construction must be implemented
("downward" instead of "start by")
order by @a2 asc, @a3 desc, @a1 asc
downward @a1=100 @a2=null @a3="string"

order by @a2 asc, @a3 desc, @a1 asc
downward (select * from a where ... limit 1 )

order by @a2 asc, @a3 desc, @a1 asc
upward @a1=100 @a2=null @a3="string"

order by @a2 asc, @a3 desc, @a1 asc
upward (select * from a where ... limit 1 )
reason: features of MTD are moved into browser

in addition to slide
#173 of [url]http://sql50.euro.ru/sql5.16.4.pdf[/url]
authentification (obtaining username and password) must be implemented by baments
(look at slides #26-27) and is described nowhere


in addition to
[url]http://html60.euro.ru/site/html60/en/author/forxml_eng.htm[/url] (for "select * from A", i.e. extracting XML)
[url]http://html60.euro.ru/site/html60/en/author/quest_eng.htm#webforms_data[/url] (<data id="records">...</data>)
Each extraction of data into LAN or WAN is automatically:
- anticipated by content of field 'beginning' of system table 'SysXmlFormatting'
- ended by content of field 'end' of system table 'SysXmlFormatting'.
Other field of system table 'SysXmlFormatting' is URL
(which specifies browser URL; 'null' means all URL and is applied,
only if 'SysXmlFormatting' does not contain record with exact URL)

each 'select ...' (extracting data into LAN/WAN) is savepoint -
DBMS rollbacks to this savepoint, having obtained bament
<?back/?>

accepting bament
<?commit/?>
DBMS commits current transaction to point of previous 'select ...'

if table "b" below is created
--------------------------
| b1 | b2 | b3 |
|------------------------|
| | a1 | a2 | a3 |
|------------------------|
| |
| |
--------------------------
then expression
IMPLY b/@b3 as b/@b3/@a2;
influence so, that any 'SELECT @b3 FROM b' will extract only one elementary field (@a2)
instead of all branch elementary fields (@a1, @a2, @a3),
i.e. mentioned statement will be equivalent to 'SELECT @b3/@a2 FROM b'.
it's for multi-language applications (@a1, @a2, @a3 contain notes in different languages)

permissions for field are controlled by
GRANT/REVOKE SELECT/INSERT/UPDATE ON tab/@fld FOR user1;


in regard to
[url]http://html60.euro.ru/site/html60/en/author/forxml_eng.htm[/url]
[url]http://www.whatwg.org/specs/web-forms/current-work/#the-output[/url]
[url]http://lists.w3.org/Archives/Public/public-html/2007May/0173.html[/url]

DBMS creates separete CSS-file "username.css" for each user "username" in local (for DBMS) directory,
all slave tables are specified for each master table _after last column of master table_
(as ¶fieldname instead of §fieldname, that mark ¶ works like comment for this xml-attribute)
table[roll=M] ¶m20::after { cultivate:s; field:s5 }
table[roll=M] ¶m20::after::after { cultivate:ss; field:ss8 }
table[roll=M] ¶m20::after::after::after { cultivate:sss; field:ssss7 }

all accessable database fields (for user "username") are listed as re-writable, if user can update database field
t { display: table-row }
¶t1, ¶t2, ¶t3 { display: table-cell input} /* read-write */
or as read-only, if user cannot update database field after "REVOKE update ON t FOR user1"
t { display: table-row }
¶t1, ¶t2, ¶t3 { display: table-cell } /* read only */

bond between view A and table B, from which field was selected (by view), is similar to foreign key:
column of second table C, refering (by foreign key) to selected field of B, is directly accessable from virtual field of A.
DBMS lists all slave table for each view (view will be processed by html-element <table>):
create table b (...);
create table c (..., c5 int references b(@b1), ...);
create view a as select* from b;
table[roll=A] ¶b20::after { cultivate:c; field:c5 }

fields, calculated upon other fields and don't saved really, specified as calculated
¶t1 { value: §t2+§t3 }

CSS-files are available for editing for DBMS administrator.
DBMS does not re-write corrections, made manually.

Dmitry (SQL50, HTML60)

Responses

  • Re: SQL5 at 2008-11-17 08:57:21 from Dmitry Turin

Browse pgsql-jobs by date

  From Date Subject
Next Message Dmitry Turin 2008-11-17 08:57:21 Re: SQL5
Previous Message Mercurio, Juliana 2008-11-12 20:44:40 NYC Opening