Skip to content

cloud: add Starter PostgreSQL Compatible docs - #23907

Open
qiqi-power wants to merge 3 commits into
pingcap:release-8.5from
qiqi-power:PGonStarter
Open

qiqi-power wants to merge 3 commits into
pingcap:release-8.5from
qiqi-power:PGonStarter

Conversation

@qiqi-power

@qiqi-power qiqi-power commented Sep 20, 2026

Copy link
Copy Markdown
Collaborator

First-time contributors' checklist

What is changed, added, or deleted? (Required)

Which TiDB version(s) do your changes apply to? (Required)

Tips for choosing the affected version(s):

By default, CHOOSE MASTER ONLY so your changes will be applied to the next TiDB major or minor releases. If your PR involves a product feature behavior change or a compatibility change, CHOOSE THE AFFECTED RELEASE BRANCH(ES) AND MASTER.

For details, see tips for choosing the affected versions.

  • master (the latest development version)
  • v9.0 (TiDB 9.0 versions)
  • v8.5 (TiDB 8.5 versions)
  • v8.1 (TiDB 8.1 versions)
  • v7.5 (TiDB 7.5 versions)
  • v7.1 (TiDB 7.1 versions)
  • v6.5 (TiDB 6.5 versions)

What is the related PR or file link(s)?

  • Related code change PR links (if applicable):
  • This PR is translated from:
  • Other reference link(s):

AI agent involvement

  • The changes in this PR were primarily made by an AI agent on behalf of the PR author.

Do your changes match any of the following descriptions?

  • Delete files
  • Change aliases
  • Need modification after applied to another branch
  • Might cause conflicts after applied to another branch

Summary by CodeRabbit

  • New Features
    • Added PostgreSQL-compatible TiDB Cloud Starter support in Limited Public Preview.
    • Added guidance for creating, connecting to, monitoring, and migrating PostgreSQL-compatible Starter instances.
    • Documented PostgreSQL-compatible SQL features, data types, transactions, roles, row-level security, extensions, full-text search, vector search, Parquet imports, and system catalogs.
  • Documentation
    • Added compatibility references covering supported features, limitations, and behavioral differences.
    • Clarified plan-specific quotas, billing, backups, endpoints, branching, and capacity behavior.
    • Updated connection and restore instructions for Starter instances.

@ti-chi-bot

ti-chi-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign overvenus for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@ti-chi-bot ti-chi-bot Bot added contribution This PR is from a community contributor. missing-translation-status This PR does not have translation status info. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Sep 20, 2026
@coderabbitai

coderabbitai Bot commented Sep 20, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: pingcap/docs/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: fac724ab-3df3-4f81-96de-93a86b2158cf

📥 Commits

Reviewing files that changed from the base of the PR and between 4d8acab and 7c00f40.

📒 Files selected for processing (1)
  • tidb-cloud/connect-via-standard-connection-serverless.md

Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review.


📝 Walkthrough

Walkthrough

The PR documents PostgreSQL-compatible TiDB Cloud Starter in Limited Public Preview. It adds guides for creation, connectivity, migration, SQL support, administration, monitoring, extensions, vector search, full-text search, and operational limits. Existing Starter documentation now distinguishes compatibility modes.

Changes

PostgreSQL-compatible Starter documentation

