NAME

Types::SQL - a library of SQL types

VERSION

version v0.4.1

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.

If $size is omitted, then it will default to 1.

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

Type::Tiny.

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-2022 by Robert Rothenberg.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)