import py-pgsanity; ok tb@

This commit is contained in:
daniel
2025-12-16 22:58:23 +00:00
parent 02145d3b96
commit d97ba38eb4
4 changed files with 58 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
COMMENT= PostgreSQL SQL syntax checker
MODPY_DISTV = 0.2.9
DISTNAME = pgsanity-${MODPY_DISTV}
PKGNAME = py-${DISTNAME}
CATEGORIES = databases
MAINTAINER = Daniel Dickman <daniel@openbsd.org>
# MIT
PERMIT_PACKAGE = Yes
MODULES = lang/python
MODPY_PI = Yes
MODPY_PYBUILD = setuptools
RUN_DEPENDS = databases/postgresql
.include <bsd.port.mk>
+2
View File
@@ -0,0 +1,2 @@
SHA256 (pgsanity-0.2.9.tar.gz) = 3gu9b+T5i/UTnLX0ZurC4quvWnsFC55IZ7h782CHMXM=
SIZE (pgsanity-0.2.9.tar.gz) = 7472
+12
View File
@@ -0,0 +1,12 @@
PgSanity checks the syntax of Postgresql SQL files.
It does this by leveraging the ecpg command which is traditionally
used for preparing C files with embedded sql for compilation.
However, as part of that preparation, ecpg checks the embedded SQL
statements for syntax errors using the exact same parser that is
in PostgreSQL.
So the approach that PgSanity takes is to take a file that has a
list of bare SQL in it, make that file look like a C file with
embedded SQL, run it through ecpg and let ecpg report on the syntax
errors of the SQL.
+23
View File
@@ -0,0 +1,23 @@
bin/pgsanity
lib/python${MODPY_VERSION}/site-packages/pgsanity/
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/METADATA
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/RECORD
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/WHEEL
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/entry_points.txt
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/licenses/
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/licenses/LICENSE
lib/python${MODPY_VERSION}/site-packages/pgsanity-${MODPY_DISTV}.dist-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/pgsanity/__init__.py
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}ecpg.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}ecpg.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}pgsanity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}pgsanity.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}sqlprep.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/pgsanity/${MODPY_PYCACHE}sqlprep.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/pgsanity/ecpg.py
lib/python${MODPY_VERSION}/site-packages/pgsanity/pgsanity.py
lib/python${MODPY_VERSION}/site-packages/pgsanity/sqlprep.py