Layer / File(s) Summary
Starter offering and access
tidb-cloud/backup-and-restore-serverless.md, tidb-cloud/connect-via-standard-connection-serverless.md, tidb-cloud/create-tidb-cluster-serverless.md, tidb-cloud/select-cluster-tier.md, tidb-cloud/tidb-cloud-intro.md
Existing pages distinguish MySQL-compatible and PostgreSQL-compatible Starter modes, quotas, endpoints, branches, backups, and creation rules.
Starter onboarding and operations
tidb-cloud/pg-on-starter/pg-quickstart.md, tidb-cloud/pg-on-starter/Import-with-psql.md, tidb-cloud/pg-on-starter/built-in-monitoring-pg.md, tidb-cloud/pg-on-starter/pg-parquet-import.md, tidb-cloud/pg-on-starter/pg-transactions-copy.md
New pages document instance setup, PostgreSQL migration, metrics, Parquet import, transactions, and COPY behavior.
Compatibility contract and data types
tidb-cloud/pg-on-starter/postgresql-compatibility.md, tidb-cloud/pg-on-starter/pg-data-types.md
The documentation defines supported and unsupported PostgreSQL behavior, data types, isolation, indexes, procedures, replication, and migration constraints.
SQL reference and language features
tidb-cloud/pg-on-starter/pg-sql-reference-overview.md, tidb-cloud/pg-on-starter/pg-ddl.md, tidb-cloud/pg-on-starter/pg-dml-queries.md, tidb-cloud/pg-on-starter/pg-built-in-functions.md
New reference pages cover SQL categories, DDL, DML, queries, built-in functions, and PostgreSQL-compatible examples.
Advanced SQL and database administration
tidb-cloud/pg-on-starter/pg-advanced-sql.md, tidb-cloud/pg-on-starter/pg-auth-roles.md, tidb-cloud/pg-on-starter/pg-row-level-security.md, tidb-cloud/pg-on-starter/pg-session-parameters.md, tidb-cloud/pg-on-starter/pg-system-catalog.md
New pages cover PL/pgSQL, triggers, sequences, types, collations, roles, privileges, row-level security, session parameters, and system catalogs.
Specialized capabilities and limits
tidb-cloud/pg-on-starter/pg-extensions-overview.md, tidb-cloud/pg-on-starter/pg-full-text-search.md, tidb-cloud/pg-on-starter/pg-limits-constraints.md, tidb-cloud/pg-on-starter/pg-vector-search.md
New pages cover extensions, full-text search, engine limits, constraints, and vector search capabilities.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Other

Suggested reviewers: lilin90

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes the template, CLA confirmation, and v8.5 selection, but the required change summary is empty. It therefore does not provide enough information about the purpose or scope of th… Add a concise summary of the documentation added or updated, including the PostgreSQL-compatible Starter pages, affected product behavior, and target branch or release.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely identifies the main change: adding Starter PostgreSQL Compatible documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description includes the template, CLA confirmation, and v8.5 selection, but the required change summary is empty. It therefore does not provide enough information about the purpose or scope of the pull request.

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 18

Caution

Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

⚠️ Outside diff range comments (1)

🟡 Minor · Extend the backup-setting instructions to… · backup-and-restore-serverless.md:60

tidb-cloud/backup-and-restore-serverless.md:60
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Extend the backup-setting instructions to PostgreSQL-compatible Starter.

The new note states that PostgreSQL-compatible Starter supports configurable backup settings. This section still says the procedure applies only to Essential instances. Update Line 60 to include PostgreSQL-compatible Starter and Starter instances with configurable backup settings.


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: pingcap/docs/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 2a80beba-a179-4c14-a2ef-a205d3b55ee6

📥 Commits

Reviewing files that changed from the base of the PR and between 743161b and b091661.

