Skip to main content

sqlrules-postgresql

PostgreSQL backend provider for SQLRules. The package version follows the core 2.x line.

Install

pip install "sqlrules>=2,<3" "sqlrules-postgresql>=2,<3"

Use

from typing import Annotated, Any

from pydantic import Field
from sqlalchemy import Column, MetaData, String, Table
from sqlalchemy.dialects.postgresql import ARRAY, INT4RANGE, JSONB

from sqlrules import ArrayContains, Compiler, JsonContains, RangeContains, RuleSchema, where
from sqlrules_postgresql import PostgresPlugin

rows = Table(
    "rows",
    MetaData(),
    Column("name", String),
    Column("meta", JSONB),
    Column("tags", ARRAY(String)),
    Column("span", INT4RANGE),
)


class RowRules(RuleSchema):
    name: Annotated[str, Field(pattern=r"^A")]
    meta: Annotated[dict[str, Any], JsonContains({"active": True})]
    tags: Annotated[list[str], ArrayContains(["admin"])]
    span: Annotated[int, RangeContains(5)]


compiled = Compiler(plugins=[PostgresPlugin(server_version=(16, 0))]).compile(RowRules, rows)
statement = rows.select().where(*where(compiled))

Capabilities

  • pattern: PostgreSQL ~ / ~*
  • JSONB containment and key membership
  • ARRAY containment and overlap
  • Range containment and overlap
  • Safe lax text-to-int/float/Decimal parsing on PostgreSQL 16+

String Literal and Enum fields require a column with C or POSIX collation. Review the type support matrix for the exact conversion profile and limitations.

Pattern cost

Untrusted regular expressions can cause expensive engine-side evaluation. Prefer patterns authored with the rule model. See the SQLRules security notes.

Metadata

Release files for sqlrules-postgresql 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sqlrules-postgresql 2.0.0
File Size Uploaded
sqlrules_postgresql-2.0.0.tar.gz 4.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sqlrules-postgresql 2.0.0
File Interpreter ABI Platform
sqlrules_postgresql-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.9 kB

Release files / sqlrules_postgresql-2.0.0.tar.gz

Download URL sqlrules_postgresql-2.0.0.tar.gz
Size 4.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a5dd4c39e69740d230b61ab928093e8cbc3bf5ed21faac7dac20b6be9a1b8af9
BLAKE2b-256 checksum
How to use checksums
ce9c50bf90e6702b389f83c37d359d5c49353d8f42e6da4285a6d216efd0e170
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / sqlrules_postgresql-2.0.0-py3-none-any.whl

Download URL sqlrules_postgresql-2.0.0-py3-none-any.whl
Size 6.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73897d64071f15a2df7695787b4dbaa2534c524f859aad56dff624e71df0dac1
BLAKE2b-256 checksum
How to use checksums
6e43dbd1ae465b4ae4532dfb431ff80636683f88a5f2da3449575a958be4fbf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page