KERNEL, NEW

Ruslan Zasukhin sunshine at public.kherson.ua
Sat May 29 09:45:01 CDT 2004


On 5/29/04 1:59 AM, "Ruslan Zasukhin" <sunshine at public.kherson.ua> wrote:

Another new thing:

Each table now have ALWAYS 2 virtual fields
    
        RecID   -- unique ID of record in table.
        OID     -- unique ID of record in the scope of database. 8 bytes.

Problem is that REALbasic do not support 8 bytes integers.

OID -- this follow to ODMG standard of OO dbs.

But only Valentina eat ZERO byte on disk space and in RAM for these
fields!!!

Just image, all other dbs, including OO DBMS, will eat in million db
8MB of disk space, and even more if present index.

Having now OID, I have start develop idea of ObjectsPtr,
Note, it have "Objects", not "Object"

This ObjectsPtr by idea, will have size 8 byte,
And it will be able point TO ANY record of ANY table in the database!

This ObjectsPtr is not so simple thing. It have own traps.
I have not yet complete theoretical basic for it.

 
> Hi guys,
> 
> Just for info.
> 
> The next beta of V4RB includes such new features of kenel as
> 
> 
> ------------------
> Vtable class
> 
>   ID as integer   -- each table have unique ID.
>                       TMP tables have negative ID
> 
>   LinkCount  -- the number of links from this table.
>                 links can be
>                       -- ObjectPtr
>                       -- Foreign Key
>                       -- Binary Link
> 
>   Link( index ) as VLink
>   Link( name ) as VLink
> 
> 
> --------------
> Field class
> 
>   ID as integer
> 
> 
> 
> ------------
> Database class 
> 
>   LinkCount  -- the number of links from this table.
>                 links can be
>                       -- ObjectPtr
>                       -- Foreign Key
>                       -- Binary Link
> 
>   Link( index ) as VLink
>   Link( name ) as VLink
> 
> 
> -------------
> Link class. Totally new class for V4RB
> 
> 
> // Ala-properties:
> 
>   {    (REALproc) Link_get_Name,    REALnoImplementation,
>       "Name() as String"},
> 
>   {    (REALproc) Link_get_IsTemporary,    REALnoImplementation,
> "IsTemporary() as Boolean"},
>   {    (REALproc) Link_get_BranchCount,    REALnoImplementation,
> "BranchCount() as Integer"},
> 
>   {    (REALproc) Link_get_OnDelete,    REALnoImplementation, "OnDelete()
> as Integer"},
> //    {    (REALproc) Link_put_OnDelete,    REALnoImplementation, "OnDelete(
> Assigns v as Integer)"},
> 
>   {    (REALproc) Link_get_OnUpdate,    REALnoImplementation, "OnUpdate()
> as Integer"},
> //    {    (REALproc) Link_put_OnUpdate,    REALnoImplementation, "OnUpdate(
> Assigns v as Integer)"},
> 
> // Methods:
> 
>   {    (REALproc) Link_get_IsBetween,    REALnoImplementation,
>       "IsBetween( inTableA as VTable, inTableB as VTable ) as Boolean"},
> 
>   {    (REALproc) Link_get_Table,    REALnoImplementation,
>       "Table( inIndex as integer ) as VTable"},
>   
> 
> // Search Methods:
> 
>   {    (REALproc) Link_get_LinkedCount,    REALnoImplementation,
>       "CountLinked( inRecID as Integer, inTableA as VTable, inTableB as
> VTable ) as Integer"},
>       
> /*    {    (REALproc) Link_FindLinked,    REALnoImplementation,
>       "FindLinked( inRecID as Integer, inTableA as VTable, inTableB as
> VTable ) as VArraySet"},
> 
>   {    (REALproc) Link_FindExclusivelyLinked,    REALnoImplementation,
>       "FindExclusivelyLinked( inRecID as Integer, "
>                               "inTableA as VTable, inTableB as VTable ) as
> VArraySet"},
> 
>   {    (REALproc) Link_FindAllLinked,    REALnoImplementation,
>       "FindAllLinked( inTableA as VTable, inTableB as VTable ) as
> VBitSet"},
> */
> // 
> 
>   {    (REALproc) Link_LinkRecords,    REALnoImplementation,
>       "LinkRecords( inRecIDs() as Integer )"},
>       
>   {    (REALproc) Link_UnlinkRecords,    REALnoImplementation,
>       "UnlinkRecords( inRecIDs() as Integer )"},
>       
>   {    (REALproc) Link_DeleteLinkedRecords,    REALnoImplementation,
>       "DeleteLinkedRecords( inRecID as Integer, inTableA as VTable )"},
> 
>   {    (REALproc) Link_DeleteAllLinkedRecords,    REALnoImplementation,
>       "DeleteAllLinkedRecords( inTableA as VTable )"},
> 

-- 
Best regards,
Ruslan Zasukhin      [ I feel the need...the need for speed ]
-------------------------------------------------------------
e-mail: ruslan at paradigmasoft.com
web: http://www.paradigmasoft.com

To subscribe to the Valentina mail list go to:
http://lists.macserve.net/mailman/listinfo/valentina
-------------------------------------------------------------



More information about the Valentina-beta mailing list