Initial Commit

This commit is contained in:
Riley Schneider
2025-12-03 16:38:10 +01:00
parent c5e26bf594
commit b732d8d4b5
17680 changed files with 5977495 additions and 2 deletions

View File

@@ -0,0 +1,369 @@
package SQL::Dialects::ANSI;
#########################################################################
#
# This module is copyright (c), 2001,2005 by Jeff Zucker.
# This module is copyright (c), 2007-2020 by Jens Rehsack.
# All rights reserved.
#
# It may be freely distributed under the same terms as Perl itself.
#
# See below for help (search for SYNOPSIS)
#########################################################################
use strict;
use warnings FATAL => "all";
use vars qw($VERSION);
$VERSION = '1.414';
use SQL::Dialects::Role;
sub get_config
{
return <<EOC;
[VALID COMMANDS]
CREATE
DROP
SELECT
DELETE
INSERT
UPDATE
[VALID OPTIONS]
SELECT_MULTIPLE_TABLES
SELECT_AGGREGATE_FUNCTIONS
[VALID COMPARISON OPERATORS]
=
<>
<
<=
>
>=
LIKE
NOT LIKE
IS
IS NOT
IN
NOT IN
BETWEEN
NOT BETWEEN
[VALID DATA TYPES]
CHARACTER
CHAR
CHARACTER VARYING
CHAR VARYING
VARCHAR
CHARACTER SET
NATIONAL CHARACTER
NATIONAL CHAR
NCHAR
NATIONAL CHARACTER VARYING
NATIONAL CHAR VARYING
NCHAR VARYING
BIT
BIT VARYING
NUMERIC
DECIMAL
DEC
INTEGER
INT
SMALLINT
FLOAT
REAL
DOUBLE PRECISION
DATE
TIME
TIMESTAMP
INTERVAL
[RESERVED WORDS]
ABSOLUTE
ACTION
ADD
ALL
ALLOCATE
ALTER
AND
ANY
ARE
AS
ASC
ASSERTION
AT
AUTHORIZATION
AVG
BEGIN
BETWEEN
BIT
BIT_LENGTH
BOTH
BY
CASCADE
CASCADED
CASE
CAST
CATALOG
CHAR
CHARACTER
CHAR_LENGTH
CHARACTER_LENGTH
CHECK
CLOSE
COALESCE
COLLATE
COLLATION
COLUMN
COMMIT
CONNECT
CONNECTION
CONSTRAINT
CONSTRAINTS
CONTINUE
CONVERT
CORRESPONDING
COUNT
CREATE
CROSS
CURRENT
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
CURSOR
DATE
DAY
DEALLOCATE
DEC
DECIMAL
DECLARE
DEFAULT
DEFERRABLE
DEFERRED
DELETE
DESC
DESCRIBE
DESCRIPTOR
DIAGNOSTICS
DISCONNECT
DISTINCT
DOMAIN
DOUBLE
DROP
ELSE
END
END-EXEC
ESCAPE
EXCEPT
EXCEPTION
EXEC
EXECUTE
EXISTS
EXTERNAL
EXTRACT
FALSE
FETCH
FIRST
FLOAT
FOR
FOREIGN
FOUND
FROM
FULL
GET
GLOBAL
GO
GOTO
GRANT
GROUP
HAVING
HOUR
IDENTITY
IMMEDIATE
IN
INDICATOR
INITIALLY
INNER
INPUT
INSENSITIVE
INSERT
INT
INTEGER
INTERSECT
INTERVAL
INTO
IS
ISOLATION
JOIN
KEY
LANGUAGE
LAST
LEADING
LEFT
LEVEL
LIKE
LOCAL
LOWER
MATCH
MAX
MIN
MINUTE
MODULE
MONTH
NAMES
NATIONAL
NATURAL
NCHAR
NEXT
NO
NOT
NULL
NULLIF
NUMERIC
OCTET_LENGTH
OF
ON
ONLY
OPEN
OPTION
OR
ORDER
OUTER
OUTPUT
OVERLAPS
PAD
PARTIAL
POSITION
PRECISION
PREPARE
PRESERVE
PRIMARY
PRIOR
PRIVILEGES
PROCEDURE
PUBLIC
READ
REAL
REFERENCES
RELATIVE
RESTRICT
REVOKE
RIGHT
ROLLBACK
ROWS
SCHEMA
SCROLL
SECOND
SECTION
SELECT
SESSION
SESSION_USER
SET
SIZE
SMALLINT
SOME
SPACE
SQL
SQLCODE
SQLERROR
SQLSTATE
SUBSTRING
SUM
SYSTEM_USER
TABLE
TEMPORARY
THEN
TIME
TIMESTAMP
TIMEZONE_HOUR
TIMEZONE_MINUTE
TO
TRAILING
TRANSACTION
TRANSLATE
TRANSLATION
TRIM
TRUE
UNION
UNIQUE
UNKNOWN
UPDATE
UPPER
USAGE
USER
USING
VALUE
VALUES
VARCHAR
VARYING
VIEW
WHEN
WHENEVER
WHERE
WITH
WORK
WRITE
YEAR
ZONE
EOC
}
1;
=pod
=head1 NAME
SQL::Dialects::ANSI
=head1 SYNOPSIS
use SQL::Dialects::ANSI;
$config = SQL::Dialects::ANSI->get_config();
=head1 DESCRIPTION
This package provides the necessary configuration for ANSI SQL, as far it's
supported.
=head1 FUNCTIONS
=head2 get_config
Returns the configuration for ANSI SQL. The configuration is delivered in
ini-style:
[VALID COMMANDS]
...
[VALID OPTIONS]
...
[VALID COMPARISON OPERATORS]
...
[VALID DATA TYPES]
...
[RESERVED WORDS]
...
=head1 AUTHOR & COPYRIGHT
This module is
copyright (c) 2001,2005 by Jeff Zucker and
copyright (c) 2007-2020 by Jens Rehsack.
All rights reserved.
The module may be freely distributed under the same terms as
Perl itself using either the "GPL License" or the "Artistic
License" as specified in the Perl README file.
Jeff can be reached at: jzuckerATcpan.org
Jens can be reached at: rehsackATcpan.org or via dbi-devATperl.org
=cut

