~ubuntu-branches/ubuntu/raring/postgresql-8.4/raring

« back to all changes in this revision

Viewing changes to src/tools/msvc/Solution.pm

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-02-01 17:14:21 UTC
  • mfrom: (13.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20110201171421-gh0ncmnjr3mggdjd
Tags: 8.4.7-1
* New upstream security/bug fix release:
  - Fix buffer overrun in "contrib/intarray"'s input function for the
    query_int type.
    This bug is a security risk since the function's return address
    could be overwritten. Thanks to Apple Inc's security team for
    reporting this issue and supplying the fix. (CVE-2010-4015)
  - Avoid failures when "EXPLAIN" tries to display a simple-form CASE
    expression.
    If the CASE's test expression was a constant, the planner could
    simplify the CASE into a form that confused the expression-display
    code, resulting in "unexpected CASE WHEN clause" errors.
  - Fix assignment to an array slice that is before the existing range
    of subscripts.
    If there was a gap between the newly added subscripts and the first
    pre-existing subscript, the code miscalculated how many entries
    needed to be copied from the old array's null bitmap, potentially
    leading to data corruption or crash.
  - Avoid unexpected conversion overflow in planner for very distant
    date values.
    The date type supports a wider range of dates than can be
    represented by the timestamp types, but the planner assumed it
    could always convert a date to timestamp with impunity.
  - Fix pg_restore's text output for large objects (BLOBs) when
    standard_conforming_strings is on.
    Although restoring directly to a database worked correctly, string
    escaping was incorrect if pg_restore was asked for SQL text output
    and standard_conforming_strings had been enabled in the source
    database.
  - Fix erroneous parsing of tsquery values containing ... &
    !(subexpression) | ... .
    Queries containing this combination of operators were not executed
    correctly. The same error existed in "contrib/intarray"'s query_int
    type and "contrib/ltree"'s ltxtquery type.
  - Fix bug in "contrib/seg"'s GiST picksplit algorithm.
    This could result in considerable inefficiency, though not actually
    incorrect answers, in a GiST index on a seg column. If you have
    such an index, consider "REINDEX"ing it after installing this
    update. (This is identical to the bug that was fixed in
    "contrib/cube" in the previous update.)

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
        options  => $options,
21
21
        numver   => '',
22
22
        strver   => '',
 
23
        vcver    => undef,
23
24
    };
24
25
    bless $self;
25
26
        # integer_datetimes is now the default
51
52
                unless $options->{wal_segsize}; # undef or 0 means default
52
53
        die "Bad wal_segsize $options->{wal_segsize}"
53
54
                unless grep {$_ == $options->{wal_segsize}} (1,2,4,8,16,32,64);
 
55
 
 
56
    $self->DetermineToolVersions();
 
57
 
54
58
    return $self;
55
59
}
56
60
 
 
61
sub DetermineToolVersions
 
62
{
 
63
    my $self = shift;
 
64
 
 
65
# Determine version of vcbuild command, to set proper verison of visual studio
 
66
    open(P,"vcbuild /? |") || die "vcbuild command not found";
 
67
    my $line = <P>;
 
68
    close(P);
 
69
    if ($line !~ /^Microsoft \(R\) Visual C\+\+ Project Builder - Command Line Version (\d+)\.00\.\d+/) {
 
70
       die "Unable to determine vcbuild version from first line of output!";
 
71
    }
 
72
    if ($1 == 8) { $self->{vcver} = '8.00' }
 
73
    elsif ($1 == 9) { $self->{vcver} = '9.00' }
 
74
    else { die "Unsupported version of Visual Studio: $1" }
 
75
    print "Detected Visual Studio version $self->{vcver}\n";
 
76
}
 
77
 
 
78
 
57
79
# Return 1 if $oldfile is newer than $newfile, or if $newfile doesn't exist.
58
80
# Special case - if config.pl has changed, always return 1
59
81
sub IsNewer