package SQL::Translator::Producer::Sybase;
# -------------------------------------------------------------------
-# $Id: Sybase.pm,v 1.5 2003-08-17 01:11:54 rossta Exp $
+# $Id$
# -------------------------------------------------------------------
-# Copyright (C) 2003 Ken Y. Clark <kclark@cpan.org>,
-# darren chamberlain <darren@cpan.org>,
-# Chris Mungall <cjm@fruitfly.org>,
-# Sam Angiuoli <angiuoli@users.sourceforge.net>
+# Copyright (C) 2002-4 SQLFairy Authors
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
SQL::Translator::Producer::Sybase - Sybase producer for SQL::Translator
+=head1 SYNOPSIS
+
+ use SQL::Translator;
+
+ my $t = SQL::Translator->new( parser => '...', producer => 'Sybase' );
+ $t->translate;
+
+=head1 DESCRIPTION
+
+This module will produce text output of the schema suitable for Sybase.
+
=cut
use strict;
use vars qw[ $DEBUG $WARN $VERSION ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.5 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/;
$DEBUG = 1 unless defined $DEBUG;
use Data::Dumper;
my %extra = $field->extra;
my $list = $extra{'list'} || [];
# \todo deal with embedded quotes
- my $commalist = "'" . join("','", @$list) . "'";
+ my $commalist = join( ', ', map { qq['$_'] } @$list );
my $seq_name;
if ( $data_type eq 'enum' ) {
);
}
+ foreach my $view ( $schema->get_views ) {
+ my (@comments, $view_name);
+
+ $view_name = $view->name();
+ push @comments, "--\n-- View: $view_name\n--" unless $no_comments;
+
+ # text of view is already a 'create view' statement so no need
+ # to do anything fancy.
+
+ $output .= join("\n\n",
+ @comments,
+ $view->sql(),
+ );
+ }
+
+
+ foreach my $procedure ( $schema->get_procedures ) {
+ my (@comments, $procedure_name);
+
+ $procedure_name = $procedure->name();
+ push @comments,
+ "--\n-- Procedure: $procedure_name\n--" unless $no_comments;
+
+ # text of procedure already has the 'create procedure' stuff
+ # so there is no need to do anything fancy. However, we should
+ # think about doing fancy stuff with granting permissions and
+ # so on.
+
+ $output .= join("\n\n",
+ @comments,
+ $procedure->sql(),
+ );
+ }
+
if ( $WARN ) {
if ( %truncated ) {
warn "Truncated " . keys( %truncated ) . " names:\n";
=pod
+=head1 SEE ALSO
+
+SQL::Translator.
+
=head1 AUTHORS
Sam Angiuoli E<lt>angiuoli@users.sourceforge.netE<gt>,
-Ken Y. Clark E<lt>kclark@cpan.orgE<gt>
+Paul Harrington E<lt>harringp@deshaw.comE<gt>,
+Ken Y. Clark E<lt>kclark@cpan.orgE<gt>.
=cut