classInsertClauseParser
final class InsertClauseParser
Restricted visibility: declared "@visibility ZtdQuery\Platform\Sqlite". Code outside that scope must not name this declaration.
Extracts INSERT sources and conflict-handling clauses.
Methods§
public function extractInsertColumns(string $sql): array<int, string>Extract columns from an INSERT statement.
Parameters
$sql | string |
Returns
array<int, string>Test cases 10
InsertClauseParserTest::testExtractInsertColumnscallsInsertClauseParserTest::testExtractInsertColumnsFromReplacecallsInsertClauseParserTest::testExtractInsertColumnsLowercasecallsInsertClauseParserTest::testExtractInsertColumnsMultilinecallsInsertClauseParserTest::testExtractInsertColumnsNoColumnscallsInsertClauseParserTest::testExtractInsertColumnsNoColumnsV2callsInsertClauseParserTest::testExtractInsertColumnsQuotedcallsInsertClauseParserTest::testExtractInsertColumnsQuotedV2callsInsertClauseParserTest::testExtractInsertColumnsWithSelectcallsInsertClauseParserTest::testExtractInsertColumnsWithSelectKeywordcalls
Called from 1
Calls 5
- method-call LiteralMasker::stripComments() line 21
- new LiteralMasker line 21
- function-call
preg_matchline 22 - method-call IdentifierDecoder::parseColumnList() line 23
- new IdentifierDecoder line 23
public function extractInsertValues(string $sql): array<int, array<int, string>>Extract VALUES from an INSERT statement.
Parameters
$sql | string |
Returns
array<int, array<int, string>>Test cases 23
InsertClauseParserTest::testExtractInsertValuescallsInsertClauseParserTest::testExtractInsertValuesInsertSourceRequiresInsertOrReplaceStatementcallsInsertClauseParserTest::testExtractInsertValuesLowercasecallsInsertClauseParserTest::testExtractInsertValuesMultilinecallsInsertClauseParserTest::testExtractInsertValuesMultipleRowscallsInsertClauseParserTest::testExtractInsertValuesMultipleWithWhitespacecallsInsertClauseParserTest::testExtractInsertValuesNoValuescallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsDoubleQuotedStringcallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsEmptyAfterValuescallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsEmptyValueInRowcallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsEscapedQuotescallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsMultiplecallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsMultipleRowscallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsNestedParenscallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsNoValuesKeywordcallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsQuotedStringWithCommacallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsWithQuotedParencallsInsertClauseParserTest::testExtractInsertValuesReplaceUsesValuesAndSelectSourcescallsInsertClauseParserTest::testExtractInsertValuesReturnsEmptyWithoutValuesKeywordcallsInsertClauseParserTest::testExtractInsertValuesWithNestedParenscallsInsertClauseParserTest::testExtractInsertValuesWithQuotedDoubleQuotecallsInsertClauseParserTest::testExtractInsertValuesWithQuotedStringscallsInsertClauseParserTest::testHasInsertSelectInsertValuesSourceIgnoresQuotedKeywordIdentifierscalls
Called from 1
Calls 7
- method-call LiteralMasker::stripComments() line 36
- new LiteralMasker line 36
- method-call InsertClauseParser::findInsertSourceClause() line 37
- function-call
substrline 45 - function-call
strlenline 45 - method-call ValueListParser::parseValueSets() line 47
- new ValueListParser line 47
public function hasOnConflict(string $sql): boolCheck if an INSERT statement has ON CONFLICT clause (upsert).
Parameters
$sql | string |
Returns
boolTest cases 6
InsertClauseParserTest::testHasOnConflictcallsInsertClauseParserTest::testHasOnConflictCaseInsensitivecallsInsertClauseParserTest::testHasOnConflictFalsecallsInsertClauseParserTest::testHasOnConflictLowercasecallsInsertClauseParserTest::testHasOnConflictMultilinecallsInsertClauseParserTest::testHasOnConflictTruecalls
Called from 1
Calls 3
- method-call LiteralMasker::stripComments() line 55
- new LiteralMasker line 55
- function-call
preg_matchline 56
public function isReplace(string $sql): boolCheck if the statement is INSERT OR REPLACE / REPLACE INTO.
Parameters
$sql | string |
Returns
boolTest cases 9
InsertClauseParserTest::testIsReplacecallsInsertClauseParserTest::testIsReplaceCaseInsensitivecallsInsertClauseParserTest::testIsReplaceCaseInsensitiveOrReplacecallsInsertClauseParserTest::testIsReplaceLowercasecallsInsertClauseParserTest::testIsReplaceNotMatchedInMiddlecallsInsertClauseParserTest::testIsReplaceWithCommentcallsInsertClauseParserTest::testIsReplaceWithInsertOrReplacecallsInsertClauseParserTest::testIsReplaceWithRegularInsertcallsInsertClauseParserTest::testIsReplaceWithReplacecalls
Called from 1
Calls 6
- function-call
ltrimline 64 - method-call LiteralMasker::stripComments() line 64
- new LiteralMasker line 64
- function-call
strtoupperline 65 - function-call
str_starts_withline 67 - function-call
preg_matchline 68
public function isInsertIgnore(string $sql): boolCheck if the statement is INSERT OR IGNORE / INSERT IGNORE.
Parameters
$sql | string |
Returns
boolTest cases 8
InsertClauseParserTest::testIsInsertIgnorecallsInsertClauseParserTest::testIsInsertIgnoreCaseInsensitivecallsInsertClauseParserTest::testIsInsertIgnoreFalsecallsInsertClauseParserTest::testIsInsertIgnoreLowercasecallsInsertClauseParserTest::testIsInsertIgnoreMixedCasecallsInsertClauseParserTest::testIsInsertIgnoreNotMatchedInMiddlecallsInsertClauseParserTest::testIsInsertIgnoreTruecallsInsertClauseParserTest::testIsInsertIgnoreWithCommentcalls
Called from 1
Calls 4
- function-call
ltrimline 76 - method-call LiteralMasker::stripComments() line 76
- new LiteralMasker line 76
- function-call
preg_matchline 78
public function hasInsertSelect(string $sql): boolCheck if an INSERT has a SELECT subquery.
Parameters
$sql | string |
Returns
boolTest cases 12
InsertClauseParserTest::testExtractInsertValuesInsertSourceRequiresInsertOrReplaceStatementcallsInsertClauseParserTest::testExtractInsertValuesReplaceUsesValuesAndSelectSourcescallsInsertClauseParserTest::testHasInsertSelectcallsInsertClauseParserTest::testHasInsertSelectCaseInsensitivecallsInsertClauseParserTest::testHasInsertSelectFalsecallsInsertClauseParserTest::testHasInsertSelectFalseWithValuescallsInsertClauseParserTest::testHasInsertSelectInsertSelectSourceStartsAfterQuotedKeywordIdentifierscallsInsertClauseParserTest::testHasInsertSelectInsertValuesSourceIgnoresQuotedKeywordIdentifierscallsInsertClauseParserTest::testHasInsertSelectLowercasecallsInsertClauseParserTest::testHasInsertSelectMultilinecallsInsertClauseParserTest::testHasInsertSelectTruecallsInsertClauseParserTest::testHasInsertSelectWithColumnsAndSelectcalls
Called from 1
Calls 3
- method-call LiteralMasker::stripComments() line 86
- new LiteralMasker line 86
- method-call InsertClauseParser::findInsertSourceClause() line 87
public function extractInsertSelect(string $sql): ?stringExtract the SELECT subquery from an INSERT ... SELECT statement.
Parameters
$sql | string |
Returns
?stringTest cases 15
InsertClauseParserTest::testExtractInsertSelectcallsInsertClauseParserTest::testExtractInsertSelectAbsentcallsInsertClauseParserTest::testExtractInsertSelectCaseInsensitivecallsInsertClauseParserTest::testExtractInsertSelectInsertSelectSourceTrimsTrailingWhitespacecallsInsertClauseParserTest::testExtractInsertSelectLowercasecallsInsertClauseParserTest::testExtractInsertSelectMultilinecallsInsertClauseParserTest::testExtractInsertSelectNullcallsInsertClauseParserTest::testExtractInsertSelectPresentcallsInsertClauseParserTest::testExtractInsertSelectReturnsNullWithoutSelectcallsInsertClauseParserTest::testExtractInsertSelectWithColumnscallsInsertClauseParserTest::testExtractInsertSelectWithColumnsV2callsInsertClauseParserTest::testExtractInsertValuesInsertSourceRequiresInsertOrReplaceStatementcallsInsertClauseParserTest::testExtractInsertValuesReplaceUsesValuesAndSelectSourcescallsInsertClauseParserTest::testHasInsertSelectInsertSelectSourceStartsAfterQuotedKeywordIdentifierscallsInsertClauseParserTest::testHasInsertSelectInsertValuesSourceIgnoresQuotedKeywordIdentifierscalls
Called from 1
Calls 4
- method-call LiteralMasker::stripComments() line 97
- new LiteralMasker line 97
- method-call InsertClauseParser::findInsertSourceClause() line 98
- function-call
substrline 100
public function findInsertSourceClause(string $sql): array{keyword: string, offset: int}|nullParameters
$sql | string |
Returns
array{keyword: string, offset: int}|nullTest cases 1
Called from 3
- method-call ZtdQuery\Platform\Sqlite\Sql\Dml\Insert\InsertClauseParser::extractInsertValues() packages/ztd-query-sqlite/src/Sql/Dml/Insert/InsertClauseParser.php:37
- method-call ZtdQuery\Platform\Sqlite\Sql\Dml\Insert\InsertClauseParser::hasInsertSelect() packages/ztd-query-sqlite/src/Sql/Dml/Insert/InsertClauseParser.php:87
- method-call ZtdQuery\Platform\Sqlite\Sql\Dml\Insert\InsertClauseParser::extractInsertSelect() packages/ztd-query-sqlite/src/Sql/Dml/Insert/InsertClauseParser.php:98
Calls 2
Test cases 100§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 77
InsertClauseParserTest::testExtractInsertColumnscallsInsertClauseParserTest::testExtractInsertColumnsFromReplacecallsInsertClauseParserTest::testExtractInsertColumnsLowercasecallsInsertClauseParserTest::testExtractInsertColumnsMultilinecallsInsertClauseParserTest::testExtractInsertColumnsNoColumnscallsInsertClauseParserTest::testExtractInsertColumnsNoColumnsV2callsInsertClauseParserTest::testExtractInsertColumnsQuotedcallsInsertClauseParserTest::testExtractInsertColumnsQuotedV2callsInsertClauseParserTest::testExtractInsertColumnsWithSelectcallsInsertClauseParserTest::testExtractInsertColumnsWithSelectKeywordcallsInsertClauseParserTest::testExtractInsertSelectcallsInsertClauseParserTest::testExtractInsertSelectAbsentcallsInsertClauseParserTest::testExtractInsertSelectCaseInsensitivecallsInsertClauseParserTest::testExtractInsertSelectInsertSelectSourceTrimsTrailingWhitespacecallsInsertClauseParserTest::testExtractInsertSelectLowercasecallsInsertClauseParserTest::testExtractInsertSelectMultilinecallsInsertClauseParserTest::testExtractInsertSelectNullcallsInsertClauseParserTest::testExtractInsertSelectPresentcallsInsertClauseParserTest::testExtractInsertSelectReturnsNullWithoutSelectcallsInsertClauseParserTest::testExtractInsertSelectWithColumnscallsInsertClauseParserTest::testExtractInsertSelectWithColumnsV2callsInsertClauseParserTest::testExtractInsertValuescallsInsertClauseParserTest::testExtractInsertValuesInsertSourceRequiresInsertOrReplaceStatementcallsInsertClauseParserTest::testExtractInsertValuesLowercasecallsInsertClauseParserTest::testExtractInsertValuesMultilinecallsInsertClauseParserTest::testExtractInsertValuesMultipleRowscallsInsertClauseParserTest::testExtractInsertValuesMultipleWithWhitespacecallsInsertClauseParserTest::testExtractInsertValuesNoValuescallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsDoubleQuotedStringcallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsEmptyAfterValuescallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsEmptyValueInRowcallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsEscapedQuotescallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsMultiplecallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsMultipleRowscallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsNestedParenscallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsNoValuesKeywordcallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsQuotedStringWithCommacallsInsertClauseParserTest::testExtractInsertValuesParseValueSetsWithQuotedParencallsInsertClauseParserTest::testExtractInsertValuesReplaceUsesValuesAndSelectSourcescallsInsertClauseParserTest::testExtractInsertValuesReturnsEmptyWithoutValuesKeywordcallsInsertClauseParserTest::testExtractInsertValuesWithNestedParenscallsInsertClauseParserTest::testExtractInsertValuesWithQuotedDoubleQuotecallsInsertClauseParserTest::testExtractInsertValuesWithQuotedStringscallsInsertClauseParserTest::testFindInsertSourceClauseSkipsSubqueriescallsInsertClauseParserTest::testHasInsertSelectcallsInsertClauseParserTest::testHasInsertSelectCaseInsensitivecallsInsertClauseParserTest::testHasInsertSelectFalsecallsInsertClauseParserTest::testHasInsertSelectFalseWithValuescallsInsertClauseParserTest::testHasInsertSelectInsertSelectSourceStartsAfterQuotedKeywordIdentifierscallsInsertClauseParserTest::testHasInsertSelectInsertValuesSourceIgnoresQuotedKeywordIdentifierscallsInsertClauseParserTest::testHasInsertSelectLowercasecallsInsertClauseParserTest::testHasInsertSelectMultilinecallsInsertClauseParserTest::testHasInsertSelectTruecallsInsertClauseParserTest::testHasInsertSelectWithColumnsAndSelectcallsInsertClauseParserTest::testHasOnConflictcallsInsertClauseParserTest::testHasOnConflictCaseInsensitivecallsInsertClauseParserTest::testHasOnConflictFalsecallsInsertClauseParserTest::testHasOnConflictLowercasecallsInsertClauseParserTest::testHasOnConflictMultilinecallsInsertClauseParserTest::testHasOnConflictTruecallsInsertClauseParserTest::testIsInsertIgnorecallsInsertClauseParserTest::testIsInsertIgnoreCaseInsensitivecallsInsertClauseParserTest::testIsInsertIgnoreFalsecallsInsertClauseParserTest::testIsInsertIgnoreLowercasecallsInsertClauseParserTest::testIsInsertIgnoreMixedCasecallsInsertClauseParserTest::testIsInsertIgnoreNotMatchedInMiddlecallsInsertClauseParserTest::testIsInsertIgnoreTruecallsInsertClauseParserTest::testIsInsertIgnoreWithCommentcallsInsertClauseParserTest::testIsReplacecallsInsertClauseParserTest::testIsReplaceCaseInsensitivecallsInsertClauseParserTest::testIsReplaceCaseInsensitiveOrReplacecallsInsertClauseParserTest::testIsReplaceLowercasecallsInsertClauseParserTest::testIsReplaceNotMatchedInMiddlecallsInsertClauseParserTest::testIsReplaceWithCommentcallsInsertClauseParserTest::testIsReplaceWithInsertOrReplacecallsInsertClauseParserTest::testIsReplaceWithRegularInsertcallsInsertClauseParserTest::testIsReplaceWithReplacecalls
Other tests reaching this symbol 23
ReferencedTableLookupTestcallsMatchExpressionRewriterTestcallsSqliteFullTextSearchRewriterTestcallsSqliteQueryGuardTestcallsSqliteRewriterTestcallsStatementRewriterTestcallsDeleteTransformerTestcallsInsertProjectionBuilderTestcallsInsertTransformerTestcallsSelectTransformerTestcallsSqliteTransformerTestcallsUpdateTransformerTestcallsColumnDefinitionParserTestcallsTableDefinitionBuilderTestcallsVirtualTableParserTestcallsSqliteSchemaParserTestcallsAddColumnResolverTestcallsInsertMutationResolverTestcallsRowMutationResolverTestcallsTableMutationResolverTestcallsSqliteMutationResolverTestcallsSqliteParserTestcallsSqliteSessionFactoryTestcalls
Relations§
Instantiated in 7
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractInsertColumns() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:85
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractInsertValues() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:98
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::hasOnConflict() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:177
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::isReplace() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:188
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::isInsertIgnore() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:199
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::hasInsertSelect() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:234
- new ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractInsertSelect() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:245
Method calls 7
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractInsertColumns() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:85
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractInsertValues() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:98
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::hasOnConflict() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:177
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::isReplace() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:188
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::isInsertIgnore() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:199
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::hasInsertSelect() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:234
- method-call ZtdQuery\Platform\Sqlite\Sql\SqliteParser::extractInsertSelect() packages/ztd-query-sqlite/src/Sql/SqliteParser.php:245