📒 Files selected for processing (25)
  • tidb-cloud/backup-and-restore-serverless.md
  • tidb-cloud/connect-via-standard-connection-serverless.md
  • tidb-cloud/create-tidb-cluster-serverless.md
  • tidb-cloud/pg-on-starter/Import-with-psql.md
  • tidb-cloud/pg-on-starter/built-in-monitoring-pg.md
  • tidb-cloud/pg-on-starter/pg-advanced-sql.md
  • tidb-cloud/pg-on-starter/pg-auth-roles.md
  • tidb-cloud/pg-on-starter/pg-built-in-functions.md
  • tidb-cloud/pg-on-starter/pg-data-types.md
  • tidb-cloud/pg-on-starter/pg-ddl.md
  • tidb-cloud/pg-on-starter/pg-dml-queries.md
  • tidb-cloud/pg-on-starter/pg-extensions-overview.md
  • tidb-cloud/pg-on-starter/pg-full-text-search.md
  • tidb-cloud/pg-on-starter/pg-limits-constraints.md
  • tidb-cloud/pg-on-starter/pg-parquet-import.md
  • tidb-cloud/pg-on-starter/pg-quickstart.md
  • tidb-cloud/pg-on-starter/pg-row-level-security.md
  • tidb-cloud/pg-on-starter/pg-session-parameters.md
  • tidb-cloud/pg-on-starter/pg-sql-reference-overview.md
  • tidb-cloud/pg-on-starter/pg-system-catalog.md
  • tidb-cloud/pg-on-starter/pg-transactions-copy.md
  • tidb-cloud/pg-on-starter/pg-vector-search.md
  • tidb-cloud/pg-on-starter/postgresql-compatibility.md
  • tidb-cloud/select-cluster-tier.md
  • tidb-cloud/tidb-cloud-intro.md

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.

@@ -0,0 +1,291 @@
---

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use a lowercase filename.

This new file is named Import-with-psql.md. Rename it to import-with-psql.md and update references.

As per path instructions, new file names must use lowercase words separated by hyphens.

Source: Path instructions

