Next: , Previous: Single Row Operations, Up: Table Operations


6.1.2.2 Match-Keys

The (optional) match-key1 ... arguments are used to restrict actions of a whole-table operation to a subset of that table. Those procedures (returned by methods) which accept match-key arguments will accept any number of match-key arguments between zero and the number of primary keys in the table. Any unspecified match-key arguments default to #f.

The match-key1 ... restrict the actions of the table command to those records whose primary keys each satisfy the corresponding match-key argument. The arguments and their actions are:

#f
The false value matches any key in the corresponding position.
an object of type procedure
This procedure must take a single argument, the key in the corresponding position. Any key for which the procedure returns a non-false value is a match; Any key for which the procedure returns a #f is not.
other values
Any other value matches only those keys equal? to it.
— Operation on relational-table: get* column-name

Returns a procedure of optional arguments match-key1 ... which returns a list of the values for the specified column for all rows in this table. The optional match-key1 ... arguments restrict actions to a subset of the table.

          ((plat 'get* 'processor)) ⇒
          (i386 i8086 i386 i8086 i386 i386 i8086 m68000
           m68000 m68000 m68000 m68000 powerpc)
          
          ((plat 'get* 'processor) #f) ⇒
          (i386 i8086 i386 i8086 i386 i386 i8086 m68000
           m68000 m68000 m68000 m68000 powerpc)
          
          (define (a-key? key)
             (char=? #\a (string-ref (symbol->string key) 0)))
          
          ((plat 'get* 'processor) a-key?) ⇒
          (m68000 m68000 m68000 m68000 m68000 powerpc)
          
          ((plat 'get* 'name) a-key?) ⇒
          (atari-st-turbo-c atari-st-gcc amiga-sas/c-5.10
           amiga-aztec amiga-dice-c aix)