View File

@@ -0,0 +1,162 @@
package SQL::Dialects::AnyData;
#########################################################################
#
# This module is copyright (c), 2001,2005 by Jeff Zucker.
# This module is copyright (c), 2007-2020 by Jens Rehsack.
# All rights reserved.
#
# It may be freely distributed under the same terms as Perl itself.
#
# See below for help (search for SYNOPSIS)
#########################################################################
use strict;
use warnings FATAL => "all";
use vars qw($VERSION);
$VERSION = '1.414';
use SQL::Dialects::Role;
sub get_config
{
return <<EOC;
[VALID COMMANDS]
CREATE
DROP
SELECT
INSERT
UPDATE
DELETE
[VALID OPTIONS]
SELECT_MULTIPLE_TABLES
SELECT_AGGREGATE_FUNCTIONS
[VALID COMPARISON OPERATORS]
=
<>
<
<=
>
>=
LIKE
NOT LIKE
CLIKE
NOT CLIKE
RLIKE
NOT RLIKE
IS
IS NOT
IN
NOT IN
BETWEEN
NOT BETWEEN
[VALID DATA TYPES]
CHAR
VARCHAR
REAL
INT
INTEGER
BLOB
TEXT
[RESERVED WORDS]
INTEGERVAL
STRING
REALVAL
IDENT
NULLVAL
PARAM
OPERATOR
IS
AND
OR
ERROR
INSERT
UPDATE
SELECT
DELETE
DROP
CREATE
ALL
DISTINCT
WHERE
ORDER
ASC
DESC
FROM
INTO
BY
VALUES
SET
NOT
TABLE
CHAR
VARCHAR
REAL
INTEGER
PRIMARY
KEY
BLOB
TEXT
EOC
}
1;
=pod
=head1 NAME
SQL::Dialects::AnyData
=head1 SYNOPSIS
use SQL::Dialects::AnyData;
$config = SQL::Dialects::AnyData->get_config();
=head1 DESCRIPTION
This package provides the necessary configuration for AnyData SQL.
=head1 FUNCTIONS
=head2 get_config
Returns the configuration for AnyData SQL. The configuration is delivered in
ini-style:
[VALID COMMANDS]
...
[VALID OPTIONS]
...
[VALID COMPARISON OPERATORS]
...
[VALID DATA TYPES]
...
[RESERVED WORDS]
...
=head1 AUTHOR & COPYRIGHT
This module is
copyright (c) 2001,2005 by Jeff Zucker and
copyright (c) 2007-2020 by Jens Rehsack.
All rights reserved.
The module may be freely distributed under the same terms as
Perl itself using either the "GPL License" or the "Artistic
License" as specified in the Perl README file.
Jeff can be reached at: jzuckerATcpan.org
Jens can be reached at: rehsackATcpan.org or via dbi-devATperl.org
=cut

View File