Comment on lines +203 to +209
```shell
pg_dump \
--data-only \
--no-owner \
--no-privileges \
"<SOURCE_DATABASE_URL>" \
| psql "<TARGET_DATABASE_URL>" -v ON_ERROR_STOP=1

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Do not hide pg_dump failures in the pipeline.

Without pipefail, the shell reports the status of the final psql command. If pg_dump fails after emitting a valid prefix, the command can appear successful after importing only part of the data. Run this pipeline in a shell that supports pipefail, or export and validate the dump before importing.

Committable change
+set -o pipefail
 pg_dump \
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```shell
pg_dump \
--data-only \
--no-owner \
--no-privileges \
"<SOURCE_DATABASE_URL>" \
| psql "<TARGET_DATABASE_URL>" -v ON_ERROR_STOP=1
```shell
set -o pipefail
pg_dump \
--data-only \
--no-owner \
--no-privileges \
"<SOURCE_DATABASE_URL>" \
| psql "<TARGET_DATABASE_URL>" -v ON_ERROR_STOP=1

Comment on lines +144 to +151
CREATE FUNCTION create_order(p_item TEXT)
RETURNS BIGINT AS $$
DECLARE
new_id BIGINT;
BEGIN
INSERT INTO orders (item)
VALUES (p_item)
RETURNING id INTO new_id;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Align create_order with the documented orders table.

tidb-cloud/pg-on-starter/pg-ddl.md defines orders with id, user_id, and amount; it has no item column. A reader who follows both pages cannot create this function successfully.

Committable replacement
-CREATE FUNCTION create_order(p_item TEXT)
+CREATE FUNCTION create_order(p_user_id BIGINT, p_amount NUMERIC)
@@
-    INSERT INTO orders (item)
-    VALUES (p_item)
+    INSERT INTO orders (user_id, amount)
+    VALUES (p_user_id, p_amount)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
CREATE FUNCTION create_order(p_item TEXT)
RETURNS BIGINT AS $$
DECLARE
new_id BIGINT;
BEGIN
INSERT INTO orders (item)
VALUES (p_item)
RETURNING id INTO new_id;
CREATE FUNCTION create_order(p_user_id BIGINT, p_amount NUMERIC)
RETURNS BIGINT AS $$
DECLARE
new_id BIGINT;
BEGIN
INSERT INTO orders (user_id, amount)
VALUES (p_user_id, p_amount)
RETURNING id INTO new_id;

Comment on lines +335 to +342
A `CASE` expression, such as `NEW.status := CASE WHEN ... END`, can still be used in an assignment.

### AFTER trigger formatting

In an `AFTER` trigger function, keep a bare `RETURN NEW;` or `RETURN OLD;` on its own line.

For example:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🛡️ Analyzed with Security Review | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

sed -n '320,355p' tidb-cloud/pg-on-starter/pg-row-level-security.md
rg -n "search_path|ALTER FUNCTION|SET search_path|SECURITY DEFINER" tidb-cloud/pg-on-starter

Repository: pingcap/docs

Length of output: 2185


🏁 Script executed:

#!/bin/bash
set -eu
cat -n tidb-cloud/pg-on-starter/pg-row-level-security.md | sed -n '323,353p'
cat -n tidb-cloud/pg-on-starter/pg-session-parameters.md | sed -n '118,145p'
printf '\n-- function search_path controls in Starter docs --\n'
rg -n -C 2 "CREATE FUNCTION|SET search_path|function-local|ALTER FUNCTION|SET clause|configuration parameter" tidb-cloud/pg-on-starter/pg-*.md

Repository: pingcap/docs

Length of output: 7234


Security Misconfiguration

Exploitability: Moderate
CWE: CWE-427

Schema-qualify the SECURITY DEFINER example. RETURNS SETOF posts is fixed when the function is created, so the caller's search_path does not redirect the return type. However, SELECT * FROM posts can resolve through the caller-controlled search path while running with the owner's privileges. Use the trusted schema for both references.

Use schema-qualified references
Suggested change
A `CASE` expression, such as `NEW.status := CASE WHEN ... END`, can still be used in an assignment.
### AFTER trigger formatting
In an `AFTER` trigger function, keep a bare `RETURN NEW;` or `RETURN OLD;` on its own line.
For example:
CREATE FUNCTION list_all_posts()
RETURNS SETOF public.posts
LANGUAGE SQL
SECURITY DEFINER
AS $$
SELECT * FROM public.posts
$$;

| `INTEGER` | `INT`, `INT4` | 4-byte signed integer. |
| `BIGINT` | `INT8` | 8-byte signed integer. |
| `DOUBLE PRECISION` | `FLOAT8` | 8-byte IEEE 754 floating-point number. |
| `NUMERIC` | `NUMERIC(p,s)`, `DECIMAL` | Exact numeric value with optional precision and scale. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Move NUMERIC(p,s) out of the alias column.

NUMERIC(p,s) is parameterized type syntax, not a type alias. Listing it as an alias can mislead users about the accepted type name.

Apply this replacement
-| `NUMERIC` | `NUMERIC(p,s)`, `DECIMAL` | Exact numeric value with optional precision and scale. |
+| `NUMERIC` | `DECIMAL` | Exact numeric value. Use `NUMERIC(p,s)` to specify precision and scale. |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| `NUMERIC` | `NUMERIC(p,s)`, `DECIMAL` | Exact numeric value with optional precision and scale. |
| `NUMERIC` | `DECIMAL` | Exact numeric value. Use `NUMERIC(p,s)` to specify precision and scale. |

Source: Path instructions

Comment on lines +248 to +252
JOIN information_schema.referential_constraints AS rc
ON rc.constraint_name = tc.constraint_name
AND rc.constraint_schema = tc.constraint_schema
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = rc.unique_constraint_name

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Join foreign-key metadata by schema.

The query joins ccu to referential_constraints only by constraint name. Same-named constraints in different schemas can produce incorrect or duplicate referenced columns. Include the unique-constraint schema in the join.

Committable replacement
     ON ccu.constraint_name = rc.unique_constraint_name
+    AND ccu.constraint_schema = rc.unique_constraint_schema
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
JOIN information_schema.referential_constraints AS rc
ON rc.constraint_name = tc.constraint_name
AND rc.constraint_schema = tc.constraint_schema
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = rc.unique_constraint_name
JOIN information_schema.referential_constraints AS rc
ON rc.constraint_name = tc.constraint_name
AND rc.constraint_schema = tc.constraint_schema
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = rc.unique_constraint_name
AND ccu.constraint_schema = rc.unique_constraint_schema

Source: Path instructions

You can configure HNSW index build parameters when creating an index:

```sql
CREATE INDEX idx_documents_embedding

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Use a unique name for the tuned HNSW example.

