git: 7fc5c9713a63 - main - databases/p5-SQL-SplitStatement: Add p5-SQL-SplitStatement 1.00023

From: Po-Chuan Hsieh <sunpoet_at_FreeBSD.org>
Date: Thu, 18 Jul 2024 16:48:21 UTC
The branch main has been updated by sunpoet:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7fc5c9713a63e0ab4da05ae240d1c2baebd73f96

commit 7fc5c9713a63e0ab4da05ae240d1c2baebd73f96
Author:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
AuthorDate: 2024-07-18 16:44:41 +0000
Commit:     Po-Chuan Hsieh <sunpoet@FreeBSD.org>
CommitDate: 2024-07-18 16:44:41 +0000

    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.
---
 databases/Makefile                        |  1 +
 databases/p5-SQL-SplitStatement/Makefile  | 27 +++++++++++++++++++++++++++
 databases/p5-SQL-SplitStatement/distinfo  |  3 +++
 databases/p5-SQL-SplitStatement/pkg-descr | 17 +++++++++++++++++
 databases/p5-SQL-SplitStatement/pkg-plist |  6 ++++++
 5 files changed, 54 insertions(+)

diff --git a/databases/Makefile b/databases/Makefile
index 14cbeddc4d2a..1e6dbfa87208 100644
--- a/databases/Makefile
+++ b/databases/Makefile
@@ -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
diff --git a/databases/p5-SQL-SplitStatement/Makefile b/databases/p5-SQL-SplitStatement/Makefile
new file mode 100644
index 000000000000..86ad3f2a097f
--- /dev/null
+++ b/databases/p5-SQL-SplitStatement/Makefile
@@ -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>
diff --git a/databases/p5-SQL-SplitStatement/distinfo b/databases/p5-SQL-SplitStatement/distinfo
new file mode 100644
index 000000000000..3c5b96d40838
--- /dev/null
+++ b/databases/p5-SQL-SplitStatement/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1721280200
+SHA256 (SQL-SplitStatement-1.00023.tar.gz) = 1a748420cd2ad341c2524ef1185b76ef7172969f17a9e4bab6f4376f0de9f35e
+SIZE (SQL-SplitStatement-1.00023.tar.gz) = 63709
diff --git a/databases/p5-SQL-SplitStatement/pkg-descr b/databases/p5-SQL-SplitStatement/pkg-descr
new file mode 100644
index 000000000000..bad86fbc8dff
--- /dev/null
+++ b/databases/p5-SQL-SplitStatement/pkg-descr
@@ -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.
diff --git a/databases/p5-SQL-SplitStatement/pkg-plist b/databases/p5-SQL-SplitStatement/pkg-plist
new file mode 100644
index 000000000000..c959247c43c3
--- /dev/null
+++ b/databases/p5-SQL-SplitStatement/pkg-plist
@@ -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