A test generator produces a set of database query-language statements comprised
of randomly chosen elements for testing one or more database management systems
on arbitrary databases. The statements are syntactically correct according to the
query language, and are semantically correct according to the query language and
according to the schema of the target database. A configuration file further specifies
parameters of the test statements, in terms of maximum elements, weights of different
elements, etc. The generated statements include predicates in which tables in a
from clause are tightly joined. In addition, a dictionary of words randomly selected
from text columns in a test database is maintained and used to create predicates
having words that actually appear in the row data.