The page already creates idx_documents_embedding in Lines [94-96]. Running this example afterward on the same documents table fails because the index name already exists.

Apply this replacement
-CREATE INDEX idx_documents_embedding
+CREATE INDEX idx_documents_embedding_tuned
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
CREATE INDEX idx_documents_embedding
CREATE INDEX idx_documents_embedding_tuned

Source: Path instructions


Arbitrary custom or third-party PostgreSQL extensions cannot be installed. Only extensions explicitly supported by TiDB Cloud are available.

For the list of available extensions and extension-specific limitations, see [Supported PostgreSQL extensions](<link>).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Replace the placeholder extension link.

The link target is a placeholder rather than a repository page. It will produce a broken link for the supported extensions reference.

Apply this replacement
-For the list of available extensions and extension-specific limitations, see [Supported PostgreSQL extensions](<link>).
+For the list of available extensions and extension-specific limitations, see [Supported PostgreSQL extensions](/tidb-cloud/pg-on-starter/pg-extensions-overview.md).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
For the list of available extensions and extension-specific limitations, see [Supported PostgreSQL extensions](<link>).
For the list of available extensions and extension-specific limitations, see [Supported PostgreSQL extensions](/tidb-cloud/pg-on-starter/pg-extensions-overview.md).

Source: Path instructions


