| MySqlProvider public API | SqlFaker | Faker Provider for generating syntactically valid MySQL SQL statements. |
| PostgreSqlProvider public API | SqlFaker | Faker Provider for generating syntactically valid PostgreSQL SQL statements. |
| SqliteProvider public API | SqlFaker | Faker Provider for generating syntactically valid SQLite SQL statements. |
| GrammarParseException @visibility root | SqlFaker\Compiler | Reports that grammar source text could not be turned into a grammar. |
| UnknownSymbolException @visibility root | SqlFaker\Compiler | Thrown when a symbol in the AST is neither a rule name nor a declared token. |
| BisonParser @visibility root | SqlFaker\Compiler\Bison | Reads a GNU Bison or Yacc grammar file into an AST. |
| BisonPreamble @visibility root | SqlFaker\Compiler\Bison | Everything a grammar file states before its rules. |
| BisonPreambleReader @visibility root | SqlFaker\Compiler\Bison | Reads the declarations section of a Bison grammar. |
| BisonStartSymbol @visibility root | SqlFaker\Compiler\Bison | Decides which rule a derivation begins from. |
| GrammarCompiler @visibility root | SqlFaker\Compiler\Bison | Compiles a Grammar from a BisonAst. |
| BisonAlternativeNode @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a single alternative in a grammar rule. |
| BisonAst @visibility root | SqlFaker\Compiler\Bison\Ast | Root AST node representing a complete Bison grammar file. |
| BisonDefineDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %define declaration. |
| BisonExpectDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %expect declaration. |
| BisonParamDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %parse-param or %lex-param declaration. |
| BisonPrecedenceDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %left, %right, or %nonassoc declaration. |
| BisonRuleNode @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a grammar rule definition. |
| BisonStartDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %start declaration. |
| BisonSymbolNode @visibility root | SqlFaker\Compiler\Bison\Ast | A symbol on the right-hand side of one rule alternative. |
| BisonTokenDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %token declaration. |
| BisonTokenDefinition @visibility root | SqlFaker\Compiler\Bison\Ast | One terminal declared by a %token directive. |
| BisonTypeDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents a %type declaration. |
| BisonUnknownDeclaration @visibility root | SqlFaker\Compiler\Bison\Ast | Represents an unknown or unsupported directive. |
| BisonDeclarationBoundary @visibility root | SqlFaker\Compiler\Bison\Directive | Decides where one declaration stops and the next thing starts. |
| BisonDirectiveReaderChain @visibility root | SqlFaker\Compiler\Bison\Directive | Routes a directive to the reader that knows its arguments. |
| DefineDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads %define, which sets a named option of the generated parser. |
| ExpectDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads %expect, the count of shift/reduce conflicts the author accepts. |
| ParamDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads %parse-param and %lex-param, which add arguments to the generated
parser and scanner. |
| PrecedenceDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads the four directives that rank operators against each other. |
| StartDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads %start, which names the rule a derivation begins from. |
| TokenDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads %token, which names the terminals the scanner may hand the parser. |
| TypeDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads %type, which gives rules the semantic type their values carry. |
| UnknownDirectiveReader @visibility root | SqlFaker\Compiler\Bison\Directive | Reads any directive no other reader knows. |
| ActionScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes a brace-delimited semantic action. |
| BisonLexer @visibility root | SqlFaker\Compiler\Bison\Lexer | Turns Bison grammar source into a stream of tokens, one call at a time. |
| BisonScannerChain @visibility root | SqlFaker\Compiler\Bison\Lexer | Chooses which scanner owns the character under the cursor. |
| BisonToken @visibility root | SqlFaker\Compiler\Bison\Lexer | One lexeme read out of a Bison grammar file. |
| BisonTokenStream @visibility root | SqlFaker\Compiler\Bison\Lexer | Adds lookahead to a Bison lexer. |
| BisonTrivia @visibility root | SqlFaker\Compiler\Bison\Lexer | The text between two lexemes that carries no token of its own. |
| DirectiveScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes the three lexemes a percent sign can open. |
| IdentifierScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes a symbol name. |
| NumberScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes a decimal number. |
| PunctuationScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes a single punctuation character. |
| QuotedLiteralScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes a quoted literal. |
| SourceCursor @visibility root | SqlFaker\Compiler\Bison\Lexer | A moving read position over grammar source text. |
| TypeTagScanner @visibility root | SqlFaker\Compiler\Bison\Lexer | Consumes an angle-bracketed semantic type tag such as <num>. |
| BisonAlternativeDraft @visibility root | SqlFaker\Compiler\Bison\Rule | The alternative currently being read. |
| BisonAlternativeReader @visibility root | SqlFaker\Compiler\Bison\Rule | Reads the alternatives on the right-hand side of one rule. |
| BisonRuleReader @visibility root | SqlFaker\Compiler\Bison\Rule | Reads the rules section of a Bison grammar. |
| LemonCondition | SqlFaker\Compiler\Lemon | Evaluates the named boolean conditions used by Lemon's preprocess_input.
tool/lemon.c short-circuits a sequence from left to right; parentheses provide grouping. |
| LemonDirectives @visibility root | SqlFaker\Compiler\Lemon | Reads the tokens a Lemon grammar declares before any rule is written. |
| LemonParser @visibility root | SqlFaker\Compiler\Lemon | Reads Lemon source declarations and production rules into a grammar. |
| LemonPreprocessor | SqlFaker\Compiler\Lemon | Selects source branches using the %if/%ifdef/%ifndef/%else/%endif directives from tool/lemon.c. |
| LemonRules @visibility root | SqlFaker\Compiler\Lemon | Reads the rules a Lemon grammar writes. |
| LemonSymbols @visibility root | SqlFaker\Compiler\Lemon | Remembers which names a Lemon grammar uses as tokens and which as rules. |
| LemonText @visibility root | SqlFaker\Compiler\Lemon | Removes from a Lemon file everything that is not grammar. |
| ArtifactDirectory @visibility parent | SqlFaker\Compiler\Resource | Answers which directory a generated artifact is written into. |
| GrammarWriter | SqlFaker\Compiler\Resource | Publishes one generated AST; lexical declarations are maintained in source code. |
| SqlGenerator @visibility root | SqlFaker\Generation | Derives terminals, rewrites structural constraints, and realizes lexemes once.
Dialect definitions supply the syntax and boundary rules; no completed SQL is retried or repaired. |
| ChoiceLexemeGenerator | SqlFaker\Generation\Candidate | The union of every applicable child's candidates; registration order is stable. |
| FixedLexemeGenerator | SqlFaker\Generation\Candidate | A fixed output element, including an explicit empty output when text is empty. |
| IntegerLexemeGenerator | SqlFaker\Generation\Candidate | An unsigned decimal scanner domain whose inclusive bounds do not depend on PHP's integer width. |
| MatchingLexemeGenerator | SqlFaker\Generation\Candidate | Applies its child only when its declared terminal or contextual predicate matches. |
| RegisteredLexemeGenerator | SqlFaker\Generation\Candidate | Supplies spellings from a fixed upstream registration table after explicit handler selection. |
| SequenceLexemeGenerator | SqlFaker\Generation\Candidate | A lazy Cartesian product of child outputs, all realizing the same terminal occurrence. |
| ValueLexemeGenerator | SqlFaker\Generation\Candidate | Constructs lexical values from a domain; only caller-supplied spellings need recognition. |
| VersionCase | SqlFaker\Generation\Candidate | An immutable association of reviewed releases and a shared generator definition. |
| VersionedLexemeGenerator | SqlFaker\Generation\Candidate | Binds one exact release at construction without invoking unselected definitions. |
| ByteChoices @visibility root | SqlFaker\Generation\Choice | Consumes input choices while constructing an immutable generation plan. |
| BytePlanCompiler | SqlFaker\Generation\Choice | Decodes bytes at the plan entry point and returns frozen production and lexical instructions. |
| PlanBuilder | SqlFaker\Generation\Choice | Compiles choices through the production generation pipeline into immutable instructions. |
| CoverageException public API | SqlFaker\Generation\Coverage | Reports a measurement infrastructure failure independently of SQL generation. |
| CoverageSets @visibility root | SqlFaker\Generation\Coverage | Maintains idempotent production sets and computes named measurements. |
| CoverageSnapshotStore @visibility root | SqlFaker\Generation\Coverage | Owns atomic snapshot replacement and rejects a second writer for the same key. |
| GenerationTrace @visibility root | SqlFaker\Generation\Coverage | Retains only the latest generation's occurrence paths and diagnostic attempt boundaries. |
| GeneratorRevision @visibility root | SqlFaker\Generation\Coverage | Identifies development implementations by source contents, never by dev-main alone. |
| GrammarCoverage public API | SqlFaker\Generation\Coverage | Observes derivations without influencing generation or consuming randomness. |
| GrammarCoverageInventory @visibility root | SqlFaker\Generation\Coverage | Enumerates the effective grammar before any per-generation restrictions. |
| LexicalObservation | SqlFaker\Generation\Coverage | Extracts finite definition features and detailed diagnostics without consuming generation choices. |
| SequenceObservation | SqlFaker\Generation\Coverage | Separates selected grammar occurrences from source subtrees preserved in the emitted sequence. |
| SnapshotValidation @visibility root | SqlFaker\Generation\Coverage | Validates persistence data before it can affect cumulative measurements. |
| CompletionCosts @visibility root | SqlFaker\Generation\Derivation | Computes minimum expansion costs separately for empty and non-empty output. |
| CompletionFrontier | SqlFaker\Generation\Derivation | Orders pending completions by their admissible lower bound and prunes equivalent more expensive states. |
| CompletionMemo | SqlFaker\Generation\Derivation | Reuses exact minima, affordable witnesses and exhausted-budget proofs within one immutable plan. |
| CompletionReduction | SqlFaker\Generation\Derivation | Eliminates independent subtrees using exact empty/non-empty costs instead of enumerating their derivations. |
| CompletionState | SqlFaker\Generation\Derivation | A leftmost derivation frontier with capped occurrence counters and an output obligation. |
| ConstrainedCompletion | SqlFaker\Generation\Derivation | Finds the cheapest completion respecting occurrence-specific patterns and pending siblings.
Unconstrained grammar costs are an admissible lower bound, never a claimed constrained minimum. |
| ConstraintDependencies | SqlFaker\Generation\Derivation | Finds exactly which grammar rules can reach a still-constrained occurrence. |
| Derivation @visibility root | SqlFaker\Generation\Derivation | Derives terminals from a common grammar while reserving enough steps to finish the remaining form. |
| DerivationNode @visibility root | SqlFaker\Generation\Derivation | Identifies an occurrence in a derivation rather than an object in the grammar. |
| DerivationTrace | SqlFaker\Generation\Derivation | Tracks occurrence identity alongside the sentential form without selecting productions. |
| TerminationAnalyzer @visibility root | SqlFaker\Generation\Derivation | Answers what it still costs to finish a rule or a production. |
| TerminationCost @visibility namespace | SqlFaker\Generation\Derivation | Answers the least a rule can cost to finish. |
| TokenGenerator | SqlFaker\Generation\Derivation | Derives grammar terminals without choosing spellings or pruning unsupported lexemes. |
| CompletionWitness | SqlFaker\Generation\Derivation\Completion | Proves cheap feasible continuations before the complete search; a failed probe proves nothing.
Every emitted witness actually walks the patterns, budget and output obligation without constructing SQL. |
| PatternProductions | SqlFaker\Generation\Derivation\Completion | Reuses immutable pattern/production matches across all frontiers and occurrences of the same constrained search. |
| GenerationException public API | SqlFaker\Generation\Exception | Reports that a grammar could not derive a statement. |
| LexicalException public API | SqlFaker\Generation\Exception | Reports missing lexical definitions, incompatible candidates and diagnostic tokenizer failures. |
| Lexeme | SqlFaker\Generation\Lexeme | Concrete text and its lexical use, without a decision about surrounding spaces. |
| LexemeBoundary | SqlFaker\Generation\Lexeme | Adjacent output lexemes, including boundaries inside a compound terminal. |
| LexemeCandidates | SqlFaker\Generation\Lexeme | A repeatable lazy candidate stream. An empty stream is distinct from non-applicability. |
| LexemeInput | SqlFaker\Generation\Lexeme | Per-generation input; dialect, version and registration tables belong to the generators. |
| LexemeSequence | SqlFaker\Generation\Lexeme | All lexemes of one candidate, in output order, including any left boundary requirement. |
| OutputPart | SqlFaker\Generation\Lexeme | A chosen lexeme and its resolved right boundary. |
| ResolvedOutput | SqlFaker\Generation\Lexeme | Immutable right-hand output with the condition still owed by its left neighbor. |
| SpacingConstraint | SqlFaker\Generation\Lexeme | Allowed boundary spellings with every contributing rule retained for diagnostics. |
| BoundaryCompletion | SqlFaker\Generation\Output | Discharges explicit left-boundary obligations before a candidate is committed.
Traversal stops when the obligation is discharged; it never retries completed SQL. |
| CandidateResolver | SqlFaker\Generation\Output | Evaluates one complete candidate against its internal and external boundaries. |
| CombinedSpacingRule | SqlFaker\Generation\Output | Intersects applicable constraints without interpreting their dialect-specific conditions. |
| ReverseLexemeGenerator | SqlFaker\Generation\Output | Chooses complete compatible candidates while traversing terminals from right to left. |
| SqlSerializer | SqlFaker\Generation\Output | Concatenates resolved output without formatting or interpreting SQL. |
| GenerationPlan public API | SqlFaker\Generation\Plan | An immutable plan selecting the start rule, productions, lexemes and expansion limits.
Plans can be reused without carrying mutable choice cursors between generations. |
| ProductionPattern @visibility root | SqlFaker\Generation\Plan | Narrows a rule to the alternatives a caller will accept. |
| ProductionOccurrence | SqlFaker\Generation\Token | Records a selected grammar alternative even when it emits no terminal. |
| TerminalMappingRule | SqlFaker\Generation\Token | Maps a direct terminal child of one grammar production to a declared contextual domain. |
| TerminalOccurrence | SqlFaker\Generation\Token | A terminal occurrence, including the productions that introduced it. |
| TerminalSequence | SqlFaker\Generation\Token | Ordered terminal occurrences; rewriting preserves the original derivation. |
| TokenRewriter | SqlFaker\Generation\Token | Applies a declared, finite sequence of structural rules without interpreting their syntax. |
| CharacterDomain | SqlFaker\Generation\Value | Declares a bounded sequence of complete character/escape atoms with fixed delimiters. |
| ChoiceDomain | SqlFaker\Generation\Value | Declares alternative constructive spelling domains, such as quoted and prefixed binary values. |
| IntegerDomain | SqlFaker\Generation\Value | Constructs bounded unsigned decimals by prefix intervals, independent of native integer width. |
| RandomCharacters | SqlFaker\Generation\Value | Draws a fixed number of bytes from a caller-supplied alphabet using Faker.
Contains no identifier, literal, quoting or database rules. |
| RepeatDomain | SqlFaker\Generation\Value | Repeats complete compound components, with a bounded sampling count. |
| SequenceDomain | SqlFaker\Generation\Value | Declares a compound value from independent domains without materializing their Cartesian product. |
| Utf8 | SqlFaker\Generation\Value | Reads UTF-8 scalar encodings, including the ASCII and three-byte subsets. |
| ValueChoices | SqlFaker\Generation\Value | Per-plan decisions, memoized so repeated candidate inspection cannot consume more randomness.
The caller interprets bytes; domains only receive bounded index decisions. |
| WordDomain | SqlFaker\Generation\Value | A finite spelling choice, including optional empty components. |
| Grammar @visibility root | SqlFaker\Grammar\Model | Represents a formal grammar for SQL generation. |
| NonTerminal @visibility root | SqlFaker\Grammar\Model | Represents a non-terminal symbol in a formal grammar. |
| Production @visibility root | SqlFaker\Grammar\Model | Represents a single production (right-hand side) in a grammar rule. |
| ProductionRule @visibility root | SqlFaker\Grammar\Model | Represents a production rule in a formal grammar. |
| Terminal @visibility root | SqlFaker\Grammar\Model | Represents a terminal symbol in a formal grammar. |
| TerminalInventory @visibility root | SqlFaker\Grammar\Model | Extracts every terminal required by a compiled grammar resource. |
| SqlVersion @visibility root | SqlFaker\Grammar\Resource | A supported SQL release and its grammar AST; lexical rules are declared in PHP. |
| SqlVersionRegistry @visibility parent | SqlFaker\Grammar\Resource | Resolves supported releases and their generated grammar AST paths.
Lexical definitions for these same releases are reviewed PHP declarations. |
| GenerationContext @visibility root | SqlFaker\MySql\Generation | Binds the MySql grammar and lexical declarations to the common SQL generation engine. |
| GenerationPlans @visibility root | SqlFaker\MySql\Generation | Names the generation plans this dialect's provider is built from. |
| LexicalGrammar @visibility root | SqlFaker\MySql\Generation | MySQL lexical generation using source-based candidate and boundary definitions.
Tokenization is exposed separately for diagnostics and does not decide generation success. |
| StartRuleResolver @visibility root | SqlFaker\MySql\Generation | Resolves MySQL rule names across grammar releases. |
| BoundedIntegerLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | Restricts MySQL decimal and hexadecimal forms to a source-defined nonnegative 31-bit interval. |
| CharsetLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | sql_yacc.yy literal actions require introduced bytes to be well formed in the selected character set. |
| CharsetValueLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | sql_yacc.yy literal actions impose charset validity on introduced string, hex and bit values. |
| DefinitionFactory | SqlFaker\MySql\Generation\Lexeme | Declares 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. |
| FactorLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | sql_yacc.yy/factor accepts exactly 2 or 3; paired ALTER USER factors differ and ADD factors ascend. |
| KeywordLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | Implements 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. |
| LexicalDefinition | SqlFaker\MySql\Generation\Lexeme | Carries one lexical composition and its tokenizer and token-budget metadata. |
| PrecisionLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | Create_field::init requires M >= D; my_decimal_trim gives (0,0) its default precision. |
| ReplicationTablePatternLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | sql_yacc.yy:filter_wild_db_table_string requires a dot and forbids line feeds after get_text decoding. |
| SizeNumberLexemeGenerator | SqlFaker\MySql\Generation\Lexeme | Supplies identifier-form sizes accepted by sql_yacc.yy:size_number, with a 31-bit magnitude prefix. |
| AlterDatabaseRule | SqlFaker\MySql\Generation\Rewrite | sql/sql_yacc.yy ident_or_empty and alter_database_options compete for an initial option keyword that is also allowed as an identifier. |
| AlterEventRule | SqlFaker\MySql\Generation\Rewrite | sql_yacc.yy/alter_event_stmt requires at least one event alteration after its name. |
| ConstraintEnforcementRule | SqlFaker\MySql\Generation\Rewrite | sql/sql_yacc.yy column_attribute_list allows enforcement only immediately after a CHECK attribute. |
| FlushExportRule | SqlFaker\MySql\Generation\Rewrite | sql_yacc.yy/opt_flush_lock requires a table list for FOR EXPORT, but not for WITH READ LOCK. |
| GeneratedColumnRule | SqlFaker\MySql\Generation\Rewrite | parse_tree_column_attrs.h rejects SERIAL and storage/default attributes on generated fields. |
| InstanceActionRule | SqlFaker\MySql\Generation\Rewrite | Implements the contextual identifier checks in sql_yacc.yy/alter_instance_action and opt_source_count. |
| IntegerContextRule | SqlFaker\MySql\Generation\Rewrite | Completes source-defined integer contexts in sql_yacc.yy, including diagnostic decimal alternatives. |
| IntoClauseRule | SqlFaker\MySql\Generation\Rewrite | PT_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. |
| LoadSourceCountRule | SqlFaker\MySql\Generation\Rewrite | sql_yacc.yy/opt_source_count requires the identifier COUNT and a nonzero NUM value. |
| RequiredAliasRule | SqlFaker\MySql\Generation\Rewrite | sql_yacc.yy marks derived-table and JSON_TABLE aliases optional solely to provide a targeted diagnostic. |
| RewriteDefinitions | SqlFaker\MySql\Generation\Rewrite | Declares structural repairs of MySQL parser diagnostic alternatives and ambiguity. |
| RoleGrantRule | SqlFaker\MySql\Generation\Rewrite | sql_yacc.yy/grant and revoke share privilege syntax, but PT_grant_roles requires role identifiers without ON. |
| SetNamesRule | SqlFaker\MySql\Generation\Rewrite | sql/sql_yacc.yy option_value_no_option_type declares NAMES equal expr solely to reject it. |
| SubqueryContextRule | SqlFaker\MySql\Generation\Rewrite | PT_subquery and partition contextualization forbid subqueries in these statement expressions. |
| TransactionCompletionRule | SqlFaker\MySql\Generation\Rewrite | sql_yacc.yy commit/rollback reject simultaneous affirmative CHAIN and RELEASE. |
| OrderByRule | SqlFaker\MySql\Generation\Rewrite\Alter | sql_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. |
| AutoIncrementRule | SqlFaker\MySql\Generation\Rewrite\Column | create_field.cc/Create_field::init permits AUTO_INCREMENT only for integer storage types. |
| FieldLengthRule | SqlFaker\MySql\Generation\Rewrite\Column | create_field.cc/Create_field::init checks display widths after the scanner accepts field_length. |
| ConcatenationRule | SqlFaker\MySql\Generation\Rewrite\Expression | Default 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. |
| ExpressionGroupingRule | SqlFaker\MySql\Generation\Rewrite\Expression | Preserves derived operand grouping where the source grammar permits parenthesized expressions.
This also prevents non-associative operators from being serialized as forbidden flat chains. |
| QuantifiedComparisonRule | SqlFaker\MySql\Generation\Rewrite\Expression | sql_yacc.yy:bool_pri explicitly rejects null-safe equality before ALL or ANY. |
| TableValueConstructorRule | SqlFaker\MySql\Generation\Rewrite\Expression | sql_resolver.cc disallows empty rows and DEFAULT outside an INSERT table value constructor. |
| HostNameRule | SqlFaker\MySql\Generation\Rewrite\Name | sql_lex.cc enters MY_LEX_HOSTNAME only after a single at sign, including account and user-variable names. |
| SystemVariableRule | SqlFaker\MySql\Generation\Rewrite\Name | sql_lex.cc/MY_LEX_SYSTEM_VAR accepts an identifier or backtick immediately after the second at-sign. |
| UniqueOptionRule | SqlFaker\MySql\Generation\Rewrite\Option | Applies a source-defined uniqueness condition within one grammar scope. |
| DefinitionRule | SqlFaker\MySql\Generation\Rewrite\Partition | PT_part_definition requires one partition kind for the list; PT_partition checks its declared count. |
| FieldListRule | SqlFaker\MySql\Generation\Rewrite\Partition | sql_const.h:MAX_REF_PARTS limits partition and subpartition field lists to sixteen names. |
| ListValueRule | SqlFaker\MySql\Generation\Rewrite\Partition | parse_tree_partitions.cc/PT_part_value_item_max forbids MAXVALUE in a VALUES IN list. |
| ValueArityRule | SqlFaker\MySql\Generation\Rewrite\Partition | parse_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. |
| ValueShape | SqlFaker\MySql\Generation\Rewrite\Partition | Models the scalar and row value lists of sql_yacc.yy:part_values_in and part_func_max. |
| JoinGroupingRule | SqlFaker\MySql\Generation\Rewrite\Query | sql_yacc.yy:joined_table defers conditionless joins; joined_table_parens preserves each derived join operand. |
| QueryContextRule | SqlFaker\MySql\Generation\Rewrite\Query | sql_lex.cc restricts query options; sql_yacc.yy provides AS to disambiguate CREATE query sources. |
| WindowFrameRule | SqlFaker\MySql\Generation\Rewrite\Query | Preserves the frame boundary ordering and interval units required by window.cc. |
| StartRule | SqlFaker\MySql\Generation\Rewrite\Replication | sql_yacc.yy requires the IO thread when START REPLICA/SLAVE supplies authentication options. |
| TablePatternRule | SqlFaker\MySql\Generation\Rewrite\Replication | Maps replication table filters to the string domain checked by sql_yacc.yy. |
| LanguageRule | SqlFaker\MySql\Generation\Rewrite\Routine | sql_yacc.yy/stored_routine_body requires a non-SQL language for AS strings and SQL for statement bodies. |
| ReturnRule | SqlFaker\MySql\Generation\Rewrite\Routine | sql_yacc.yy/sp_proc_stmt_return permits RETURN only in stored functions. |
| CloneAddressSpacingRule | SqlFaker\MySql\Generation\Spacing | sql/sql_yacc.yy clone_stmt checks the raw token positions on both sides of the port colon. |
| FunctionSpacingRule | SqlFaker\MySql\Generation\Spacing | sql/sql_lex.cc MY_LEX_IDENT: SYM_FN lookup requires a directly following parenthesis. |
| KeywordPhraseSpacingRule | SqlFaker\MySql\Generation\Spacing | Preserves word boundaries inside explicitly declared compound keyword candidates. |
| QualifiedNameSpacingRule | SqlFaker\MySql\Generation\Spacing | sql/sql_lex.cc MY_LEX_IDENT_SEP / MY_LEX_IDENT_START: preserves qualified-name adjacency. |
| VariableSpacingRule | SqlFaker\MySql\Generation\Spacing | sql/sql_lex.cc MY_LEX_USER_END, MY_LEX_HOSTNAME and MY_LEX_SYSTEM_VAR consume adjacent input. |
| KeywordIndex @visibility root | SqlFaker\MySql\Generation\Tokenization | Turns a terminal's spellings into a lookup from spelling to terminal. |
| MySqlQuoting @visibility root | SqlFaker\MySql\Generation\Tokenization | Encodes chosen text using MySQL quoting rules, independently of generation. |
| MySqlTokenizer @visibility root | SqlFaker\MySql\Generation\Tokenization | Reads MySQL text back into the parser tokens the server would produce. |
| DollarQuotedDomain | SqlFaker\MySql\Generation\Value | Reuses one chosen tag at both boundaries; the declared body alphabet excludes dollars. |
| IdentifierDomain | SqlFaker\MySql\Generation\Value | Scanner start/continuation alphabets with a safe sampling prefix for generated names. |
| LiteralGenerator @visibility root | SqlFaker\MySql\Generation\Value | Generates MySql literal bodies for the bounded lexical API. |
| QuotedDomain | SqlFaker\MySql\Generation\Value | One quoted scanner state: delimiter, optional prefix, doubling and optional backslash escapes. |
| RadixDomain | SqlFaker\MySql\Generation\Value | Prefixed and quoted radix literals. Whole-byte sampling is a charset constraint;
the same lexical declaration reads ordinary and explicitly requested bytes. |
| MySqlGrammar @visibility root | SqlFaker\MySql\Grammar | MySQL grammar loader. |
| GenerationContext @visibility root | SqlFaker\PostgreSql\Generation | Binds the PostgreSql grammar and lexical declarations to the common SQL generation engine. |
| GenerationPlans @visibility root | SqlFaker\PostgreSql\Generation | Names the generation plans this dialect's provider is built from. |
| LexicalGrammar @visibility root | SqlFaker\PostgreSql\Generation | PostgreSQL lexical generation using source-based candidate and boundary definitions.
Tokenization is exposed separately for diagnostics and does not decide generation success. |
| DefinitionFactory | SqlFaker\PostgreSql\Generation\Lexeme | Declares scanner values, fixed spellings, contextual domains and spacing for PostgreSQL 17.2.
Source tag REL_17_2 matches pg-17.2 in resources/version.php. |
| HashBoundLexemeGenerator | SqlFaker\PostgreSql\Generation\Lexeme | Implements the modulus/remainder name checks in PostgreSQL 17.2 gram.y/PartitionBoundSpec. |
| KeywordLexemeGenerator | SqlFaker\PostgreSql\Generation\Lexeme | Combines kwlist.h registrations with parser.c/base_yylex's required followers for lookahead tokens. |
| LexicalDefinition | SqlFaker\PostgreSql\Generation\Lexeme | Carries one lexical composition and its tokenizer and token-budget metadata. |
| PgLookahead @visibility root | SqlFaker\PostgreSql\Generation\Lookahead | The token substitutions PostgreSQL's parser frontend makes by looking ahead. |
| ConstraintAttributesRule | SqlFaker\PostgreSql\Generation\Rewrite | gram.y/ConstraintAttributeSpec rejects three conflicting pairs of accumulated option bits. |
| CopySourceRule | SqlFaker\PostgreSql\Generation\Rewrite | Implements gram.y/CopyStmt: PROGRAM needs a filename and COPY TO cannot carry a WHERE clause. |
| FetchWithTiesRule | SqlFaker\PostgreSql\Generation\Rewrite | Completes FETCH WITH TIES ordering in gram.y/insertSelectOptions and PLpgSQL_Expr. |
| GeneratedColumnRule | SqlFaker\PostgreSql\Generation\Rewrite | gram.y ColConstraintElem requires GENERATED ALWAYS for expressions; IDENTITY also permits BY DEFAULT. |
| HashPartitionBoundRule | SqlFaker\PostgreSql\Generation\Rewrite | Supplies exactly the two named bounds required by gram.y/PartitionBoundSpec. |
| LimitOffsetRule | SqlFaker\PostgreSql\Generation\Rewrite | Replaces gram.y's always-error LIMIT value,value diagnostic alternative with LIMIT/OFFSET. |
| LookaheadRule | SqlFaker\PostgreSql\Generation\Rewrite | Settles parser.c/base_yylex aliases after the grammar's otherwise ambiguous followers have been selected. |
| OperatorArgumentsRule | SqlFaker\PostgreSql\Generation\Rewrite | REL_17_2 gram.y oper_argtypes rejects a lone type and prescribes NONE for a missing unary argument. |
| OverlapsArgumentsRule | SqlFaker\PostgreSql\Generation\Rewrite | Implements gram.y's two-argument row requirement for each side of OVERLAPS. |
| PublicationObjectRule | SqlFaker\PostgreSql\Generation\Rewrite | Resolves the table/schema continuation state checked by gram.y/preprocess_pubobj_list. |
| RewriteDefinitions | SqlFaker\PostgreSql\Generation\Rewrite | Declares PostgreSQL structural rules by their original grammar scope. |
| TimeZoneIntervalRule | SqlFaker\PostgreSql\Generation\Rewrite | Implements gram.y/zone_value's HOUR and MINUTE interval-mask restriction. |
| WindowFrameRule | SqlFaker\PostgreSql\Generation\Rewrite | Implements the frame_extent rejection conditions in PostgreSQL 17.2 gram.y. |
| ConstraintCapabilitiesRule | SqlFaker\PostgreSql\Generation\Rewrite\Column | processCASbits permits attributes according to the non-null output pointers at each call site. |
| ForeignKeyActionRule | SqlFaker\PostgreSql\Generation\Rewrite\Column | key_update rejects SET NULL/DEFAULT column lists; key_delete permits them. |
| IdentityOptionRule | SqlFaker\PostgreSql\Generation\Rewrite\Column | gram.y:alter_identity_column_option excludes AS, RESTART and OWNED BY after SET. |
| NumericContextRule | SqlFaker\PostgreSql\Generation\Rewrite\Column | gram.y bounds FLOAT precision and ALTER COLUMN's positional form before parse analysis. |
| ExpressionGroupingRule | SqlFaker\PostgreSql\Generation\Rewrite\Expression | Preserves derived operand grouping where the source grammar permits parenthesized expressions.
This also prevents non-associative operators from being serialized as forbidden flat chains. |
| AliasRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | gram.y/relation_expr_opt_alias reduces before SET unless the alias has an explicit AS. |
| AnyRelationNameRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | gram.y/makeRangeVarFromAnyName limits composite type relation names to three components. |
| ColumnNameRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | parse_expr.c and parse_target.c allow up to four ColumnRef fields before subscripting. |
| FunctionNameRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | gram.y/check_func_name accepts String name components, excluding A_Star and A_Indices.
catalog/namespace.c DeconstructQualifiedName limits function lookup to three components. |
| IndirectionStarRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | gram.y/makeColumnRef and check_indirection allow a star only at the end of its own chain. |
| ParserNameRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | gram.y restricts partition strategies, JSON encodings, and literal role names beyond their grammar productions. |
| RelationNameRule | SqlFaker\PostgreSql\Generation\Rewrite\Name | gram.y/makeRangeVarFromQualifiedName accepts at most three String components, without star or subscripts. |
| UniqueOptionRule | SqlFaker\PostgreSql\Generation\Rewrite\Option | Applies a source-defined uniqueness condition within one grammar scope. |
| IntoClauseRule | SqlFaker\PostgreSql\Generation\Rewrite\Query | analyze.c:transformOptionalSelectInto accepts INTO only on a top-level query's leftmost SELECT. |
| ParserOptionsRule | SqlFaker\PostgreSql\Generation\Rewrite\Query | Removes options forbidden by the trigger/view grammar actions, scoped to their direct owner. |
| SchemaElementsRule | SqlFaker\PostgreSql\Generation\Rewrite\Query | CREATE SCHEMA with IF NOT EXISTS cannot contain schema elements. |
| SelectOptionsRule | SqlFaker\PostgreSql\Generation\Rewrite\Query | gram.y:insertSelectOptions merges parenthesized query options into the same SelectStmt. |
| AggregateArgumentRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | Aggregate arguments cannot have output modes; ordered-set direct VARIADIC types need coordinated lists. |
| JsonOptionsRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | Applies syntax-level SQL/JSON option restrictions from parse_expr.c/transformJsonFuncExpr. |
| JsonTablePathRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | json_table requires an A_Const containing a string, even though its RHS accepts a_expr. |
| RangeFunctionOrdinalityRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | parse_clause.c:transformRangeFunction disallows ordinality beside a top-level column definition list. |
| SubstringRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | gram.y:substr_list uses SIMILAR/ESCAPE as argument separators, also accepted inside a_expr. |
| TableFunctionRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | gram.y:mergeTableFuncParameters permits only default, IN or VARIADIC input modes. |
| TypeModifierRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | gram.y:AexprConst reuses function arguments for type modifiers but rejects names and ordering. |
| WithinGroupRule | SqlFaker\PostgreSql\Generation\Rewrite\Routine | gram.y:func_expr forbids inner ordering, DISTINCT and VARIADIC with WITHIN GROUP. |
| KeywordIndex @visibility root | SqlFaker\PostgreSql\Generation\Tokenization | Turns a terminal's spellings into a lookup from spelling to terminal. |
| PgQuoting @visibility root | SqlFaker\PostgreSql\Generation\Tokenization | Encodes chosen text using PostgreSQL quoting rules, independently of generation. |
| PgTokenizer @visibility root | SqlFaker\PostgreSql\Generation\Tokenization | Reads PostgreSQL text back into the parser tokens the server would produce. |
| DollarQuotedDomain | SqlFaker\PostgreSql\Generation\Value | Reuses one chosen tag at both boundaries; the declared body alphabet excludes dollars. |
| IdentifierDomain | SqlFaker\PostgreSql\Generation\Value | Scanner start/continuation alphabets with a safe sampling prefix for generated names. |
| LiteralGenerator @visibility root | SqlFaker\PostgreSql\Generation\Value | Generates PostgreSql literal bodies for the bounded lexical API. |
| OperatorDomain | SqlFaker\PostgreSql\Generation\Value | Scanner operator runs with explicit fixed-token and comment boundaries. |
| QuotedDomain | SqlFaker\PostgreSql\Generation\Value | One quoted scanner state: delimiter, optional prefix, doubling and optional backslash escapes. |
| PgGrammar @visibility root | SqlFaker\PostgreSql\Grammar | PostgreSQL grammar loader. |
| SqlGeneratorFactory @visibility root | SqlFaker\Provider | Assembles the dialect collaborators used by the Faker providers. |
| GenerationContext @visibility root | SqlFaker\Sqlite\Generation | Binds the Sqlite grammar and lexical declarations to the common SQL generation engine. |
| GenerationPlans @visibility root | SqlFaker\Sqlite\Generation | Names the generation plans this dialect's provider is built from. |
| GrammarAdaptation @visibility root | SqlFaker\Sqlite\Generation | Exposes statement aliases for SQLite's cmd alternatives without filtering the upstream grammar. |
| LexicalGrammar @visibility root | SqlFaker\Sqlite\Generation | SQLite lexical generation using source-based candidate and boundary definitions.
Tokenization is exposed separately for diagnostics and does not decide generation success. |
| DefinitionFactory | SqlFaker\Sqlite\Generation\Lexeme | Declares scanner values, fixed spellings, contextual domains and spacing for SQLite 3.47.2.
Source tag version-3.47.2 matches sqlite-3.47.2 in resources/version.php. |
| JoinLexemeGenerator | SqlFaker\Sqlite\Generation\Lexeme | Realizes JOIN_KW registrations under the complete join-type condition from select.c/sqlite3JoinType. |
| JoinModifiers | SqlFaker\Sqlite\Generation\Lexeme | The word flags and validity conditions in SQLite 3.47.2 select.c/sqlite3JoinType. |
| LexicalDefinition | SqlFaker\Sqlite\Generation\Lexeme | Carries one lexical composition and its tokenizer and token-budget metadata. |
| WindowNameLexemeGenerator | SqlFaker\Sqlite\Generation\Lexeme | tokenize.c getToken excludes INDEXED although parse.y idj allows it as a name.
Quoting that spelling keeps WINDOW/OVER recognized by their scanner lookahead. |
| CompoundSelectRule | SqlFaker\Sqlite\Generation\Rewrite | parse.y:parserDoubleLinkSelect permits ORDER BY and LIMIT only on the final compound operand. |
| FunctionArgumentRule | SqlFaker\Sqlite\Generation\Rewrite | SQLite 3.47.2 expr.c:sqlite3ExprFunction enforces sqliteLimit.h's default 127 arguments. |
| GeneratedColumnRule | SqlFaker\Sqlite\Generation\Rewrite | build.c:sqlite3AddGenerated permits one generated expression without a DEFAULT on the same column. |
| IdentifierListRule | SqlFaker\Sqlite\Generation\Rewrite | parse.y/parserAddExprIdListTerm only accepts COLLATE and sort order while loading legacy schemas. |
| JoinRule | SqlFaker\Sqlite\Generation\Rewrite | Declares the word domain checked by select.c/sqlite3JoinType and the source-list condition on ON/USING. |
| RewriteDefinitions | SqlFaker\Sqlite\Generation\Rewrite | Declares SQLite parser conditions without removing their original grammar alternatives. |
| StrictTableRule | SqlFaker\Sqlite\Generation\Rewrite | Implements sqlite3EndTable's STRICT column-type restriction using global.c/sqlite3StdType. |
| TableOptionRule | SqlFaker\Sqlite\Generation\Rewrite | version-3.47.2 parse.y table_option recognizes the ID spelling STRICT and WITHOUT ROWID. |
| UpsertSourceRule | SqlFaker\Sqlite\Generation\Rewrite | parse.y:on_using resolves ON in favor of a JOIN until a SELECT clause separates the UPSERT. |
| WindowFrameRule | SqlFaker\Sqlite\Generation\Rewrite | Implements the relative boundary order required by window.c/sqlite3WindowAlloc. |
| WithoutRowidRule | SqlFaker\Sqlite\Generation\Rewrite | Implements the required PRIMARY KEY and forbidden AUTOINCREMENT conditions in build.c/sqlite3EndTable. |
| ExpressionGroupingRule | SqlFaker\Sqlite\Generation\Rewrite\Expression | Preserves derived operand grouping where the source grammar permits parenthesized expressions.
This also prevents non-associative operators from being serialized as forbidden flat chains. |
| KeywordIndex @visibility root | SqlFaker\Sqlite\Generation\Tokenization | Turns a terminal's spellings into a lookup from spelling to terminal. |
| SqliteQuoting @visibility root | SqlFaker\Sqlite\Generation\Tokenization | Encodes chosen text using SQLite quoting rules, independently of generation. |
| SqliteTokenizer @visibility root | SqlFaker\Sqlite\Generation\Tokenization | Reads SQLite text back into the parser tokens the server would produce. |
| IdentifierDomain | SqlFaker\Sqlite\Generation\Value | Scanner start/continuation alphabets with a safe sampling prefix for generated names. |
| LiteralGenerator @visibility root | SqlFaker\Sqlite\Generation\Value | Generates Sqlite literal bodies for the bounded lexical API. |
| QuotedDomain | SqlFaker\Sqlite\Generation\Value | One quoted scanner state: delimiter, optional prefix, doubling and optional backslash escapes. |
| SqliteGrammar @visibility root | SqlFaker\Sqlite\Grammar | SQLite grammar loader. |