@@ -0,0 +1,153 @@
package SQL::Dialects::CSV;
#########################################################################
#
# This module is copyright (c), 2001,2005 by Jeff Zucker.
# This module is copyright (c), 2007-2020 by Jens Rehsack.
# All rights reserved.
#
# It may be freely distributed under the same terms as Perl itself.
#
# See below for help (search for SYNOPSIS)
#########################################################################
use strict;
use warnings FATAL => "all";
use vars qw($VERSION);
$VERSION = '1.414';
use SQL::Dialects::Role;
sub get_config
{
return <<EOC;
[VALID COMMANDS]
CREATE
DROP
SELECT
INSERT
UPDATE
DELETE
[VALID COMPARISON OPERATORS]
=
<>
<
<=
>
>=
LIKE
CLIKE
IS
IS NOT
IN
NOT IN
BETWEEN
NOT BETWEEN
[VALID DATA TYPES]
CHAR
VARCHAR
REAL
INTEGER
BLOB
TEXT
[RESERVED WORDS]
INTEGERVAL
STRING
REALVAL
IDENT
NULLVAL
PARAM
OPERATOR
IS
AND
OR
ERROR
INSERT
UPDATE
SELECT
DELETE
DROP
CREATE
ALL
DISTINCT
WHERE
ORDER
ASC
DESC
FROM
INTO
BY
VALUES
SET
NOT
TABLE
CHAR
VARCHAR
REAL
INTEGER
PRIMARY
KEY
BLOB
TEXT
EOC
}
1;
=pod
=head1 NAME
SQL::Dialects::CSV
=head1 SYNOPSIS
use SQL::Dialects::CSV;
$config = SQL::Dialects::CSV->get_config();
=head1 DESCRIPTION
This package provides the necessary configuration for CSV SQL.
=head1 FUNCTIONS
=head2 get_config
Returns the configuration for CSV SQL. The configuration is delivered in
ini-style:
[VALID COMMANDS]
...
[VALID OPTIONS]
...
[VALID COMPARISON OPERATORS]
...
[VALID DATA TYPES]
...
[RESERVED WORDS]
...
=head1 AUTHOR & COPYRIGHT
This module is
copyright (c) 2001,2005 by Jeff Zucker and
copyright (c) 2007-2020 by Jens Rehsack.
All rights reserved.
The module may be freely distributed under the same terms as
Perl itself using either the "GPL License" or the "Artistic
License" as specified in the Perl README file.
Jeff can be reached at: jzuckerATcpan.org
Jens can be reached at: rehsackATcpan.org or via dbi-devATperl.org
=cut

View File

@@ -0,0 +1,130 @@
package SQL::Dialects::Role;
#########################################################################
#
# This module is copyright (c), 2009 by Michael G. Schwern
# This module is copyright (c), 2009-2020 by Jens Rehsack.
# All rights reserved.
#
# It may be freely distributed under the same terms as Perl itself.
#
# See below for help (search for SYNOPSIS)
#########################################################################
use strict;
use warnings FATAL => "all";
use base qw(Exporter);
our @EXPORT = qw(get_config_as_hash);
our $VERSION = '1.414';
sub get_config_as_hash
{
my $class = $_[0];
my @data = split( m/\n/, $class->get_config() );
my %config;
my $feature;
for (@data)
{
chomp;
s/^\s+//;
s/\s+$//;
next unless ($_);
if (/^\[(.*)\]$/i)
{
$feature = lc $1;
$feature =~ s/\s+/_/g;
next;
}
my $newopt = uc $_;
$newopt =~ s/\s+/ /g;
$config{$feature}{$newopt} = 1;
}
return \%config;
}
=head1 NAME
SQL::Dialects::Role - The role of being a SQL::Dialect
=head1 SYNOPSIS
package My::SQL::Dialect;
use SQL::Dialects::Role;
sub get_config {
return <<CONFIG;
[SECTION]
item1
item2
[ANOTHER SECTION]
item1
item2
CONFIG
}
=head1 DESCRIPTION
This adds the role of being a SQL::Dialect to your class.
=head2 Requirements
You must implement...
=head3 get_config
my $config = $class->get_config;
Returns information about the dialect in an INI-like format.
=head2 Implements
The role implements...
=head3 get_config_as_hash
my $config = $class->get_config_as_hash;
Returns the data represented in get_config() as a hash ref.
Items will be upper-cased, sections will be lower-cased.
The example in the SYNOPSIS would come back as...
{
section => {
ITEM1 => 1,
ITEM2 => 2,
},
another_section => {
ITEM1 => 1,
ITEM2 => 2,
}
}
=head1 AUTHOR & COPYRIGHT
This module is
copyright (c), 2009 by Michael G. Schwern
copyright (c), 2009-2020 by Jens Rehsack.
All rights reserved.
The module may be freely distributed under the same terms as
Perl itself using either the "GPL License" or the "Artistic
License" as specified in the Perl README file.
Jeff can be reached at: jzuckerATcpan.org
Jens can be reached at: rehsackATcpan.org or via dbi-devATperl.org
=head1 SEE ALSO
L<SQL::Parser/dialect()>
=cut