To learn more about the RU consumption of different resources (including read, write, SQL CPU, and network egress), the pricing details, and the throttled information, see [{{{ .starter }}} Pricing Details](https://www.pingcap.com/tidb-cloud-starter-pricing-details/).

### PostgreSQL-compatible Starter

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🔎 Supported by static analysis

🏁 Script executed:

sed -n '48,62l' tidb-cloud/select-cluster-tier.md
sed -n '50,61l' tidb-cloud/pg-on-starter/pg-quickstart.md
rg -n "MD022|markdownlint" .markdownlint* scripts package.json 2>/dev/null | head -80

Repository: pingcap/docs

Length of output: 3081


🏁 Script executed:

printf '%s\n' '--- .markdownlint.yaml ---'
cat -n .markdownlint.yaml
printf '%s\n' '--- scripts/markdownlint ---'
cat -n scripts/markdownlint
printf '%s\n' '--- relevant file context ---'
sed -n '52,59l' tidb-cloud/select-cluster-tier.md
sed -n '53,59l' tidb-cloud/pg-on-starter/pg-quickstart.md

Repository: pingcap/docs

Length of output: 3713


🏁 Script executed:

cat -n .markdownlint.yaml | sed -n '25,42p'
cat -n scripts/markdownlint

Repository: pingcap/docs

Length of output: 1076


🏁 Script executed:

sed -n '1,50p' .markdownlint.yaml; printf '\n---\n'; cat scripts/markdownlint

Repository: pingcap/docs

Length of output: 1220


🏁 Script executed:

printf '%s\n' '--- scoped markdownlint controls in changed files ---'
rg -n -i 'markdownlint-(disable|enable)|MD022|blanks-around-headings' tidb-cloud/select-cluster-tier.md tidb-cloud/pg-on-starter/pg-quickstart.md || true
printf '%s\n' '--- checked-in markdownlint-related files ---'
git ls-files | rg '(^|/)(\.markdownlint(ignore|ya?ml)|markdownlint(\.ya?ml)?|\.markdownlintignore)$' || true

Repository: pingcap/docs

Length of output: 271


Add blank lines after both changed headings.

Markdownlint MD022 is enabled and requires a blank line between a heading and the following block.

Suggested change
### PostgreSQL-compatible Starter
### PostgreSQL-compatible Starter

In tidb-cloud/pg-on-starter/pg-quickstart.md, apply the same change:

Suggested change
### PostgreSQL-compatible Starter
## What's next
🧰 Tools
🪛 markdownlint-cli2 (0.23.2)

[warning] 55-55: Headings should be surrounded by blank lines
Expected: 1; Actual: 0; Below

(MD022, blanks-around-headings)

- TiDB Cloud Starter

{{{ .starter }}} is a fully managed, multi-tenant TiDB offering. It delivers an instant, autoscaling MySQL-compatible database and offers a generous free quota and consumption based billing once free limits are exceeded.
{{{ .starter }}} is a fully managed, multi-tenant TiDB offering. It delivers an instant, autoscaling database with MySQL compatibility, while PostgreSQL compatibility is available in limited Public Preview. It offers a generous free quota and consumption based billing once free limits are exceeded.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Scope the billing statement to MySQL-compatible Starter.

The current wording implies that PostgreSQL-compatible Starter receives consumption-based billing after quota exhaustion. The other changed pages state that PostgreSQL-compatible Starter rejects new connections and throttles existing connections instead. Qualify the billing behavior to MySQL-compatible Starter.

Committable change
-    {{{ .starter }}} is a fully managed, multi-tenant TiDB offering. It delivers an instant, autoscaling database with MySQL compatibility, while PostgreSQL compatibility is available in limited Public Preview. It offers a generous free quota and consumption based billing once free limits are exceeded.
+    {{{ .starter }}} is a fully managed, multi-tenant TiDB offering. It delivers an instant, autoscaling database with MySQL compatibility, while PostgreSQL compatibility is available in Limited Public Preview. MySQL-compatible {{{ .starter }}} offers a generous free quota and consumption-based billing once free limits are exceeded.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{{{ .starter }}} is a fully managed, multi-tenant TiDB offering. It delivers an instant, autoscaling database with MySQL compatibility, while PostgreSQL compatibility is available in limited Public Preview. It offers a generous free quota and consumption based billing once free limits are exceeded.
{{{ .starter }}} is a fully managed, multi-tenant TiDB offering. It delivers an instant, autoscaling database with MySQL compatibility, while PostgreSQL compatibility is available in Limited Public Preview. MySQL-compatible {{{ .starter }}} offers a generous free quota and consumption-based billing once free limits are exceeded.
🧰 Tools
🪛 LanguageTool

[grammar] ~79-~79: Use a hyphen to join words.
Context: ...rs a generous free quota and consumption based billing once free limits are excee...

(QB_NEW_EN_HYPHEN)

@lilin90 lilin90 added the translation/no-need No need to translate this PR. label Sep 20, 2026
@ti-chi-bot ti-chi-bot Bot removed the missing-translation-status This PR does not have translation status info. label Sep 20, 2026
@lilin90 lilin90 changed the title pg-on-starter cloud: add Starter PostgreSQL Compatible docs Sep 20, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: pingcap/docs/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 933ff1bb-f744-470c-afa6-fb14d68f3e75

📥 Commits

Reviewing files that changed from the base of the PR and between b091661 and 4d8acab.

📒 Files selected for processing (3)
  • tidb-cloud/connect-via-standard-connection-serverless.md
  • tidb-cloud/select-cluster-tier.md
  • tidb-cloud/tidb-cloud-intro.md

Included review availability: Your plan provides up to 4 included reviews per hour; 2 remain after this review.

Comment on lines +36 to +37
> - PostgreSQL-compatible {{{ .starter }}} currently supports public endpoints only. Private endpoints are not supported.
> - For MySQL-compatible {{{ .starter }}} and {{{ .essential }}} instances, you can also choose **Private Endpoint** in the **Connection Type** drop-down list. For more information, see the following documents:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🔎 Supported by static analysis

🤖 get_repo_knowledge executed:

get_repo_knowledge pingcap/docs /tmp/coderabbit-repo-knowledge/pingcap-docs-9c73f70c/learnings /tmp/coderabbit-repo-knowledge/pingcap-docs-9c73f70c/conventions

Length of output: 4069


🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- tracked candidate files ---'
git ls-files 'tidb-cloud/*standard*connection*serverless*' 'tidb-cloud/*private*endpoint*serverless*' 'tidb-cloud/*branch*overview*' | sed -n '1,120p'
printf '%s\n' '--- cited source sections ---'
for f in \
  tidb-cloud/connect-via-standard-connection-serverless.md \
  tidb-cloud/set-up-private-endpoint-connections-serverless.md \
  tidb-cloud/branch-overview.md
do
  if [ -f "$f" ]; then
    printf '\n### %s\n' "$f"
    wc -l "$f"
    rg -n -C 5 'PostgreSQL-compatible|MySQL-compatible|Private Endpoint|private endpoint|Starter|starter|branch|Branch' "$f" | sed -n '1,260p'
  fi
done
printf '%s\n' '--- related Japanese paths and matching passages ---'
rg -l -i 'private.?endpoint|postgresql.?compatible|mysql.?compatible|branch' tidb-cloud | rg -i 'connect|private|branch|serverless|mysql|postgres' | sed -n '1,120p'
rg -n -i -C 3 'PostgreSQL-compatible|MySQL-compatible|Private Endpoint|private endpoint' tidb-cloud --glob '*.md' | sed -n '1,320p'

Repository: pingcap/docs

Length of output: 50370


🏁 Script executed:

#!/bin/bash
set -e
printf '%s\n' '--- compatibility-specific restrictions ---'
rg -n -i -C 4 'PostgreSQL-compatible|MySQL-compatible|private endpoint|private endpoints|branch(es)?' tidb-cloud \
  --glob '*.md' \
  --glob '!connect-via-standard-connection-serverless.md' \
  --glob '!set-up-private-endpoint-connections-serverless.md' \
  --glob '!branch-overview.md' \
  | rg -i -C 3 'PostgreSQL-compatible|MySQL-compatible|private endpoint|private endpoints|branch' \
  | sed -n '1,260p'
printf '%s\n' '--- private guide focused sections ---'
sed -n '1,70p;137,151p' tidb-cloud/set-up-private-endpoint-connections-serverless.md
printf '%s\n' '--- branch guide focused sections ---'
sed -n '1,22p;38,50p' tidb-cloud/branch-overview.md
printf '%s\n' '--- compatibility overview ---'
sed -n '35,75p' tidb-cloud/select-cluster-tier.md
printf '%s\n' '--- branch management references ---'
rg -n -i -C 3 'PostgreSQL-compatible|MySQL-compatible|branch' tidb-cloud/branch-manage.md tidb-cloud/ticloud-branch-*.md tidb-cloud/terraform-use-serverless-branch-resource.md | sed -n '1,260p'

Repository: pingcap/docs

Length of output: 50370


Update the linked guides with the compatibility restrictions.

tidb-cloud/set-up-private-endpoint-connections-serverless.md describes private endpoints for generic Starter instances, and tidb-cloud/branch-overview.md describes branches for generic Starter instances. State that these features apply to MySQL-compatible Starter, not PostgreSQL-compatible Starter. The English and Japanese links and the branch sentence already include the required qualification.

📍 Affects 1 file
  • tidb-cloud/connect-via-standard-connection-serverless.md#L36-L37 (this comment)
  • tidb-cloud/connect-via-standard-connection-serverless.md#L48-L49
  • tidb-cloud/connect-via-standard-connection-serverless.md#L52-L55

Source: Path instructions

Comment thread tidb-cloud/connect-via-standard-connection-serverless.md
@ti-chi-bot

ti-chi-bot Bot commented Sep 20, 2026

Copy link
Copy Markdown

@qiqi-power: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-verify 7c00f40 link true /test pull-verify

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contribution This PR is from a community contributor. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. translation/no-need No need to translate this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants