layerMySqlGeneration 65

May depend on Grammar, Generation, MySqlGrammar, Faker.

Namespaces§

Classes 64§

GenerationContext @visibility rootSqlFaker\MySql\GenerationBinds the MySql grammar and lexical declarations to the common SQL generation engine.
GenerationPlans @visibility rootSqlFaker\MySql\GenerationNames the generation plans this dialect's provider is built from.
LexicalGrammar @visibility rootSqlFaker\MySql\GenerationMySQL lexical generation using source-based candidate and boundary definitions. Tokenization is exposed separately for diagnostics and does not decide generation success.
StartRuleResolver @visibility rootSqlFaker\MySql\GenerationResolves MySQL rule names across grammar releases.
BoundedIntegerLexemeGeneratorSqlFaker\MySql\Generation\LexemeRestricts MySQL decimal and hexadecimal forms to a source-defined nonnegative 31-bit interval.
CharsetLexemeGeneratorSqlFaker\MySql\Generation\Lexemesql_yacc.yy literal actions require introduced bytes to be well formed in the selected character set.
CharsetValueLexemeGeneratorSqlFaker\MySql\Generation\Lexemesql_yacc.yy literal actions impose charset validity on introduced string, hex and bit values.
DefinitionFactorySqlFaker\MySql\Generation\LexemeDeclares scanner values, fixed spellings, contextual domains and spacing for each exact release. Source tags match every MySQL release in resources/version.php; lex.h links accompany the keyword declarations. Create_field::init is in field.cc for MySQL 5.6/5.7 and create_field.cc for MySQL 8.x/9.x.
FactorLexemeGeneratorSqlFaker\MySql\Generation\Lexemesql_yacc.yy/factor accepts exactly 2 or 3; paired ALTER USER factors differ and ADD factors ascend.
KeywordLexemeGeneratorSqlFaker\MySql\Generation\LexemeImplements lex.h registration classes and sql_lex.cc find_keyword/function lookahead. A SYM_FN spelling needs an opening parenthesis when used as a function.
LexicalDefinitionSqlFaker\MySql\Generation\LexemeCarries one lexical composition and its tokenizer and token-budget metadata.
PrecisionLexemeGeneratorSqlFaker\MySql\Generation\LexemeCreate_field::init requires M >= D; my_decimal_trim gives (0,0) its default precision.
ReplicationTablePatternLexemeGeneratorSqlFaker\MySql\Generation\Lexemesql_yacc.yy:filter_wild_db_table_string requires a dot and forbids line feeds after get_text decoding.
SizeNumberLexemeGeneratorSqlFaker\MySql\Generation\LexemeSupplies identifier-form sizes accepted by sql_yacc.yy:size_number, with a 31-bit magnitude prefix.
AlterDatabaseRuleSqlFaker\MySql\Generation\Rewritesql/sql_yacc.yy ident_or_empty and alter_database_options compete for an initial option keyword that is also allowed as an identifier.
AlterEventRuleSqlFaker\MySql\Generation\Rewritesql_yacc.yy/alter_event_stmt requires at least one event alteration after its name.
ConstraintEnforcementRuleSqlFaker\MySql\Generation\Rewritesql/sql_yacc.yy column_attribute_list allows enforcement only immediately after a CHECK attribute.
FlushExportRuleSqlFaker\MySql\Generation\Rewritesql_yacc.yy/opt_flush_lock requires a table list for FOR EXPORT, but not for WITH READ LOCK.
GeneratedColumnRuleSqlFaker\MySql\Generation\Rewriteparse_tree_column_attrs.h rejects SERIAL and storage/default attributes on generated fields.
InstanceActionRuleSqlFaker\MySql\Generation\RewriteImplements the contextual identifier checks in sql_yacc.yy/alter_instance_action and opt_source_count.
IntegerContextRuleSqlFaker\MySql\Generation\RewriteCompletes source-defined integer contexts in sql_yacc.yy, including diagnostic decimal alternatives.
IntoClauseRuleSqlFaker\MySql\Generation\RewritePT_subquery rejects INTO in subqueries; sql_lex.cc/new_set_operation_query allows it only in the final SELECT. sql_yacc.yy/view_query_block disables SELECT destinations throughout a view definition.
LoadSourceCountRuleSqlFaker\MySql\Generation\Rewritesql_yacc.yy/opt_source_count requires the identifier COUNT and a nonzero NUM value.
RequiredAliasRuleSqlFaker\MySql\Generation\Rewritesql_yacc.yy marks derived-table and JSON_TABLE aliases optional solely to provide a targeted diagnostic.
RewriteDefinitionsSqlFaker\MySql\Generation\RewriteDeclares structural repairs of MySQL parser diagnostic alternatives and ambiguity.
RoleGrantRuleSqlFaker\MySql\Generation\Rewritesql_yacc.yy/grant and revoke share privilege syntax, but PT_grant_roles requires role identifiers without ON.
SetNamesRuleSqlFaker\MySql\Generation\Rewritesql/sql_yacc.yy option_value_no_option_type declares NAMES equal expr solely to reject it.
SubqueryContextRuleSqlFaker\MySql\Generation\RewritePT_subquery and partition contextualization forbid subqueries in these statement expressions.
TransactionCompletionRuleSqlFaker\MySql\Generation\Rewritesql_yacc.yy commit/rollback reject simultaneous affirmative CHAIN and RELEASE.
OrderByRuleSqlFaker\MySql\Generation\Rewrite\Altersql_yacc.yy alter_order_list shifts comma plus identifier before reducing alter_list. Keeping ORDER BY last prevents a following nonreserved action from becoming an order item.
AutoIncrementRuleSqlFaker\MySql\Generation\Rewrite\Columncreate_field.cc/Create_field::init permits AUTO_INCREMENT only for integer storage types.
FieldLengthRuleSqlFaker\MySql\Generation\Rewrite\Columncreate_field.cc/Create_field::init checks display widths after the scanner accepts field_length.
ConcatenationRuleSqlFaker\MySql\Generation\Rewrite\ExpressionDefault SQL mode scans || as OR2_SYM; the OR_OR_SYM production constructs Item_func_concat. Preserve its operands and precedence by expressing that production as a native function call.
ExpressionGroupingRuleSqlFaker\MySql\Generation\Rewrite\ExpressionPreserves derived operand grouping where the source grammar permits parenthesized expressions. This also prevents non-associative operators from being serialized as forbidden flat chains.
QuantifiedComparisonRuleSqlFaker\MySql\Generation\Rewrite\Expressionsql_yacc.yy:bool_pri explicitly rejects null-safe equality before ALL or ANY.
TableValueConstructorRuleSqlFaker\MySql\Generation\Rewrite\Expressionsql_resolver.cc disallows empty rows and DEFAULT outside an INSERT table value constructor.
HostNameRuleSqlFaker\MySql\Generation\Rewrite\Namesql_lex.cc enters MY_LEX_HOSTNAME only after a single at sign, including account and user-variable names.
SystemVariableRuleSqlFaker\MySql\Generation\Rewrite\Namesql_lex.cc/MY_LEX_SYSTEM_VAR accepts an identifier or backtick immediately after the second at-sign.
UniqueOptionRuleSqlFaker\MySql\Generation\Rewrite\OptionApplies a source-defined uniqueness condition within one grammar scope.
DefinitionRuleSqlFaker\MySql\Generation\Rewrite\PartitionPT_part_definition requires one partition kind for the list; PT_partition checks its declared count.
FieldListRuleSqlFaker\MySql\Generation\Rewrite\Partitionsql_const.h:MAX_REF_PARTS limits partition and subpartition field lists to sixteen names.
ListValueRuleSqlFaker\MySql\Generation\Rewrite\Partitionparse_tree_partitions.cc/PT_part_value_item_max forbids MAXVALUE in a VALUES IN list.
ValueArityRuleSqlFaker\MySql\Generation\Rewrite\Partitionparse_tree_partitions.cc requires a common value width, and two or more fields for LIST rows. Runs after kind selection, expression grouping and scalar-list disambiguation.
ValueShapeSqlFaker\MySql\Generation\Rewrite\PartitionModels the scalar and row value lists of sql_yacc.yy:part_values_in and part_func_max.
JoinGroupingRuleSqlFaker\MySql\Generation\Rewrite\Querysql_yacc.yy:joined_table defers conditionless joins; joined_table_parens preserves each derived join operand.
QueryContextRuleSqlFaker\MySql\Generation\Rewrite\Querysql_lex.cc restricts query options; sql_yacc.yy provides AS to disambiguate CREATE query sources.
WindowFrameRuleSqlFaker\MySql\Generation\Rewrite\QueryPreserves the frame boundary ordering and interval units required by window.cc.
StartRuleSqlFaker\MySql\Generation\Rewrite\Replicationsql_yacc.yy requires the IO thread when START REPLICA/SLAVE supplies authentication options.
TablePatternRuleSqlFaker\MySql\Generation\Rewrite\ReplicationMaps replication table filters to the string domain checked by sql_yacc.yy.
LanguageRuleSqlFaker\MySql\Generation\Rewrite\Routinesql_yacc.yy/stored_routine_body requires a non-SQL language for AS strings and SQL for statement bodies.
ReturnRuleSqlFaker\MySql\Generation\Rewrite\Routinesql_yacc.yy/sp_proc_stmt_return permits RETURN only in stored functions.
CloneAddressSpacingRuleSqlFaker\MySql\Generation\Spacingsql/sql_yacc.yy clone_stmt checks the raw token positions on both sides of the port colon.
FunctionSpacingRuleSqlFaker\MySql\Generation\Spacingsql/sql_lex.cc MY_LEX_IDENT: SYM_FN lookup requires a directly following parenthesis.
KeywordPhraseSpacingRuleSqlFaker\MySql\Generation\SpacingPreserves word boundaries inside explicitly declared compound keyword candidates.
QualifiedNameSpacingRuleSqlFaker\MySql\Generation\Spacingsql/sql_lex.cc MY_LEX_IDENT_SEP / MY_LEX_IDENT_START: preserves qualified-name adjacency.
VariableSpacingRuleSqlFaker\MySql\Generation\Spacingsql/sql_lex.cc MY_LEX_USER_END, MY_LEX_HOSTNAME and MY_LEX_SYSTEM_VAR consume adjacent input.
KeywordIndex @visibility rootSqlFaker\MySql\Generation\TokenizationTurns a terminal's spellings into a lookup from spelling to terminal.
MySqlQuoting @visibility rootSqlFaker\MySql\Generation\TokenizationEncodes chosen text using MySQL quoting rules, independently of generation.
MySqlTokenizer @visibility rootSqlFaker\MySql\Generation\TokenizationReads MySQL text back into the parser tokens the server would produce.
DollarQuotedDomainSqlFaker\MySql\Generation\ValueReuses one chosen tag at both boundaries; the declared body alphabet excludes dollars.
IdentifierDomainSqlFaker\MySql\Generation\ValueScanner start/continuation alphabets with a safe sampling prefix for generated names.
LiteralGenerator @visibility rootSqlFaker\MySql\Generation\ValueGenerates MySql literal bodies for the bounded lexical API.
QuotedDomainSqlFaker\MySql\Generation\ValueOne quoted scanner state: delimiter, optional prefix, doubling and optional backslash escapes.
RadixDomainSqlFaker\MySql\Generation\ValuePrefixed and quoted radix literals. Whole-byte sampling is a charset constraint; the same lexical declaration reads ordinary and explicitly requested bytes.

Enums 1§

StatementRule public APISqlFaker\MySql\GenerationStatement start rules available to MySQL SQL generation.