select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

SQLSTATE / CLASS 01 · WARNING

deprecated_feature

SQLSTATE
01P01
Condition name
deprecated_feature
Class
Warning
Source macro
ERRCODE_WARNING_DEPRECATED_FEATURE
Evidence
Source path confirmed
Analysis & operational context

English SQLSTATE atlas: authored explanations and source/runtime evidence are separate from the manual definitions. View source ↗

<h1>01P01 — deprecated_feature</h1>

At a glance

PostgreSQL 18.6 emits 01P01 at WARNING severity when a password-setting operation produces or preserves an MD5 verifier. This is a deprecation notice attached to a command that can still proceed, not a generic failure code for every old feature.

Meaning

The confirmed 18.6 implementation is the password-setting path in src/backend/libpq/crypt.c; it warns when the resulting verifier is MD5. The trigger is the final stored verifier form, such as plaintext input under password_encryption = 'md5' or an already md5... verifier supplied as input; it is not the pg_hba.conf authentication method, and an existing SCRAM verifier is not by itself this warning.

Messages and diagnostics

The fixed path reports setting an MD5-encrypted password; detail: MD5 password support is deprecated and will be removed in a future release of PostgreSQL.; hint: Refer to the PostgreSQL documentation for details about migrating to another password type.

Diagnosis

Inspect the password-setting session's SHOW password_encryption, whether the input is plaintext or an existing md5... verifier, and the final role verifier when permissions allow. Keep the complete warning because the detail and hint state the affected method and migration direction. Do not use the pg_hba.conf authentication method as the trigger, and do not infer that an existing SCRAM verifier caused this warning.

Response

Migrate the affected role to SCRAM by following the official Password Authentication guidance; for plaintext input, set password_encryption to scram-sha-256 before resetting the password, then verify client compatibility. Do not reuse an old MD5 verifier as the migration step. The warning itself does not call for retrying the password-setting command unchanged.

Versions

01P01 is present from the locked 9.0.23 snapshot through 18.6 and 19 Beta 3, with known_present_by 8.0.0. The fixed MD5 path and wording are confirmed for 18.6; other deprecated features or older wording require their own source evidence.

Sources

  • errcodes.txt — definition, SHA-256 6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba.
  • crypt.c — fixed path, SHA-256 d0c7579210827dbaec466f1c064a3d1ea2f7f7bfbf8b40b2e79fb4769cb406a9.
  • Structured evidence — fixed sources, message groups, and runtime boundary.

Source evidence

Evidence belongs to the frozen source and runtime versions listed here. It is not a runtime verification of the selected manual version.

01P01 is deprecated_feature in SQLSTATE Class 01.

Method: Read the fixed errcodes definition row and macro.

src.errcodes.18.6

A fixed PostgreSQL 18.6 source path uses this SQLSTATE at the stated severity and operation.

Method: Read the fixed source context around the SQLSTATE macro.

Limits: This confirms a source path and current wording; it is not a runtime observation of every installation.

src.crypt.18.6

The fixed password-setting path is relevant when the resulting stored verifier is MD5; diagnose password_encryption and the supplied verifier form, and do not treat pg_hba.conf authentication method or an existing SCRAM verifier as this warning trigger.

Method: Read the fixed crypt.c warning call site and its password-setting context.

Limits: Source evidence confirms the warning call site and exact fields; no natural password-setting runtime is claimed.

src.crypt.18.6

Message templates

WARNING · L181-L185

Primary

setting an MD5-encrypted password

Detail

MD5 password support is deprecated and will be removed in a future release of PostgreSQL.

Hint

Refer to the PostgreSQL documentation for details about migrating to another password type.

Reproduction & repair cases

No reproduction case is attached to this condition.

Recorded runtime evidence

No runtime observation is attached to this entry.

Definition snapshot: english-manuals:e9f4c3526f0b074101c8b639119… · English manual source