Types::SQL - a library of SQL types
version v0.7.1
use Types::SQL -types;
my $type = Varchar[16];
This module provides a type library of SQL types. These are
Type::Tiny objects that are augmented with a dbic_column_info
method that returns column information for use with
DBIx::Class.
The following types are provided:
my $type = Blob;
Returns a blob
data type.
my $type = Text;
Returns a text
data type.
my $type = Varchar[ $size ];
Returns a varchar
data type, with an optional size parameter.
my $type = Char[ $size ];
Returns a char
data type, with an optional size parameter.
If $size
is omitted, then it will default to 1.
my $type = Integer[ $precision ];
Returns a integer
data type, with an optional precision parameter.
This is shorthand for Integer[5]
.
This is shorthand for Integer[19]
.
my $type = Serial[ $precision ];
Returns a serial
data type, with an optional precision parameter.
my $type = Numeric[ $precision, $scale ];
Returns a integer
data type, with optional precision and scale parameters.
If $scale
is omitted, then it is assumed to be 0
.
Any type that has these types as a parent can have column information extracted using Types::SQL::Util.
Alternatively, you can specify a custom dbic_column_info
method in
a type, e.g.:
my $type = Type::Tiny->new(
name => 'MyType',
my_methods => {
dbic_column_info => sub {
my ($self) = @_;
return (
data_type => 'custom',
parameter => 1234,
);
},
},
...
);
The method should return a hash of values that are passed to the
add_column
method of DBIx::Class::ResultSource.
Since v0.7.0, the this module requires Perl v5.14 or later.
Future releases may only support Perl versions released in the last ten years.
If you need this module on Perl v5.10, please use one of the v0.6.x versions of this module. Significant bug or security fixes may be backported to those versions.
Types::SQL::Util, which provides a utility function for translating these types and other types from Types::Standard into column information for DBIx::Class::ResultSource.
The development version is on github at https://github.com/robrwo/Types-SQL and may be cloned from git://github.com/robrwo/Types-SQL.git
Please report any bugs or feature requests on the bugtracker website https://github.com/robrwo/Types-SQL/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
Security issues should not be reported on the bugtracker website. Please see SECURITY.md
for instructions how to
report security vulnerabilities
Robert Rothenberg rrwo@cpan.org
Slaven Rezić slaven@rezic.de
This software is Copyright (c) 2016-2025 by Robert Rothenberg.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)