File: abstract_sql_writer.pm

package info (click to toggle)
libgo-perl 0.13-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 7,404 kB
  • sloc: perl: 13,104; sh: 21; makefile: 6
file content (40 lines) | stat: -rw-r--r-- 617 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

package GO::Handlers::abstract_sql_writer;
use base qw(Data::Stag::Writer Exporter);
use strict;

sub out {
    my $self = shift;
    print "@_";
}

sub cmt {
    my $self = shift;
    my $cmt = shift;
    $self->out(" % $cmt") if $cmt;
    return;
}

sub sqlquote {
    my $s = shift;
    $s =~ s/\'/\\\'/g;
    "'$s'";
}

sub nl {
    shift->print("\n");
}

sub fact {
    my $self = shift;
    my $pred = shift;
    my @args = @{shift||[]};
    my $cmt = shift;
    $self->out(sprintf("INSERT INTO $pred VALUES (%s); ",
		       join(', ', map {sqlquote($_)} @args)));
    $self->cmt($cmt);
    $self->nl;
}


1;