PostgreSQL has no in-row row-size limit (TOAST stores oversized variable-length values
out-of-line), so MaxInRowSizeBytes stays null (inherited). It does enforce a
hard 1600-column-per-table cap.
No in-row size limit by default.
No practical declare-time cap on an index key string; a platform overrides it where one exists.
The data type mapping from SQL Server types to this platform's.
Wraps one DML statement so its affected-row count comes back as a one-row result set.
ALTER COLUMN clause(s) for type and nullability changes.
Wraps statements in one all-or-nothing transaction batch.
The auto-increment primary-key expression for DDL.
The batch separator.
The SQL type token for a boolean stored-procedure or function parameter.
PostgreSQL folds unquoted identifiers to lowercase, so the physical schema an
unquoted CREATE SCHEMA __mj_BizAppsCommon produces is __mj_bizappscommon.
Canonicalize to that lowercase form so the engine's quoted operations target the
same physical schema as the app's (typically unquoted) migration DDL.
No cap by default.
CAST(expr AS <bounded string type>), defaulting to MJ's 450-character indexable width.
A CAST-to-UUID expression.
Description metadata SQL for a column.
CommentOnColumn unchanged, for platforms whose comment statement is idempotent.
A description (comment) statement for an object.
CommentOnObject terminated with ;, for platforms whose comment statement is idempotent.
A conditional IF/ELSE block in procedural SQL.
OptionalelseSQL: stringWhether the platform supports CREATE OR REPLACE for the object type.
SQL that marks a savepoint.
CREATE SCHEMA IF NOT EXISTS.
CREATE TABLE IF NOT EXISTS <fullTable> (...); as a single statement.
A CREATE TABLE wrapped in a create-if-not-exists guard.
PostgreSQL strict typing requires an explicit ::UUID cast when
comparing the empty-GUID sentinel against a UUID-typed column.
Without it, PG raises "operator does not exist: uuid = text".
PostgreSQL-specific Flyway escape. PostgreSQL string concatenation uses
|| (not +), and TEXT has no length cap — so a simple split with ||
suffices and no cast-to-MAX dance is needed (unlike SQL Server, which
silently truncates NVARCHAR(N) + NVARCHAR(M) past 4,000 chars).
PostgreSQL string literals don't take an N prefix either; everything
is already Unicode.
A conservative off-row-pointer floor of 24 bytes.
SQL that checks whether a database object exists.
The fallback type for unknown abstract types.
PostgreSQL FK-graph query for cascade planning — reads pg_catalog.pg_constraint
(contype = 'f'). Returns one row per FK column (via unnest(conkey, confkey), which
preserves column pairing/order), with childNullable (NOT attnotnull) and colCount
(array_length(conkey, 1), for composite exclusion). Column aliases and semantics MATCH
the SQL Server variant so a single caller parses both. relname/attname preserve the
quoted mixed-case identifiers MJ creates on PG, so they feed straight into QuoteIdentifier.
Both parent + child are filtered to schema; the schema is embedded as a literal.
DDL that creates a full-text index.
Optional_catalog: stringA full-text search predicate.
A new UUID generation expression.
PostgreSQL functions use the DEFAULT <value> clause for parameter defaults.
PostgreSQL function parameters use a p_<flat lowercase> convention
(no @-prefix syntax in PG). This matches the baseline-ported SP names
(which lowercased SQL Server's PascalCase parameter names without
separators — e.g. @CompanyID → p_companyid) and the runtime
PostgreSQLDataProvider, which calls procs with p_${field.Name.toLowerCase()}.
Earlier this used a snake_case transform (p_company_id), which
produced functions the runtime could never invoke. Underscores already
in the input (e.g. the _Clear companion suffix) are preserved.
The syntax for calling a stored procedure or function.
A non-fatal signal statement detectable in CLI output.
SQL that releases a savepoint, or null when the platform has none.
Resolves an abstract schema field type to a concrete SQL type.
The clause that returns inserted values.
Optionalcolumns: string[]SQL that rolls back to a savepoint.
The row count variable or expression for the last statement.
Schema introspection queries.
The expression returning the last inserted identity value.
Splits an oversized SQL batch into individual statements on ;+EOL
boundaries — but NEVER inside a PostgreSQL dollar-quoted block
($$ … $$ or $tag$ … $tag$), whose body legitimately contains
;+newline (DO blocks, PL/pgSQL function bodies, the integration
view-drop guard $mj_dropviews$). A naive split(/;\s*\n/g) tears
those apart. Outside dollar blocks the boundary semantics mirror the
base split(/;\s*\n/g) (a ; then optional inline whitespace then a
newline). Each returned statement ends with ;.
A string-split row source expression.
The default expression for a UUID primary key.
PostgreSQL DDL, function, migration, introspection and transaction SQL.