This project generates SQL assignments based on common mistakes made by learners.
Project description
sql-assignment-generation
Automated generation of SQL assignments based on misconceptions.
Misconceptions - To Do List
Misconceptions are based on Taipalus' error categorization.
Syntax errors
Ambiguous Database Object
- SYN_1_AMBIGUOUS_DATABASE_OBJECT_OMITTING_CORRELATION_NAMES
- SYN_1_AMBIGUOUS_DATABASE_OBJECT_AMBIGUOUS_COLUMN
- SYN_1_AMBIGUOUS_DATABASE_OBJECT_AMBIGUOUS_FUNCTION
Undefined Database Object
- SYN_2_UNDEFINED_DATABASE_OBJECT_UNDEFINED_COLUMN
- SYN_2_UNDEFINED_DATABASE_OBJECT_UNDEFINED_FUNCTION
- SYN_2_UNDEFINED_DATABASE_OBJECT_UNDEFINED_PARAMETER
- SYN_2_UNDEFINED_DATABASE_OBJECT_UNDEFINED_OBJECT
- SYN_2_UNDEFINED_DATABASE_OBJECT_INVALID_SCHEMA_NAME
- SYN_2_UNDEFINED_DATABASE_OBJECT_MISSPELLINGS
- SYN_2_UNDEFINED_DATABASE_OBJECT_SYNONYMS
- SYN_2_UNDEFINED_DATABASE_OBJECT_OMITTING_QUOTES_AROUND_CHARACTER_DATA
Data Type Mismatch
- SYN_3_DATA_TYPE_MISMATCH_FAILURE_TO_SPECIFY_COLUMN_NAME_TWICE
- SYN_3_DATA_TYPE_MISMATCH
Illegal Aggregate Function Placement
- SYN_4_ILLEGAL_AGGREGATE_FUNCTION_PLACEMENT_USING_AGGREGATE_FUNCTION_OUTSIDE_SELECT_OR_HAVING
- SYN_4_ILLEGAL_AGGREGATE_FUNCTION_PLACEMENT_GROUPING_ERROR_AGGREGATE_FUNCTIONS_CANNOT_BE_NESTED
Illegal Or Insufficient Grouping
- SYN_5_ILLEGAL_OR_INSUFFICIENT_GROUPING_GROUPING_ERROR_EXTRANEOUS_OR_OMITTED_GROUPING_COLUMN
- SYN_5_ILLEGAL_OR_INSUFFICIENT_GROUPING_STRANGE_HAVING_HAVING_WITHOUT_GROUP_BY
Common Syntax Error
- SYN_6_COMMON_SYNTAX_ERROR_CONFUSING_FUNCTION_WITH_FUNCTION_PARAMETER
- SYN_6_COMMON_SYNTAX_ERROR_USING_WHERE_TWICE
- SYN_6_COMMON_SYNTAX_ERROR_OMITTING_THE_FROM_CLAUSE
- SYN_6_COMMON_SYNTAX_ERROR_COMPARISON_WITH_NULL
- SYN_6_COMMON_SYNTAX_ERROR_OMITTING_THE_SEMICOLON
- SYN_6_COMMON_SYNTAX_ERROR_DATE_TIME_FIELD_OVERFLOW
- SYN_6_COMMON_SYNTAX_ERROR_DUPLICATE_CLAUSE
- SYN_6_COMMON_SYNTAX_ERROR_USING_AN_UNDEFINED_CORRELATION_NAME
- SYN_6_COMMON_SYNTAX_ERROR_TOO_MANY_COLUMNS_IN_SUBQUERY
- SYN_6_COMMON_SYNTAX_ERROR_CONFUSING_TABLE_NAMES_WITH_COLUMN_NAMES
- SYN_6_COMMON_SYNTAX_ERROR_RESTRICTION_IN_SELECT_CLAUSE
- SYN_6_COMMON_SYNTAX_ERROR_PROJECTION_IN_WHERE_CLAUSE
- SYN_6_COMMON_SYNTAX_ERROR_CONFUSING_THE_ORDER_OF_KEYWORDS
- SYN_6_COMMON_SYNTAX_ERROR_CONFUSING_THE_LOGIC_OF_KEYWORDS
- SYN_6_COMMON_SYNTAX_ERROR_CONFUSING_THE_SYNTAX_OF_KEYWORDS
- SYN_6_COMMON_SYNTAX_ERROR_OMITTING_COMMAS
- SYN_6_COMMON_SYNTAX_ERROR_CURLY_SQUARE_OR_UNMATCHED_BRACKETS
- SYN_6_COMMON_SYNTAX_ERROR_IS_WHERE_NOT_APPLICABLE
- SYN_6_COMMON_SYNTAX_ERROR_NONSTANDARD_KEYWORDS_OR_STANDARD_KEYWORDS_IN_WRONG_CONTEXT
- SYN_6_COMMON_SYNTAX_ERROR_NONSTANDARD_OPERATORS
- SYN_6_COMMON_SYNTAX_ERROR_ADDITIONAL_SEMICOLON
Semantic Errors
Inconsistent Expression
- SEM_1_INCONSISTENT_EXPRESSION_AND_INSTEAD_OF_OR
- SEM_1_INCONSISTENT_EXPRESSION_TAUTOLOGICAL_OR_INCONSISTENT_EXPRESSION
- SEM_1_INCONSISTENT_EXPRESSION_DISTINCT_IN_SUM_OR_AVG
- SEM_1_INCONSISTENT_EXPRESSION_DISTINCT_THAT_MIGHT_REMOVE_IMPORTANT_DUPLICATES
- SEM_1_INCONSISTENT_EXPRESSION_WILDCARDS_WITHOUT_LIKE
- SEM_1_INCONSISTENT_EXPRESSION_INCORRECT_WILDCARD_USING_UNDERSCORE_INSTEAD_OF_PERCENT
- SEM_1_INCONSISTENT_EXPRESSION_MIXING_A_GREATER_THAN_0_WITH_IS_NOT_NULL
Inconsistent Join
- SEM_2_INCONSISTENT_JOIN_NULL_IN_IN_ANY_ALL_SUBQUERY
- SEM_2_INCONSISTENT_JOIN_JOIN_ON_INCORRECT_COLUMN
Missing Join
- SEM_3_MISSING_JOIN_OMITTING_A_JOIN
Duplicate Rows
- SEM_4_DUPLICATE_ROWS_MANY_DUPLICATES
Redundant Column Output
- SEM_5_REDUNDANT_COLUMN_OUTPUT_CONSTANT_COLUMN_OUTPUT
- SEM_5_REDUNDANT_COLUMN_OUTPUT_DUPLICATE_COLUMN_OUTPUT
Logical Errors
Operator Error
- LOG_1_OPERATOR_ERROR_OR_INSTEAD_OF_AND
- LOG_1_OPERATOR_ERROR_EXTRANEOUS_NOT_OPERATOR
- LOG_1_OPERATOR_ERROR_MISSING_NOT_OPERATOR
- LOG_1_OPERATOR_ERROR_SUBSTITUTING_EXISTENCE_NEGATION_WITH_NOT_EQUAL_TO
- LOG_1_OPERATOR_ERROR_PUTTING_NOT_IN_FRONT_OF_INCORRECT_IN_OR_EXISTS
- LOG_1_OPERATOR_ERROR_INCORRECT_COMPARISON_OPERATOR_OR_VALUE
Join Error
- LOG_2_JOIN_ERROR_JOIN_ON_INCORRECT_TABLE
- LOG_2_JOIN_ERROR_JOIN_WHEN_JOIN_NEEDS_TO_BE_OMITTED
- LOG_2_JOIN_ERROR_JOIN_ON_INCORRECT_COLUMN_MATCHES_POSSIBLE
- LOG_2_JOIN_ERROR_JOIN_WITH_INCORRECT_COMPARISON_OPERATOR
- LOG_2_JOIN_ERROR_MISSING_JOIN
Nesting Error
- LOG_3_NESTING_ERROR_IMPROPER_NESTING_OF_EXPRESSIONS
- LOG_3_NESTING_ERROR_IMPROPER_NESTING_OF_SUBQUERIES
Expression Error
- LOG_4_EXPRESSION_ERROR_EXTRANEOUS_QUOTES
- LOG_4_EXPRESSION_ERROR_MISSING_EXPRESSION
- LOG_4_EXPRESSION_ERROR_EXPRESSION_ON_INCORRECT_COLUMN
- LOG_4_EXPRESSION_ERROR_EXTRANEOUS_EXPRESSION
- LOG_4_EXPRESSION_ERROR_EXPRESSION_IN_INCORRECT_CLAUSE
Projection Error
- LOG_5_PROJECTION_ERROR_EXTRANEOUS_COLUMN_IN_SELECT
- LOG_5_PROJECTION_ERROR_MISSING_COLUMN_FROM_SELECT
- LOG_5_PROJECTION_ERROR_MISSING_DISTINCT_FROM_SELECT
- LOG_5_PROJECTION_ERROR_MISSING_AS_FROM_SELECT
- LOG_5_PROJECTION_ERROR_MISSING_COLUMN_FROM_ORDER_BY
- LOG_5_PROJECTION_ERROR_INCORRECT_COLUMN_IN_ORDER_BY
- LOG_5_PROJECTION_ERROR_EXTRANEOUS_ORDER_BY_CLAUSE
- LOG_5_PROJECTION_ERROR_INCORRECT_ORDERING_OF_ROWS
Function Error
- LOG_6_FUNCTION_ERROR_DISTINCT_AS_FUNCTION_PARAMETER_WHERE_NOT_APPLICABLE
- LOG_6_FUNCTION_ERROR_MISSING_DISTINCT_FROM_FUNCTION_PARAMETER
- LOG_6_FUNCTION_ERROR_INCORRECT_FUNCTION
- LOG_6_FUNCTION_ERROR_INCORRECT_COLUMN_AS_FUNCTION_PARAMETER
Complications
- COM_1_COMPLICATION_UNNECESSARY_COMPLICATION
- COM_1_COMPLICATION_UNNECESSARY_DISTINCT_IN_SELECT_CLAUSE
- COM_1_COMPLICATION_UNNECESSARY_JOIN
- COM_1_COMPLICATION_UNUSED_CORRELATION_NAME
- COM_1_COMPLICATION_CORRELATION_NAMES_ARE_ALWAYS_IDENTICAL
- COM_1_COMPLICATION_UNNECESSARILY_GENERAL_COMPARISON_OPERATOR
- COM_1_COMPLICATION_LIKE_WITHOUT_WILDCARDS
- COM_1_COMPLICATION_UNNECESSARILY_COMPLICATED_SELECT_IN_EXISTS_SUBQUERY
- COM_1_COMPLICATION_IN_EXISTS_CAN_BE_REPLACED_BY_COMPARISON
- COM_1_COMPLICATION_UNNECESSARY_AGGREGATE_FUNCTION
- COM_1_COMPLICATION_UNNECESSARY_DISTINCT_IN_AGGREGATE_FUNCTION
- COM_1_COMPLICATION_UNNECESSARY_ARGUMENT_OF_COUNT
- COM_1_COMPLICATION_UNNECESSARY_GROUP_BY_IN_EXISTS_SUBQUERY
- COM_1_COMPLICATION_GROUP_BY_WITH_SINGLETON_GROUPS
- COM_1_COMPLICATION_GROUP_BY_CAN_BE_REPLACED_WITH_DISTINCT
- COM_1_COMPLICATION_UNION_CAN_BE_REPLACED_BY_OR
- COM_1_COMPLICATION_UNNECESSARY_COLUMN_IN_ORDER_BY_CLAUSE
- COM_1_COMPLICATION_ORDER_BY_IN_SUBQUERY
- COM_1_COMPLICATION_INEFFICIENT_HAVING
- COM_1_COMPLICATION_INEFFICIENT_UNION
- COM_1_COMPLICATION_CONDITION_IN_SUBQUERY_CAN_BE_MOVED_UP
- COM_1_COMPLICATION_CONDITION_ON_LEFT_TABLE_IN_LEFT_OUTER_JOIN
- COM_1_COMPLICATION_OUTER_JOIN_CAN_BE_REPLACED_BY_INNER_JOIN
- COM_X_COMPLICATION_JOIN_CONDITION_IN_WHERE_CLAUSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sql_assignment_generator-0.0.1.tar.gz.
File metadata
- Download URL: sql_assignment_generator-0.0.1.tar.gz
- Upload date:
- Size: 16.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feb5dc38382250a959a63ad99e54520c6f311bdd343c03864516cd0efe657b18
|
|
| MD5 |
dc0f0c0c9d96e0312e9ccd71e73a3daa
|
|
| BLAKE2b-256 |
4e3349ca9c07782c95121b00ff6b1aabd800514297b8d0d59f7b992b6e5a6f4a
|
File details
Details for the file sql_assignment_generator-0.0.1-py3-none-any.whl.
File metadata
- Download URL: sql_assignment_generator-0.0.1-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0rc1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f216b2b9247567adca2cb38f04a4397a50f26f7f3ce2f2ae0f1bf8c088ebf3a0
|
|
| MD5 |
fc0b7d90548d41b5c4bd2fd1cff13ff4
|
|
| BLAKE2b-256 |
7c026f4b151585a896870525a54505e0552489119b8b42309aaf5cabf186ba59
|