classPgSqlErrorClassifier
final class PgSqlErrorClassifier
implements ErrorClassifier
Public API: explicitly declared with
@visibility public.PostgreSQL-specific error classifier.
Classifies PostgreSQL SQLSTATE codes to determine the type of error. PostgreSQL uses 5-character SQLSTATE codes; driver error codes are mapped from these.
$classifier = new \ZtdQuery\Platform\Postgres\Connection\PgSqlErrorClassifier();
$classifier->isUnknownSchemaError(new \ZtdQuery\Connection\Exception\DatabaseException('42P01: relation "users" does not exist')) // => true
$classifier->isUnknownSchemaError(new \ZtdQuery\Connection\Exception\DatabaseException('42601: syntax error')) // => falseMethods§
public function isUnknownSchemaError(DatabaseException $e): boolPublic API: explicitly declared with
@visibility public.{@inheritDoc}
Parameters
Returns
bool$classifier = new \ZtdQuery\Platform\Postgres\Connection\PgSqlErrorClassifier();
$classifier->isUnknownSchemaError(new \ZtdQuery\Connection\Exception\DatabaseException('42P01: relation "users" does not exist')) // => true
$classifier->isUnknownSchemaError(new \ZtdQuery\Connection\Exception\DatabaseException('42601: syntax error')) // => falseTest cases 20
PgSqlErrorClassifierTest::testColumnDoesNotExistPatterncallsPgSqlErrorClassifierTest::testColumnDoesNotExistUpperCasecallsPgSqlErrorClassifierTest::testConstraintViolationNotSchemaErrorcallsPgSqlErrorClassifierTest::testDriverCodeOnlyWithoutMessageMatchcallsPgSqlErrorClassifierTest::testDriverCodeZeroIsNotSchemaErrorcallsPgSqlErrorClassifierTest::testIsUnknownSchemaErrorUndefinedColumnErrorcallsPgSqlErrorClassifierTest::testNonSchemaDriverCodeReturnsFalsecallsPgSqlErrorClassifierTest::testNullCodeAndNoPatternReturnsFalsecallsPgSqlErrorClassifierTest::testNullCodeNonSchemaMessagecallsPgSqlErrorClassifierTest::testRelationDoesNotExistPatterncallsPgSqlErrorClassifierTest::testRelationDoesNotExistUpperCasecallsPgSqlErrorClassifierTest::testSqlstate42704OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstate42P01OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstate42P02OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstate42P10OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstateOnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSyntaxErrorNotSchemaErrorcallsPgSqlErrorClassifierTest::testTableDoesNotExistPatterncallsPgSqlErrorClassifierTest::testTableDoesNotExistUpperCasecallsPgSqlErrorClassifierTest::testUndefinedTableErrorcalls
Calls 7
- method-call DatabaseException::getDriverErrorCode() line 53
- method-call DatabaseException::getMessage() line 55
- class-const PgSqlErrorClassifier::SCHEMA_SQLSTATES() line 56
- function-call
str_containsline 57 - function-call
preg_matchline 62 - function-call
in_arrayline 76 - class-const PgSqlErrorClassifier::SCHEMA_ERROR_CODES() line 76
Private surface 2§
Implementation details, listed for orientation only.
private const SCHEMA_ERROR_CODES = [7]private const SCHEMA_SQLSTATES = [
'42703',
// undefined_column
'42P01',
// undefined_table
…Test cases 20§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 20
PgSqlErrorClassifierTest::testColumnDoesNotExistPatterncallsPgSqlErrorClassifierTest::testColumnDoesNotExistUpperCasecallsPgSqlErrorClassifierTest::testConstraintViolationNotSchemaErrorcallsPgSqlErrorClassifierTest::testDriverCodeOnlyWithoutMessageMatchcallsPgSqlErrorClassifierTest::testDriverCodeZeroIsNotSchemaErrorcallsPgSqlErrorClassifierTest::testIsUnknownSchemaErrorUndefinedColumnErrorcallsPgSqlErrorClassifierTest::testNonSchemaDriverCodeReturnsFalsecallsPgSqlErrorClassifierTest::testNullCodeAndNoPatternReturnsFalsecallsPgSqlErrorClassifierTest::testNullCodeNonSchemaMessagecallsPgSqlErrorClassifierTest::testRelationDoesNotExistPatterncallsPgSqlErrorClassifierTest::testRelationDoesNotExistUpperCasecallsPgSqlErrorClassifierTest::testSqlstate42704OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstate42P01OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstate42P02OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstate42P10OnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSqlstateOnlyWithoutPatternMatchcallsPgSqlErrorClassifierTest::testSyntaxErrorNotSchemaErrorcallsPgSqlErrorClassifierTest::testTableDoesNotExistPatterncallsPgSqlErrorClassifierTest::testTableDoesNotExistUpperCasecallsPgSqlErrorClassifierTest::testUndefinedTableErrorcalls