According to the Hyperspec, a method must accept all keywords which are part of the generic function definition. They can accept more, but at least they have to accept those ones.
The problem with cl-dbi is that it does not have an explicit defgeneric statement for dbi-interface.pepare. This means that the first method that appears, which is in src/driver.lisp, gets to set the generic function list, including a &key query-class argument. Unfortunately, none of the child files includes this keyword arguments in the subsequent method definitions.
According to the Hyperspec, a method must accept all keywords which are part of the generic function definition. They can accept more, but at least they have to accept those ones.
The problem with cl-dbi is that it does not have an explicit defgeneric statement for dbi-interface.pepare. This means that the first method that appears, which is in src/driver.lisp, gets to set the generic function list, including a &key query-class argument. Unfortunately, none of the child files includes this keyword arguments in the subsequent method definitions.
The following patch solves the problem: https://dl.dropbox.com/u/23177754/121021-cl-dbi.patch