VSGDR-StaticData
view release on metacpan or search on metacpan
lib/VSGDR/StaticData.pm view on Meta::CPAN
my $flatExtractColumnList = "" ;
foreach my $l (@{$ra_columns}) {
my $varlen = length($l->[0]) ;
my $colpadding = $widest_column_name_padding - (int(($varlen)/4));
my $varpadding = $widest_column_name_padding - (int(($varlen+1)/4));
do { local $" = ""; $flatExtractColumnList .= $l->[1] =~ m{\A(?:date|datetime[2]?|smalldatetime)\z}i ? "convert(varchar(30),[$l->[0]],120)" : "[$l->[0]]" ; $flatExtractColumnList .= ", "} ;
}
$flatExtractColumnList =~ s{ ,\s? \z }{}msx;
#warn Dumper $flatExtractColumnList;
#warn Dumper $ra_columns;
my $ra_metadata = describeTestDataForTable($dbh,$sql,$ra_columns);
my @cols = map { $$_[0] } @$ra_metadata ;
my $ra_data = getTestDataForTable($dbh,$quotedCombinedName,\@cols,$sql);
#warn Dumper $ra_data;
#warn Dumper $$ra_data[0];
#warn Dumper @cols;
#warn Dumper @$ra_metadata;
my @useColumnValues = ();
#look over data and try to find the slices which are empty
if ($use_IgnoreNulls) {
@useColumnValues = map { 0 } @$ra_metadata ;
foreach my $ra_row (@{$ra_data}){
for ( my $i = 0; $i < scalar @{$ra_row}; $i++ ) {
if ( ( defined ($ra_row->[$i]) ) ) {
$useColumnValues[$i] = 1 ;
}
}
}
}
else {
@useColumnValues = map { 1 } @$ra_metadata ;
}
my $colList = "" ;#do { local $" = "," ; "@cols" } ;
my $i =0;
foreach my $c (@cols)
{
if ($useColumnValues[$i]) {
if ( ! scalar($colList) ) {
$colList = "${c}"
}
else {
$colList .= ",${c}"
}
}
$i++;
}
#warn Dumper $colList;
#exit;
#need to overlay tables with columns apart from those which are 'hidden'
my @valuesTable ;
my $valuesClause = "values\n\t\t\t";
my $lno = 1;
foreach my $ra_row (@{$ra_data}){
my @outVals = undef ;
for ( my $i = 0; $i < scalar @{$ra_row}; $i++ ) {
if ($useColumnValues[$i]) {
if ( not ( defined ($ra_row->[$i]) ) ) {
$outVals[$i] = 'null' ;
}
else {
if (${$ra_metadata}[$i][1] =~ m{\A(?:date|datetime[2]?|smalldatetime)\z}i) {
$outVals[$i] = "convert(". ${$ra_columns}[$i][1] ."," . $dbh->quote($ra_row->[$i]) . ",120)" ;
}
elsif ( ${$ra_metadata}[$i][1] =~ m{(?:uniqueidentifier|char|text|date)}i) {
$outVals[$i] = $dbh->quote($ra_row->[$i]) ;
}
else {
$outVals[$i] = $ra_row->[$i] ;
}
}
}
}
push @valuesTable, \@outVals ;
#my $line = do{ local $" = ", "; "@outVals" } ;
$lno++;
}
my @maxWidth;
my $maxCol;
if ( scalar @valuesTable ) {
my @tmp = @{$valuesTable[0]};
$maxCol = scalar @tmp -1 ;
for ( my $i = 0; $i <= $maxCol; $i++ ) {
push @maxWidth, 0;
}
for ( my $i = 0; $i < scalar @valuesTable; $i++ ) {
my @tmp = @{$valuesTable[$i]};
for ( my $i = 0; $i <= $maxCol; $i++ ) {
if ($useColumnValues[$i]) {
if (length($tmp[$i]) > $maxWidth[$i] ) {
$maxWidth[$i] = length($tmp[$i]) ;
}
}
}
}
}
#warn Dumper @maxWidth ;
for ( my $i = 0; $i < scalar @valuesTable; $i++ ) {
my @tmp = @{$valuesTable[$i]};
my $line = "";
for ( my $j = 0; $j <= $maxCol; $j++ ) {
if ($useColumnValues[$j]) {
my $val = $tmp[$j];
my $valWidth = length($val);
( run in 1.177 second using v1.01-cache-2.11-cpan-39bf76dae61 )