⚡ Sangsakala Proxy 🏠 Home
Skip to content

doc: add QPG - #663

Merged
bajinsheng merged 1 commit into
sqlancer:masterfrom
bajinsheng:master
Dec 19, 2022
Merged

bajinsheng merged 1 commit into
sqlancer:masterfrom
bajinsheng:master

Conversation

@bajinsheng

Copy link
Copy Markdown
Collaborator

No description provided.

@bajinsheng
bajinsheng requested a review from mrigger December 19, 2022 08:35
@bajinsheng bajinsheng mentioned this pull request Dec 19, 2022
Comment thread README.md Outdated
# Generation Approaches
| Approach | Description |
|----------|-------------|
| Random Generation | Rnadom generation is the raw and default test case generation approach in SQLancer. First, random tables are generated. Then queries are randomly generated based on the schemas of the tables. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Random generation is the default test case generation approach in SQLancer.

Comment thread README.md Outdated
| Approach | Description |
|----------|-------------|
| Random Generation | Rnadom generation is the raw and default test case generation approach in SQLancer. First, random tables are generated. Then queries are randomly generated based on the schemas of the tables. |
| Query Plan Guidance (QPG) | QPG is a test case generation method guided by query plan coverage. Given a database state, we mutate it when no new unique query plan has been covered by the random generated queries on the database state aiming to cover more unqiue query plans for exposing more logics of DBMSs. This approach is enabled by option `--qpg-enable` and now supports TLP and NoREC oracles for SQLite, CockroachDB, and TiDB. |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given a database state, we mutate it after no new unique query plans have been observed by randomly-generated queries on the database state aiming to cover more unique query plans for exposing more logics of DBMSs. This approach is enabled by option --qpg-enable and now supports TLP and NoREC oracles for SQLite, CockroachDB, and TiDB.

@bajinsheng
bajinsheng enabled auto-merge (squash) December 19, 2022 08:46
@bajinsheng
bajinsheng requested a review from mrigger December 19, 2022 08:46
@bajinsheng
bajinsheng merged commit 327ac29 into sqlancer:master Dec 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants