1import ProjectM36.Client
2import ProjectM36.TupleSet
3import ProjectM36.Relation.Show.Term
7 -- 1. create a ConnectionInfo
8 let connInfo = RemoteProcessConnectionInfo "mytestdb" (createNodeId "127.0.0.1" defaultServerPort) emptyNotificationCallback
9 -- 2. conncted to the remote database
10 eConn <- connectProjectM36 connInfo
14 --3. create a session on the "master" branch
15 eSessionId <- createSessionAtHead conn "master"
19 --4. define a new relation variable with a DatabaseContext expression
20 let attrList = [Attribute "name" TextAtomType,
21 Attribute "age" IntAtomType]
22 attrs = attributesFromList attrList
23 mErr1 <- executeDatabaseContextExpr sessionId conn (Define "person" (map NakedAttributeExpr attrList))
25 --5. add a tuple to the relation referenced by the relation variable
26 let (Right tupSet) = mkTupleSetFromList attrs [[TextAtom "Bob", IntAtom 45]]
27 mErr2 <- executeDatabaseContextExpr sessionId conn (Insert "person" (MakeStaticRelation attrs tupSet))
30 --6. execute a relational algebra query
31 let restrictionPredicate = AttributeEqualityPredicate "name" (NakedAtomExpr (TextAtom "Steve"))
32 eRel <- executeRelationalExpr sessionId conn (Restrict restrictionPredicate (RelationVariable "person" ()))
35 Right rel -> print (showRelation rel)
37 --7. close the connection
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list