Version: 4.0.2.5

Snooze: Object Relational Mapping of PLT Structures

Dave Gurnell, Noel Welsh, and Matt Jadud

{dave, noel, matt} at untyped

Snooze is an Object Relational Mapping (ORM) library similar to ActiveRecord or Hibernate. It provides a mapping from structures in PLT Scheme to rows in a relational database.

Snooze currently includes back-end code to connect to SQLite 3.6+ and PostgreSQL 8.3+ databases.

    1 Quick start

      1.1 Install a DBMS

      1.2 Link the Snooze API

      1.3 Start using Snooze

    2 Snooze modules

      2.1 DBMS independent code

      2.2 DBMS specific code

      2.3 Audit trail code

    3 Persistent structures

      3.1 Defining persistent structure types

      3.2 IDs and revisions

    4 Entities, relationships and attributes

      4.1 Entities

      4.2 Relationships

      4.3 Attributes

      4.4 Attribute types

      4.5 Shorthand types

      4.6 Persistent structure utilities

    5 Connecting to, querying and updating databases

      5.1 Object oriented interface

      5.2 Procedural interface

      5.3 Saving and deleting structures

    6 Queries

      6.1 Query procedures

      6.2 Working with generators

      6.3 Procedural query language

        6.3.1 Aliases

        6.3.2 Select statements

        6.3.3 #:from clauses

        6.3.4 #:what clauses

        6.3.5 Expressions

          6.3.5.1 Expression types

          6.3.5.2 Boolean operators

          6.3.5.3 Simple comparison functions

          6.3.5.4 Mathematical functions

          6.3.5.5 String and pattern matching functions

          6.3.5.6 Conditional functions

          6.3.5.7 Functions related to NULL

          6.3.5.8 IN functions

          6.3.5.9 Aggregate functions

        6.3.6 #:order clauses

        6.3.7 #:group and #:having clauses

      6.4 Syntax query language

      6.5 Underlying query structures

    7 Acknowledgements