1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-18 00:10:04 +00:00

databases/p5-SQL-SplitStatement: Add p5-SQL-SplitStatement 1.00023

SQL::SplitStatement is a simple module which tries to split any SQL code, even
including non-standard extensions, into the atomic statements it is composed of.

The logic used to split the SQL code is more sophisticated than a raw split on
the ; (semicolon) character: first, various different statement terminator
tokens are recognized (see below for the list), then this module is able to
correctly handle the presence of said tokens inside identifiers, values,
comments, BEGIN ... END blocks (even nested), dollar-quoted strings, MySQL
custom DELIMITERs, procedural code etc., as (partially) exemplified in the
"SYNOPSIS" above.

Consider however that this is by no means a validating parser (technically
speaking, it's just a context-sensitive tokenizer). It should rather be seen as
an in-progress heuristic approach, which will gradually improve as test cases
will be reported. This also means that, except for the "LIMITATIONS" detailed
below, there is no known (to the author) SQL code the most current release of
this module can't correctly split.
This commit is contained in:
Po-Chuan Hsieh 2024-07-19 00:44:41 +08:00
parent b307429842
commit 7fc5c9713a
No known key found for this signature in database
GPG Key ID: 9A4BD10F002DD04B
5 changed files with 54 additions and 0 deletions

View File

@ -480,6 +480,7 @@
SUBDIR += p5-SQL-Maker
SUBDIR += p5-SQL-NamedPlaceholder
SUBDIR += p5-SQL-ReservedWords
SUBDIR += p5-SQL-SplitStatement
SUBDIR += p5-SQL-Statement
SUBDIR += p5-SQL-Translator
SUBDIR += p5-SQLite-Work

View File

@ -0,0 +1,27 @@
PORTNAME= SQL-SplitStatement
PORTVERSION= 1.00023
CATEGORIES= databases perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Split any SQL code into atomic statements
WWW= https://metacpan.org/dist/SQL-SplitStatement
LICENSE= ART10 GPLv1+
LICENSE_COMB= dual
LICENSE_FILE= ${WRKSRC}/LICENSE
BUILD_DEPENDS= ${RUN_DEPENDS}
RUN_DEPENDS= p5-Class-Accessor>=0:devel/p5-Class-Accessor \
p5-List-MoreUtils>=0:lang/p5-List-MoreUtils \
p5-Regexp-Common>=0:textproc/p5-Regexp-Common
TEST_DEPENDS= p5-Test-Differences>=0.680:devel/p5-Test-Differences \
p5-Test-Exception>=0.27:devel/p5-Test-Exception
USES= perl5
USE_PERL5= configure
NO_ARCH= yes
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1721280200
SHA256 (SQL-SplitStatement-1.00023.tar.gz) = 1a748420cd2ad341c2524ef1185b76ef7172969f17a9e4bab6f4376f0de9f35e
SIZE (SQL-SplitStatement-1.00023.tar.gz) = 63709

View File

@ -0,0 +1,17 @@
SQL::SplitStatement is a simple module which tries to split any SQL code, even
including non-standard extensions, into the atomic statements it is composed of.
The logic used to split the SQL code is more sophisticated than a raw split on
the ; (semicolon) character: first, various different statement terminator
tokens are recognized (see below for the list), then this module is able to
correctly handle the presence of said tokens inside identifiers, values,
comments, BEGIN ... END blocks (even nested), dollar-quoted strings, MySQL
custom DELIMITERs, procedural code etc., as (partially) exemplified in the
"SYNOPSIS" above.
Consider however that this is by no means a validating parser (technically
speaking, it's just a context-sensitive tokenizer). It should rather be seen as
an in-progress heuristic approach, which will gradually improve as test cases
will be reported. This also means that, except for the "LIMITATIONS" detailed
below, there is no known (to the author) SQL code the most current release of
this module can't correctly split.

View File

@ -0,0 +1,6 @@
bin/sql-split
%%SITE_PERL%%/SQL/SplitStatement.pm
%%SITE_PERL%%/SQL/SplitStatement/Tokenizer.pm
%%PERL5_MAN1%%/sql-split.1.gz
%%PERL5_MAN3%%/SQL::SplitStatement.3.gz
%%PERL5_MAN3%%/SQL::SplitStatement::Tokenizer.3.gz