Merge akishkin@work.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/walrus/bk/40.ibase
This commit is contained in:
commit
f8f277a57b
@ -2985,7 +2985,7 @@ sub new
|
|||||||
bless $self;
|
bless $self;
|
||||||
|
|
||||||
$self->{'cmp_name'} = "interbase";
|
$self->{'cmp_name'} = "interbase";
|
||||||
$self->{'data_source'} = "DBI:InterBase:database=$database:ib_dialect=3";
|
$self->{'data_source'} = "DBI:InterBase:database=$database;ib_dialect=3";
|
||||||
$self->{'limits'} = \%limits;
|
$self->{'limits'} = \%limits;
|
||||||
$self->{'blob'} = "blob";
|
$self->{'blob'} = "blob";
|
||||||
$self->{'text'} = "";
|
$self->{'text'} = "";
|
||||||
@ -3000,7 +3000,7 @@ sub new
|
|||||||
$limits{'max_tables'} = 65000; # Should be big enough
|
$limits{'max_tables'} = 65000; # Should be big enough
|
||||||
$limits{'max_text_size'} = 15000; # Max size with default buffers.
|
$limits{'max_text_size'} = 15000; # Max size with default buffers.
|
||||||
$limits{'query_size'} = 1000000; # Max size with default buffers.
|
$limits{'query_size'} = 1000000; # Max size with default buffers.
|
||||||
$limits{'max_index'} = 31; # Max number of keys
|
$limits{'max_index'} = 65000; # Max number of keys
|
||||||
$limits{'max_index_parts'} = 8; # Max segments/key
|
$limits{'max_index_parts'} = 8; # Max segments/key
|
||||||
$limits{'max_column_name'} = 128; # max table and column name
|
$limits{'max_column_name'} = 128; # max table and column name
|
||||||
|
|
||||||
@ -3050,16 +3050,13 @@ sub new
|
|||||||
sub version
|
sub version
|
||||||
{
|
{
|
||||||
my ($self)=@_;
|
my ($self)=@_;
|
||||||
my ($dbh,$sth,$version,@row);
|
my ($dbh,$version);
|
||||||
|
|
||||||
|
$version='Interbase ?';
|
||||||
|
|
||||||
$dbh=$self->connect();
|
$dbh=$self->connect();
|
||||||
# $sth = $dbh->prepare("show version");
|
eval { $version = $dbh->func('version','ib_database_info')->{'version'}; };
|
||||||
# $sth->execute;
|
|
||||||
# @row = $sth->fetchrow_array;
|
|
||||||
# $version = $row[0];
|
|
||||||
# $version =~ s/.*version \"(.*)\"$/$1/;
|
|
||||||
$dbh->disconnect;
|
$dbh->disconnect;
|
||||||
$version = "6.0Beta";
|
|
||||||
$version .= "/ODBC" if ($self->{'data_source'} =~ /:ODBC:/);
|
$version .= "/ODBC" if ($self->{'data_source'} =~ /:ODBC:/);
|
||||||
return $version;
|
return $version;
|
||||||
}
|
}
|
||||||
@ -3090,36 +3087,34 @@ sub connect
|
|||||||
sub create
|
sub create
|
||||||
{
|
{
|
||||||
my($self,$table_name,$fields,$index,$options) = @_;
|
my($self,$table_name,$fields,$index,$options) = @_;
|
||||||
my($query,@queries);
|
my($query,@queries,@keys,@indexes);
|
||||||
|
|
||||||
$query="create table $table_name (";
|
$query="create table $table_name (";
|
||||||
foreach $field (@$fields)
|
foreach $field (@$fields)
|
||||||
{
|
{
|
||||||
$field =~ s/ big_decimal/ float/i;
|
$field =~ s/ big_decimal/ decimal/i;
|
||||||
$field =~ s/ double/ float/i;
|
$field =~ s/ double/ double precision/i;
|
||||||
$field =~ s/ tinyint/ smallint/i;
|
$field =~ s/ tinyint/ smallint/i;
|
||||||
$field =~ s/ mediumint/ int/i;
|
$field =~ s/ mediumint/ integer/i;
|
||||||
$field =~ s/ integer/ int/i;
|
$field =~ s/\bint\b/integer/i;
|
||||||
$field =~ s/ float\(\d,\d\)/ float/i;
|
$field =~ s/ float\(\d,\d\)/ float/i;
|
||||||
$field =~ s/ date/ int/i; # Because of tcp ?
|
|
||||||
$field =~ s/ smallint\(\d\)/ smallint/i;
|
$field =~ s/ smallint\(\d\)/ smallint/i;
|
||||||
$field =~ s/ int\(\d\)/ int/i;
|
$field =~ s/ integer\(\d\)/ integer/i;
|
||||||
$query.= $field . ',';
|
$query.= $field . ',';
|
||||||
}
|
}
|
||||||
foreach $ind (@$index)
|
foreach $ind (@$index)
|
||||||
{
|
{
|
||||||
my @index;
|
if ( $ind =~ /(\bKEY\b)|(\bUNIQUE\b)/i ){
|
||||||
if ( $ind =~ /\bKEY\b/i ){
|
|
||||||
push(@keys,"ALTER TABLE $table_name ADD $ind");
|
push(@keys,"ALTER TABLE $table_name ADD $ind");
|
||||||
}else{
|
}else{
|
||||||
my @fields = split(' ',$index);
|
my @fields = split(' ',$ind);
|
||||||
my $query="CREATE INDEX $fields[1] ON $table_name $fields[2]";
|
my $query="CREATE INDEX $fields[1] ON $table_name $fields[2]";
|
||||||
push(@index,$query);
|
push(@indexes,$query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
substr($query,-1)=")"; # Remove last ',';
|
substr($query,-1)=")"; # Remove last ',';
|
||||||
$query.=" $options" if (defined($options));
|
$query.=" $options" if (defined($options));
|
||||||
push(@queries,$query);
|
push(@queries,$query,@keys,@indexes);
|
||||||
return @queries;
|
return @queries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user