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:
parent
b307429842
commit
7fc5c9713a
@ -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
|
||||
|
27
databases/p5-SQL-SplitStatement/Makefile
Normal file
27
databases/p5-SQL-SplitStatement/Makefile
Normal 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>
|
3
databases/p5-SQL-SplitStatement/distinfo
Normal file
3
databases/p5-SQL-SplitStatement/distinfo
Normal file
@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1721280200
|
||||
SHA256 (SQL-SplitStatement-1.00023.tar.gz) = 1a748420cd2ad341c2524ef1185b76ef7172969f17a9e4bab6f4376f0de9f35e
|
||||
SIZE (SQL-SplitStatement-1.00023.tar.gz) = 63709
|
17
databases/p5-SQL-SplitStatement/pkg-descr
Normal file
17
databases/p5-SQL-SplitStatement/pkg-descr
Normal 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.
|
6
databases/p5-SQL-SplitStatement/pkg-plist
Normal file
6
databases/p5-SQL-SplitStatement/pkg-plist
Normal 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
|
Loading…
Reference in New Issue
Block a user