Test generator for database management systems providing tight joins
First Claim
1. A computer-implemented system for creating a SQL statement, the system comprising:
- means for generating a SQL statement having a from clause, the from clause include a plurality of table names;
means for creating a plurality of table sets from the plurality of table names;
means for iterating of the plurality of table sets until one table set remains and for each iteration performing the tasks of;
means for selecting a first table set and a second table set from the plurality of table sets;
means for selecting a first table from the first table set and selecting a second table from the second table set;
means for selecting a first colunm in the first table and selecting a second colunm from the second table;
means for inserting into a where clause for the SQL statement a predicate including the first column and the second column; and
means for merging the first table set and the second table set.
1 Assignment
0 Petitions
Accused Products
Abstract
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.
-
Citations
18 Claims
-
1. A computer-implemented system for creating a SQL statement, the system comprising:
-
means for generating a SQL statement having a from clause, the from clause include a plurality of table names; means for creating a plurality of table sets from the plurality of table names; means for iterating of the plurality of table sets until one table set remains and for each iteration performing the tasks of; means for selecting a first table set and a second table set from the plurality of table sets; means for selecting a first table from the first table set and selecting a second table from the second table set; means for selecting a first colunm in the first table and selecting a second colunm from the second table; means for inserting into a where clause for the SQL statement a predicate including the first column and the second column; and means for merging the first table set and the second table set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for performing a method for creating a SQL statement, comprising:
-
a plurality of table names; a SQL statement having a from clause, the from clause including the plurality of table names; a plurality of table sets created from the plurality of table names, wherein the plurality of table sets are iterated until one table set remains and for each iteration; a first table set and a second table set selected from the plurality of table sets; a first table selected from the first table set; a second table selected from the second table set; a first column selected from the first table; and a second column selected from the second table, wherein a predicate is inserted into a where clause for the SQL statement, and wherein the predicate includes the first column and the second column, and wherein the first table set and the second table set are merged. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification