6.1.4.2 Command Intrinsics

Some commands are defined in all extended relational-databases. The are called just like Database Operations.

Operation on relational-database: add-domain domain-row

Adds domain-row to the domains table if there is no row in the domains table associated with key (car domain-row) and returns #t. Otherwise returns #f.

For the fields and layout of the domain table, See Catalog Representation. Currently, these fields are

  • domain-name
  • foreign-table
  • domain-integrity-rule
  • type-id
  • type-param

The following example adds 3 domains to the ‘build’ database. ‘Optstring’ is either a string or #f. filename is a string and build-whats is a symbol.

(for-each (build 'add-domain)
          '((optstring #f
                       (lambda (x) (or (not x) (string? x)))
                       string
                       #f)
            (filename #f #f string #f)
            (build-whats #f #f symbol #f)))
Operation on relational-database: delete-domain domain-name

Removes and returns the domain-name row from the domains table.

Operation on relational-database: domain-checker domain

Returns a procedure to check an argument for conformance to domain domain.