classZtdMysqli
class ZtdMysqli
extends mysqli
@visibility public.mysqli proxy that enforces ZTD behavior for reads and writes.
Uses delegation pattern: extends mysqli for type compatibility, but delegates all operations to an inner mysqli instance when using fromMysqli().
All public methods are explicitly overridden to prevent parent class implementation from being called when constructed via fromMysqli().
Properties are delegated via __get/__isset to the inner mysqli instance.
Supports optional SessionFactory injection. If no factory is provided, MySqlSessionFactory is used by default (mysqli is MySQL-only).
$container = \Testcontainers\Testcontainers::run(\Container\MySql80Container::class);
$native = new \mysqli(str_replace('localhost', '127.0.0.1', $container->getHost()), 'root', 'root', 'test', $container->getMappedPort(3306));
$native->set_charset('utf8mb4');
$native->query('CREATE TABLE accounts (id INT PRIMARY KEY, balance INT)');
$native->query('INSERT INTO accounts VALUES (1, 10)');
$ztd = \ZtdQuery\Adapter\Mysqli\ZtdMysqli::fromMysqli($native);
$ztd->query('INSERT INTO accounts VALUES (2, 20)');
$ztd->lastAffectedRows() // => 1
$ztd->query('SELECT id FROM accounts')->fetch_all(MYSQLI_ASSOC) // => [['id' => 2]]
$native->query('SELECT id FROM accounts')->fetch_all(MYSQLI_ASSOC) // => [['id' => '1']]
$native->query('DROP TABLE accounts');
$container->stop();Methods§
public function __construct(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
?ZtdConfig $config = null,
?SessionFactory $factory = null,
)Configure a new ZTD-enabled mysqli wrapper.
If $factory is provided, it is used directly to create the session. If $factory is null, MySqlSessionFactory is used by default.
Parameters
$hostname | ?string | |
$username | ?string | |
$password | ?string | |
$database | ?string | |
$port | ?int | |
$socket | ?string | |
$config | ?ZtdConfig | |
$factory | ?SessionFactory |
Calls 3
- static-call
mysqli::__construct()line 74 - new ConnectionExecution line 75
- new
mysqliline 75
public static function fromMysqli(
mysqli $mysqli,
?ZtdConfig $config = null,
?SessionFactory $factory = null,
): selfCreate a ZtdMysqli wrapper around an existing mysqli instance.
This allows reusing an existing mysqli connection instead of creating a new one. The wrapped mysqli instance will be used for all database operations.
If $factory is provided, it is used directly to create the session. If $factory is null, MySqlSessionFactory is used by default.
Parameters
$mysqli | mysqli | |
$config | ?ZtdConfig | |
$factory | ?SessionFactory |
Returns
selfTest cases 104
ExecutionTarget::__invokecallsMysqliCteShadowingTest::testAffectedRowsAfterInsertcallsMysqliCteShadowingTest::testAffectedRowsAfterMultipleInsertscallsMysqliCteShadowingTest::testAffectedRowsCountsOnlyChangedMySqlRowscallsMysqliCteShadowingTest::testAutoIncrementUsesShadowCounterWithoutModifyingPhysicalTablecallsMysqliCteShadowingTest::testCteDefinitionsRemainVisibleToSimulatedDmlcallsMysqliCteShadowingTest::testDisableZtdBypassesRewritingcallsMysqliCteShadowingTest::testEnableDisableTogglecallsMysqliCteShadowingTest::testEnumUsesDeclarationRanksForOrderingAndComparisoncallsMysqliCteShadowingTest::testExecuteQueryOnDuplicateKeyUpdateReplacesExistingValuescallsMysqliCteShadowingTest::testExecuteQueryReplaceRemovesExistingPrimaryKeycallsMysqliCteShadowingTest::testExecuteQuerySelectcallsMysqliCteShadowingTest::testGroupedSelfReferencingSubqueryRestrictsDeletecallsMysqliCteShadowingTest::testGroupedSelfReferencingSubqueryRestrictsUpdatecallsMysqliCteShadowingTest::testInsertDoesNotModifyPhysicalDatabasecallsMysqliCteShadowingTest::testInsertIsVisibleViaZtdSelectcallsMysqliCteShadowingTest::testInsertSelectPreservesStarJoinsAggregatesDistinctAndRollupcallsMysqliCteShadowingTest::testInsertWithoutColumnListIgnoresNamedForeignKeyConstraintcallsMysqliCteShadowingTest::testMultipleInsertsAccumulatecallsMysqliCteShadowingTest::testOmittedExplicitAndDefaultOnlyValuesMatchMySqlcallsMysqliCteShadowingTest::testOrderedLimitedUpdateKeepsOriginalIdentityAndSwapSnapshotcallsMysqliCteShadowingTest::testPhysicalDatabaseRemainsUnchangedAfterMutationscallsMysqliCteShadowingTest::testPreparedBackslashesRoundTripWithoutMysqlEscapeCorruptioncallsMysqliCteShadowingTest::testPreparedStatementSelectNonExistentcallsMysqliCteShadowingTest::testPreparedStatementSelectWithZtdcallsMysqliCteShadowingTest::testRangePartitionSelectionMatchesShadowRowscallsMysqliCteShadowingTest::testRealQueryInsertcallsMysqliCteShadowingTest::testRecursiveAndUserOwnedCteNamespacesRemainValidcallsMysqliCteShadowingTest::testSelectOnCleanShadowReturnsEmptycallsMysqliCteShadowingTest::testSelectWithWhereOnShadowDatacallsMysqliCteShadowingTest::testSelfReferencingUpsertMatchesNativeMySqlcallsMysqliCteShadowingTest::testSetExpressionsRemainSingleStatementscallsMysqliCteShadowingTest::testTransactionsAndSavepointsRestoreShadowRowscallsMysqliCteShadowingTest::testUpdateAndDeleteRestrictRowsWithCaseExpressioncallsMysqliCteShadowingTest::testUpdatePreservesIntervalUnitcallsMysqliCteShadowingTest::testUpdatePreservesIntroducedHexLiteralcallsMysqliCteShadowingTest::testUpdateReplacesExistingTextWithEmptyStringcallsMysqliCteShadowingTest::testUpdatesAndDeletesEveryListedTablecallsMysqliCteShadowingTest::testYearShorthandMatchesNativeCoercionWithoutPhysicalWritescallsMysqliForeignKeyCascadeTest::testForeignKeysValidateAndCascadeUpdatesAndDeletescallsMysqliFullTextSearchTest::testMatchAgainstReadsOnlyShadowRowscallsMysqliLoadDataTest::testLocalInfileLoadsOnlyTheShadowTablecallsMysqliSessionFactoryInjectionTest::testDefaultFactoryBehaviorMatchesExplicitInjectioncallsMysqliSessionFactoryInjectionTest::testExplicitMySqlSessionFactoryInjectionWorkscallsMysqliSessionFactoryInjectionTest::testInjectedFactoryAffectedRowsTrackingcallsMysqliSessionFactoryInjectionTest::testInjectedFactoryDoesNotModifyPhysicalDatabasecallsMysqliSessionFactoryInjectionTest::testInjectedFactoryInsertIsVisibleViaSelectcallsMysqliSessionFactoryInjectionTest::testInjectedFactoryPreparedStatementWorkscallsZtdMysqliTest::testAutocommitCommitsOrRollsBackTheShadowScopecallsZtdMysqliTest::testBegin_transactionCreatesAShadowRollbackScopecallsZtdMysqliTest::testBegin_transactionDefersTheDefaultSnapshotUntilTheFirstReadcallsZtdMysqliTest::testChange_userChangesTheSelectedDatabasecallsZtdMysqliTest::testCharacter_set_nameReadsTheNativeEncodingcallsZtdMysqliTest::testCloseReleasesTheNativeConnectioncallsZtdMysqliTest::testCommitAndRollbackEndNativeTransactionsByDefaultcallsZtdMysqliTest::testCommitRetainsTheShadowRowscallsZtdMysqliTest::testConnectUsesTheSuppliedNativeCredentialscallsZtdMysqliTest::testDebugAcceptsNativeTraceOptionscallsZtdMysqliTest::testDisableZtdDisablesRewritingcallsZtdMysqliTest::testDump_debug_infoRequestsServerDiagnosticscallsZtdMysqliTest::testEnableZtdRestoresDisabledModecallsZtdMysqliTest::testEscape_stringRetainsTheNativeAliasBehaviorcallsZtdMysqliTest::testExecute_queryBindsParametersInBothModescallsZtdMysqliTest::testFromMysqliPassesTheConnectionAndConfigurationToItsFactorycallsZtdMysqliTest::testGet_charsetReturnsTheNativeCharacterSetcallsZtdMysqliTest::testGet_client_infoReportsTheClientLibrarycallsZtdMysqliTest::testGet_connection_statsReturnsNativeMeasurementscallsZtdMysqliTest::testGet_server_infoReturnsTheNativeServerVersioncallsZtdMysqliTest::testGet_warningsReturnsTheNativeWarningcallsZtdMysqliTest::testInitRetainsTheNativeInitializationContractcallsZtdMysqliTest::testIsZtdEnabledDefaultsToTruecallsZtdMysqliTest::testKillPreservesTheNativeServerResponsecallsZtdMysqliTest::testLastAffectedRowsUsesTheNativeCountWhenDisabledcallsZtdMysqliTest::testMore_resultsObservesPendingNativeStatementscallsZtdMysqliTest::testMulti_queryExposesEachNativeResultcallsZtdMysqliTest::testNext_resultAdvancesTheNativeResultSequencecallsZtdMysqliTest::testOptionsConfiguresTheNativeConnectioncallsZtdMysqliTest::testPingChecksTheNativeConnectioncallsZtdMysqliTest::testPollUsesAndUpdatesNativeConnectionArrayscallsZtdMysqliTest::testPrepareAndQueriesPreserveNativeFalseResultscallsZtdMysqliTest::testPrepareReturnsASimulatedStatementWhenEnabledcallsZtdMysqliTest::testPrepareReturnsTheNativeStatementWhenDisabledcallsZtdMysqliTest::testPrepareWrapsRewriteFailurescallsZtdMysqliTest::testQueryReadsTheNativeResultWhenDisabledcallsZtdMysqliTest::testQueryReturnsFalseWhenThePreparedExecutionFailscallsZtdMysqliTest::testQueryReturnsTrueWithoutAResultSetcallsZtdMysqliTest::testReal_connectConnectsAnInitializedNativeHandlecallsZtdMysqliTest::testReal_escape_stringEscapesWithTheNativeConnectioncallsZtdMysqliTest::testReal_queryAppliesTransactionStatementscallsZtdMysqliTest::testReal_queryExecutesTheNativeQueryWhenDisabledcallsZtdMysqliTest::testReap_async_queryReadsTheCompletedNativeResultcallsZtdMysqliTest::testRefreshPreservesTheNativeServerResponsecallsZtdMysqliTest::testRelease_savepointRemovesTheNativeAndShadowSavepointscallsZtdMysqliTest::testRollbackRestoresTheShadowSnapshotcallsZtdMysqliTest::testSavepointPreservesItsShadowSnapshotcallsZtdMysqliTest::testSelect_dbChangesTheNativeDatabasecallsZtdMysqliTest::testSet_charsetChangesTheNativeEncodingcallsZtdMysqliTest::testSet_optPreservesTheNativeOptionsAliascallsZtdMysqliTest::testSsl_setAcceptsNativeTlsConfigurationcallsZtdMysqliTest::testStatReturnsNativeServerStatuscallsZtdMysqliTest::testStmt_initCreatesAUsableNativeStatementcallsZtdMysqliTest::testStore_resultReadsTheNativeBufferedResultcallsZtdMysqliTest::testThread_safeMatchesTheNativeDrivercallsZtdMysqliTest::testUse_resultReadsTheNativeUnbufferedResultcalls
Calls 4
- method-call
ReflectionClass::newInstanceWithoutConstructor()line 92 - new
ReflectionClassline 92 - class-const ZtdMysqli::class() line 92
- new ConnectionExecution line 93
public function enableZtd(): voidEnable ZTD mode for this connection.
Calls 1
- method-call ConnectionExecution::session() line 103
public function disableZtd(): voidDisable ZTD mode for this connection.
Calls 1
- method-call ConnectionExecution::session() line 111
public function isZtdEnabled(): boolCheck whether ZTD mode is enabled.
Returns
boolCalls 1
- method-call ConnectionExecution::session() line 119
public function lastAffectedRows(): intGet the affected row count from the last ZTD or regular operation.
Note: Direct property access ($this->affected_rows) is not supported because PHP's C extension property handler for mysqli takes precedence over __get when the parent constructor was not called. Use this method instead.
Returns
intCalls 1
- method-call ConnectionExecution::affectedRows() line 131
public function __get(string $name): mixedDelegate property access to the inner mysqli instance.
Handles affected_rows specially when ZTD has tracked affected rows.
Parameters
$name | string |
Returns
mixedCalls 4
- method-call ConnectionExecution::simulatedAffectedRows() line 143
- method-call MysqliPropertyReader::read() line 148
- new MysqliPropertyReader line 148
- method-call ConnectionExecution::native() line 148
public function __isset(string $name): boolDelegate property isset check to the inner mysqli instance.
Parameters
$name | string |
Returns
boolCalls 3
- method-call MysqliPropertyReader::read() line 156
- new MysqliPropertyReader line 156
- method-call ConnectionExecution::native() line 156
public function prepare(string $query): mysqli_stmt|false{@inheritDoc}
Parameters
$query | string |
Returns
mysqli_stmt|falseThrows
ZtdMysqliException When ZTD-specific exception occurs (wraps DatabaseException).mysqli_sql_exception When native execution fails.Called from 2
Calls 2
- method-call ConnectionExecution::prepare() line 168
- new ZtdMysqliStatement line 168
public function query(string $query, int $resultMode = MYSQLI_STORE_RESULT): mysqli_result|bool{@inheritDoc}
Parameters
$query | string | |
$resultMode | int |
Returns
mysqli_result|boolThrows
ZtdMysqliException When ZTD-specific exception occurs (wraps DatabaseException).mysqli_sql_exception When native execution fails.Test cases 2
Calls 2
- method-call ConnectionExecution::query() line 180
- method-call ZtdMysqli::execute_query() line 180
public function real_query(string $query): bool{@inheritDoc}
Parameters
$query | string |
Returns
boolThrows
ZtdMysqliException When ZTD-specific exception occurs (wraps DatabaseException).mysqli_sql_exception When native execution fails.Calls 2
- method-call ConnectionExecution::realQuery() line 192
- method-call ZtdMysqli::prepare() line 192
public function multi_query(string $query): bool{@inheritDoc}
Parameters
$query | string |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 201
public function begin_transaction(int $flags = 0, ?string $name = null): bool{@inheritDoc}
Parameters
$flags | int | |
$name | ?string |
Returns
boolCalls 1
- method-call ConnectionExecution::beginTransaction() line 210
public function commit(int $flags = 0, ?string $name = null): bool{@inheritDoc}
Parameters
$flags | int | |
$name | ?string |
Returns
boolCalls 1
- method-call ConnectionExecution::commit() line 219
public function rollback(int $flags = 0, ?string $name = null): bool{@inheritDoc}
Parameters
$flags | int | |
$name | ?string |
Returns
boolCalls 1
- method-call ConnectionExecution::rollBack() line 228
public function autocommit(bool $enable): bool{@inheritDoc}
Parameters
$enable | bool |
Returns
boolCalls 1
- method-call ConnectionExecution::autocommit() line 237
public function close()public function select_db(string $database): bool{@inheritDoc}
Parameters
$database | string |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 257
public function set_charset(string $charset): bool{@inheritDoc}
Parameters
$charset | string |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 266
public function real_escape_string(string $string): string{@inheritDoc}
Parameters
$string | string |
Returns
stringCalls 1
- method-call ConnectionExecution::native() line 275
public function escape_string(string $string): string{@inheritDoc}
Parameters
$string | string |
Returns
stringCalls 1
- method-call ConnectionExecution::native() line 284
public function ping(): boolpublic function character_set_name(): stringpublic function change_user(string $username, string $password, ?string $database): bool{@inheritDoc}
Parameters
$username | string | |
$password | string | |
$database | ?string |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 311
public function connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
): bool{@inheritDoc}
Parameters
$hostname | ?string | |
$username | ?string | |
$password | ?string | |
$database | ?string | |
$port | ?int | |
$socket | ?string |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 329
public function debug(string $options)public function dump_debug_info(): boolpublic function get_charset(): ?objectpublic function get_client_info(): string{@inheritDoc}
Returns
stringCalls 1
- method-call ConnectionExecution::native() line 369
public function get_connection_stats(): array<string, mixed>{@inheritDoc}
Returns
array<string, mixed>Calls 2
- function-call
mysqli_get_connection_statsline 381 - method-call ConnectionExecution::native() line 381
public function get_server_info(): stringpublic function get_warnings(): mysqli_warning|falsepublic function init(): ?bool{@inheritDoc}
Returns
?boolCalls 1
- method-call ConnectionExecution::native() line 410
public function kill(int $process_id): bool{@inheritDoc}
Parameters
$process_id | int |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 421
public function more_results(): boolpublic function next_result(): boolpublic function options(int $option, mixed $value): bool{@inheritDoc}
Parameters
$option | int | |
$value | mixed |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 448
public function real_connect(
?string $hostname = null,
?string $username = null,
?string $password = null,
?string $database = null,
?int $port = null,
?string $socket = null,
int $flags = 0,
): bool{@inheritDoc}
Parameters
$hostname | ?string | |
$username | ?string | |
$password | ?string | |
$database | ?string | |
$port | ?int | |
$socket | ?string | |
$flags | int |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 464
public function reap_async_query(): mysqli_result|boolpublic function refresh(int $flags): bool{@inheritDoc}
Parameters
$flags | int |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 482
public function release_savepoint(string $name): bool{@inheritDoc}
Parameters
$name | string |
Returns
boolCalls 1
- method-call ConnectionExecution::releaseSavepoint() line 491
public function savepoint(string $name): bool{@inheritDoc}
Parameters
$name | string |
Returns
boolCalls 1
- method-call ConnectionExecution::savepoint() line 500
public function ssl_set(
?string $key,
?string $certificate,
?string $ca_certificate,
?string $ca_path,
?string $cipher_algos,
){@inheritDoc}
Parameters
$key | ?string | |
$certificate | ?string | |
$ca_certificate | ?string | |
$ca_path | ?string | |
$cipher_algos | ?string |
Calls 1
- method-call ConnectionExecution::native() line 515
public function stat(): string|falsepublic function stmt_init(): mysqli_stmtpublic function store_result(int $mode = 0): mysqli_result|false{@inheritDoc}
Parameters
$mode | int |
Returns
mysqli_result|falseCalls 1
- method-call ConnectionExecution::native() line 544
public function thread_safe(): boolpublic function use_result(): mysqli_result|falsepublic function set_opt(int $option, mixed $value): bool{@inheritDoc}
Parameters
$option | int | |
$value | mixed |
Returns
boolCalls 1
- method-call ConnectionExecution::native() line 571
public static function poll(
array<mixed, mixed>|null &$read,
array<mixed, mixed>|null &$error,
array<mixed, mixed> &$reject,
int $seconds,
int $microseconds = 0,
): int|false{@inheritDoc}
Parameters
$read | array<mixed, mixed>|null | |
$error | array<mixed, mixed>|null | |
$reject | array<mixed, mixed> | |
$seconds | int | |
$microseconds | int |
Returns
int|falseTest cases 1
Calls 1
- static-call
mysqli::poll()line 590
public function execute_query(
string $query,
array<mixed, mixed>|null $params = null,
): mysqli_result|bool{@inheritDoc}
Parameters
$query | string | |
$params | array<mixed, mixed>|null |
Returns
mysqli_result|boolThrows
ZtdMysqliException When ZTD-specific exception occurs (wraps DatabaseException).mysqli_sql_exception When native execution fails.Called from 1
Calls 3
- method-call ConnectionExecution::executeQuery() line 602
- method-call ZtdMysqli::prepare() line 605
- method-call
mysqli_stmt::ztdAffectedRows()line 606
Private surface 1§
Implementation details, listed for orientation only.
private ConnectionExecution $executionTest cases 107§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 57
ZtdMysqliTest::testAutocommitCommitsOrRollsBackTheShadowScopecallsZtdMysqliTest::testBegin_transactionCreatesAShadowRollbackScopecallsZtdMysqliTest::testBegin_transactionDefersTheDefaultSnapshotUntilTheFirstReadcallsZtdMysqliTest::testChange_userChangesTheSelectedDatabasecallsZtdMysqliTest::testCharacter_set_nameReadsTheNativeEncodingcallsZtdMysqliTest::testCloseReleasesTheNativeConnectioncallsZtdMysqliTest::testCommitAndRollbackEndNativeTransactionsByDefaultcallsZtdMysqliTest::testCommitRetainsTheShadowRowscallsZtdMysqliTest::testConnectUsesTheSuppliedNativeCredentialscallsZtdMysqliTest::testDebugAcceptsNativeTraceOptionscallsZtdMysqliTest::testDisableZtdDisablesRewritingcallsZtdMysqliTest::testDump_debug_infoRequestsServerDiagnosticscallsZtdMysqliTest::testEnableZtdRestoresDisabledModecallsZtdMysqliTest::testEscape_stringRetainsTheNativeAliasBehaviorcallsZtdMysqliTest::testExecute_queryBindsParametersInBothModescallsZtdMysqliTest::testFromMysqliPassesTheConnectionAndConfigurationToItsFactorycallsZtdMysqliTest::testGet_charsetReturnsTheNativeCharacterSetcallsZtdMysqliTest::testGet_client_infoReportsTheClientLibrarycallsZtdMysqliTest::testGet_connection_statsReturnsNativeMeasurementscallsZtdMysqliTest::testGet_server_infoReturnsTheNativeServerVersioncallsZtdMysqliTest::testGet_warningsReturnsTheNativeWarningcallsZtdMysqliTest::testInitRetainsTheNativeInitializationContractcallsZtdMysqliTest::testIsZtdEnabledDefaultsToTruecallsZtdMysqliTest::testKillPreservesTheNativeServerResponsecallsZtdMysqliTest::testLastAffectedRowsUsesTheNativeCountWhenDisabledcallsZtdMysqliTest::testMore_resultsObservesPendingNativeStatementscallsZtdMysqliTest::testMulti_queryExposesEachNativeResultcallsZtdMysqliTest::testNext_resultAdvancesTheNativeResultSequencecallsZtdMysqliTest::testOptionsConfiguresTheNativeConnectioncallsZtdMysqliTest::testPingChecksTheNativeConnectioncallsZtdMysqliTest::testPollUsesAndUpdatesNativeConnectionArrayscallsZtdMysqliTest::testPrepareAndQueriesPreserveNativeFalseResultscallsZtdMysqliTest::testPrepareReturnsASimulatedStatementWhenEnabledcallsZtdMysqliTest::testPrepareReturnsTheNativeStatementWhenDisabledcallsZtdMysqliTest::testPrepareWrapsRewriteFailurescallsZtdMysqliTest::testQueryReadsTheNativeResultWhenDisabledcallsZtdMysqliTest::testQueryReturnsFalseWhenThePreparedExecutionFailscallsZtdMysqliTest::testQueryReturnsTrueWithoutAResultSetcallsZtdMysqliTest::testQueryUsesTheProvidedFactoryAndConfigurationcallsZtdMysqliTest::testReal_connectConnectsAnInitializedNativeHandlecallsZtdMysqliTest::testReal_escape_stringEscapesWithTheNativeConnectioncallsZtdMysqliTest::testReal_queryAppliesTransactionStatementscallsZtdMysqliTest::testReal_queryExecutesTheNativeQueryWhenDisabledcallsZtdMysqliTest::testReap_async_queryReadsTheCompletedNativeResultcallsZtdMysqliTest::testRefreshPreservesTheNativeServerResponsecallsZtdMysqliTest::testRelease_savepointRemovesTheNativeAndShadowSavepointscallsZtdMysqliTest::testRollbackRestoresTheShadowSnapshotcallsZtdMysqliTest::testSavepointPreservesItsShadowSnapshotcallsZtdMysqliTest::testSelect_dbChangesTheNativeDatabasecallsZtdMysqliTest::testSet_charsetChangesTheNativeEncodingcallsZtdMysqliTest::testSet_optPreservesTheNativeOptionsAliascallsZtdMysqliTest::testSsl_setAcceptsNativeTlsConfigurationcallsZtdMysqliTest::testStatReturnsNativeServerStatuscallsZtdMysqliTest::testStmt_initCreatesAUsableNativeStatementcallsZtdMysqliTest::testStore_resultReadsTheNativeBufferedResultcallsZtdMysqliTest::testThread_safeMatchesTheNativeDrivercallsZtdMysqliTest::testUse_resultReadsTheNativeUnbufferedResultcalls
Other tests reaching this symbol 50
MysqliCorrectnessHarness::setupcallsExecutionTarget::__invokecallsMysqliCteShadowingTest::testAffectedRowsAfterInsertcallsMysqliCteShadowingTest::testAffectedRowsAfterMultipleInsertscallsMysqliCteShadowingTest::testAffectedRowsCountsOnlyChangedMySqlRowscallsMysqliCteShadowingTest::testAutoIncrementUsesShadowCounterWithoutModifyingPhysicalTablecallsMysqliCteShadowingTest::testCteDefinitionsRemainVisibleToSimulatedDmlcallsMysqliCteShadowingTest::testDisableZtdBypassesRewritingcallsMysqliCteShadowingTest::testEnableDisableTogglecallsMysqliCteShadowingTest::testEnumUsesDeclarationRanksForOrderingAndComparisoncallsMysqliCteShadowingTest::testExecuteQueryOnDuplicateKeyUpdateReplacesExistingValuescallsMysqliCteShadowingTest::testExecuteQueryReplaceRemovesExistingPrimaryKeycallsMysqliCteShadowingTest::testExecuteQuerySelectcallsMysqliCteShadowingTest::testGroupedSelfReferencingSubqueryRestrictsDeletecallsMysqliCteShadowingTest::testGroupedSelfReferencingSubqueryRestrictsUpdatecallsMysqliCteShadowingTest::testInsertDoesNotModifyPhysicalDatabasecallsMysqliCteShadowingTest::testInsertIsVisibleViaZtdSelectcallsMysqliCteShadowingTest::testInsertSelectPreservesStarJoinsAggregatesDistinctAndRollupcallsMysqliCteShadowingTest::testInsertWithoutColumnListIgnoresNamedForeignKeyConstraintcallsMysqliCteShadowingTest::testMultipleInsertsAccumulatecallsMysqliCteShadowingTest::testNativeConstructorCreatesAnIsolatedDefaultSessioncallsMysqliCteShadowingTest::testOmittedExplicitAndDefaultOnlyValuesMatchMySqlcallsMysqliCteShadowingTest::testOrderedLimitedUpdateKeepsOriginalIdentityAndSwapSnapshotcallsMysqliCteShadowingTest::testPhysicalDatabaseRemainsUnchangedAfterMutationscallsMysqliCteShadowingTest::testPreparedBackslashesRoundTripWithoutMysqlEscapeCorruptioncallsMysqliCteShadowingTest::testPreparedStatementSelectNonExistentcallsMysqliCteShadowingTest::testPreparedStatementSelectWithZtdcallsMysqliCteShadowingTest::testRangePartitionSelectionMatchesShadowRowscallsMysqliCteShadowingTest::testRealQueryInsertcallsMysqliCteShadowingTest::testRecursiveAndUserOwnedCteNamespacesRemainValidcallsMysqliCteShadowingTest::testSelectOnCleanShadowReturnsEmptycallsMysqliCteShadowingTest::testSelectWithWhereOnShadowDatacallsMysqliCteShadowingTest::testSelfReferencingUpsertMatchesNativeMySqlcallsMysqliCteShadowingTest::testSetExpressionsRemainSingleStatementscallsMysqliCteShadowingTest::testTransactionsAndSavepointsRestoreShadowRowscallsMysqliCteShadowingTest::testUpdateAndDeleteRestrictRowsWithCaseExpressioncallsMysqliCteShadowingTest::testUpdatePreservesIntervalUnitcallsMysqliCteShadowingTest::testUpdatePreservesIntroducedHexLiteralcallsMysqliCteShadowingTest::testUpdateReplacesExistingTextWithEmptyStringcallsMysqliCteShadowingTest::testUpdatesAndDeletesEveryListedTablecallsMysqliCteShadowingTest::testYearShorthandMatchesNativeCoercionWithoutPhysicalWritescallsMysqliForeignKeyCascadeTest::testForeignKeysValidateAndCascadeUpdatesAndDeletescallsMysqliFullTextSearchTest::testMatchAgainstReadsOnlyShadowRowscallsMysqliLoadDataTest::testLocalInfileLoadsOnlyTheShadowTablecallsMysqliSessionFactoryInjectionTest::testDefaultFactoryBehaviorMatchesExplicitInjectioncallsMysqliSessionFactoryInjectionTest::testExplicitMySqlSessionFactoryInjectionWorkscallsMysqliSessionFactoryInjectionTest::testInjectedFactoryAffectedRowsTrackingcallsMysqliSessionFactoryInjectionTest::testInjectedFactoryDoesNotModifyPhysicalDatabasecallsMysqliSessionFactoryInjectionTest::testInjectedFactoryInsertIsVisibleViaSelectcallsMysqliSessionFactoryInjectionTest::testInjectedFactoryPreparedStatementWorkscalls