Newbie questions about Pliant

Newbie questions about Pliant

Error DB example

Message posted by maybe Marcus on 2002/05/09 12:05:02
In pliant/appli/database/index.page, we find the following example:

module "/pliant/appli/database.pli"
 type Multi
   field Int k <- undefined
   field Str l
 type Test # this will be the records, with 'm' being a 1-n relation
   field Int i <- 5
   field Int j <- 10
   field Str ab <- "default"
   field Set:Multi m

gvar (Database Set:Test) db
 db load "file:/tmp/test.pdb"

which, when compiled, produces the following error:
Failed to compile gvar   (Type rc  'db'  ?)
  compile file:db.pli (internals) 10 1
  compile file:db.pli (internals) 10 1
  compile file:db.pli (internals) 10 1
  parse file:db.pli (internals) 23 1
  module file:db.pli

Why?
Message posted by maybe Hubert Tonneau on 2002/05/09 12:08:18
Because indenting is wrong. Should be:

module "/pliant/appli/database.pli"

type Multi
  field Int k <- undefined
  field Str l

type Test # this will be the records, with 'm' being a 1-n relation
  field Int i <- 5
  field Int j <- 10
  field Str ab <- "default"
  field Set:Multi m

gvar (Database Set:Test) db
db load "file:/tmp/test.pdb"
Message posted by maybe Marcus on 2002/05/09 12:19:01
Oops. My mistake. I was testing sth else and end up misindenting sth.

 The problem is actually with the folloing code (now prolerly indented:-)

 module "/pliant/appli/database.pli"
 type Multi
    field Int k <- undefined
    field Str l
 type Test # this will be the records, with 'm' being a 1-n relation
    field Int i <- 5
    field Int j <- 10
    field Str ab <- "default"
    field Set:Multi m

 type Db
   field Set:Test recs
  
 gvar (Database Set:Test) db
 db load "file:/tmp/test.pdb"

 # Thus is the first example mentioned in that page
 console db:"abc":i eol

 When compiled, produces the following error:

 Failed to compile db   (Str rc)
   compile file:db1.pli (internals) 19 9
   compile file:db1.pli (internals) 19 17
   compile file:db1.pli (internals) 19 17
   compile file:db1.pli (internals) 19 1
   compile file:db1.pli (internals) 19 1
   compile file:db1.pli (internals) 19 1
   compile file:db1.pli (internals) 19 1
   parse file:db1.pli (internals) 20 1
   module file:db1.pli

Wny?
Message posted by maybe Hubert Tonneau on 2002/05/09 12:31:40
In early releases of the Pliant database engine, a database was also a data
(implicit cast) so you could write:
  console db:"abc":i eol

It raised some problems, so now, accessing the root data of the database is
done through 'data' method.
As a result, you now have to write:
  console db:data:"abc":i eol
Message posted by maybe Marcus on 2002/05/09 13:21:41
Enlightening.

Since my students are most likely going to study the database engine 
documentation, I am currently reviewing it.
Message posted by maybe Marcus on 2002/05/09 17:20:10
I have finished reviewing it. Any comments?