NAME
Types::SQL - a library of SQL types
VERSION
version v0.4.0
SYNOPSIS
use Types::SQL -types;
my $type = Varchar[16];
DESCRIPTION
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.
TYPES
The following types are provided:
Blob
my $type = Blob;
Returns a blob
data type.
Text
my $type = Text;
Returns a text
data type.
Varchar
my $type = Varchar[ $size ];
Returns a varchar
data type, with an optional size parameter.
Char
my $type = Char[ $size ];
Returns a char
data type, with an optional size parameter.
Integer
my $type = Integer[ $precision ];
Returns a integer
data type, with an optional precision parameter.
SmallInt
This is shorthand for Integer[5]
.
BigInt
This is shorthand for Integer[19]
.
Serial
my $type = Serial[ $precision ];
Returns a serial
data type, with an optional precision parameter.
Numeric
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
.
CUSTOM TYPES
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.
ROADMAP
Support for Perl versions earlier than 5.10 will be removed sometime in 2019.
SEE ALSO
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.
SOURCE
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
BUGS
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.
AUTHOR
Robert Rothenberg <rrwo@cpan.org>
CONTRIBUTOR
Slaven Rezić <slaven@rezic.de>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2016-2018 by Robert Rothenberg.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)