our %mig = ();
our @sql = ();
our @statements;
-our %schema_tables;
+my %schema_tables;
my $isPostgreSQL = 0;
my $TZ;
my %relationships;
sub tables_data_map{
return $tables_data_map{shift}
}
-
+sub schema{shift; return %schema_tables}
sub isPostgreSQL{shift; return $isPostgreSQL}
##
$fld_where = ${$header[$MHDR{F_WHERE}]};
$prime_key = ${$header[$MHDR{ID_PRIMARY}]};
$id_type = ${$header[$MHDR{ID_TYPE}]};
- $auto_increment=0;
+ $auto_increment=0; #$auto_increment=1 if $prime_key eq 'ID';
+ $prime_key = "\"$prime_key\"," if $prime_key;
for my $i(0 .. $#header_cols){
my $h = $header_cols[$i];
$hdr[@hdr]={'_'=>$h,'i'=>$i, 't'=>$header_types[$i]}
if($tbl_mapping){
$fld_names = $fld_values = ""; my $qa = $tbl_id_type eq 'CNF_INDEX';
+ $prime_key = "";
foreach(@tbl_spec_info){
my @r= @$_;
if($qa || $tbl_id_type eq 'NONE' ||$r[0] ne 'ID') {
}
my ($s_sqlSEL, $s_sqlINS, $s_sqlUPD)=(
- "SELECT $prime_key, $fld_names FROM $tbl_stm_name WHERE $fld_where",
+ "SELECT $prime_key $fld_names FROM $tbl_stm_name WHERE $fld_where",
"INSERT INTO $tbl_stm_name ($fld_names) VALUES ($fld_values);",
"UPDATE $tbl_stm_name SET $fld_updates WHERE $fld_where;"
);
$self->{parser}->log("sql_upd -> $s_sqlUPD");
+transaction:{
+
$db->begin_work();
my ($cnf_id, @ins, @upd);
else{
$cnf_id = 1
}
+
for my $row_idx (0 .. $#rows){
my $isUpdate = 0; my $ptr = $rows[$row_idx];
my @col;
if($col[$hi]){
$trans[@trans] = $col[$hi];
}else{
- $trans[@trans] = $row_idx; # The row index is ID as default on auto-numbered ID columns.
+ $trans[@trans] = ++$cnf_id;
}
last
}elsif($name =~ m/$hn/i){
TBL_INFO: for my $i ( 0 .. $#tbl_spec_info ) {
if ( $tbl_spec_info[$i][0] =~ m/$hn/i ) {
if ( $ht == $CNFMeta::CNF_DATA_TYPES{CNFID} ) {
- $ins[$i] = ++$cnf_id;
+ $ins[$i] = $col[$hi];
}
elsif ( $tbl_spec_info[$i][0] =~ /ID/i ) {
if ( $col[$hi] ) {
- $ins[$i] = $col[$hi];
+ $ins[$i] = $col[$hi];
}
else {
# The row index is ID as the default on auto-numbered ID columns.
undef @ins
}
}
- $db->commit()
+ $db->commit()
+ }
}
$mig{$name} = [@m];
}
sub addStatement { my ($self, $name, $value) = @_;
- $self->{$name}=$value;
+ $self->{uc $name}=$value;
}
-sub getStatement { my ($self, $name) = @_;
- return $self->{$name} if exists $self->{$name};
+sub getStatement { my ($self, $name) = @_; my $n = uc $name;
+ return $self->{$n} if exists $self->{$n};
return;
}
sub hasEntry{ my ($sqlSEL, $uid) = @_;
if(ref($uid) eq 'ARRAY'){
- $sqlSEL -> execute(@$uid+1)
+ $sqlSEL -> execute(@$uid)
}else{
$uid=~s/^["']|['"]$//g;
- $sqlSEL -> execute($uid+1)
+ $sqlSEL -> execute($uid)
}
my @r=$sqlSEL->fetchrow_array();
return scalar(@r);