Skip to content

robrwo/Types-SQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Types::SQL - a library of SQL types

VERSION

version v0.7.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.

SUPPORT FOR OLDER PERL VERSIONS

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.

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.

Reporting Security Vulnerabilities

Security issues should not be reported on the bugtracker website. Please see SECURITY.md for instructions how to report security vulnerabilities

AUTHOR

Robert Rothenberg rrwo@cpan.org

CONTRIBUTOR

Slaven Rezić slaven@rezic.de

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016-2025 by Robert Rothenberg.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)

About

Type library for SQL types

Resources

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages