shebang!

Limits

What's actually enforced today on base_run_sql and the pooler — one statement per call, a character cap, and transaction-mode's prepared-statement restriction.

Limits

sherbase doesn't impose a fixed cap on the number of databases an account can create. What's actually enforced today is narrower, and specific to running queries.

One statement per base_run_sql call

base_run_sql runs your SQL through Postgres's extended query protocol, which parses the text as a single prepared statement before executing anything. A ;-separated string with more than one statement in it is rejected outright — cannot insert multiple commands into a prepared statement — rather than run partially or truncated. If you need several statements, call base_run_sql once per statement.

A character cap on the SQL text

A single base_run_sql call's SQL text is capped at 100,000 characters. Exceeding it returns a 400 naming the limit, before the query is sent to the database at all.

A statement timeout

Every base_run_sql call runs with a 5-second statement timeout. A query that hasn't returned by then is cancelled rather than left to run indefinitely.

Prepared statements and the transaction pooler

The transaction-mode pooler (port 6543 — see connection strings) does not support prepared statements. A driver or ORM that relies on them needs the session-mode pooler (port 5432) instead.