-my @cols = ( qw(
-calldate clid src dst dcontext channel lastapp lastdata duration
- billsec disposition amaflags accountcode uniqueid userfield) );
-my $sql = 'SELECT '.join(',', @cols). " FROM $table WHERE freesidestatus IS NULL";
-my $sth = $sql->prepare($sql);
+push @cols, qw(
+ clid src dst dcontext channel lastapp lastdata duration
+ billsec disposition amaflags accountcode userfield
+);
+
+# check for existence of uniqueid
+if ( $engine =~ /^mysql/ ) {
+ my $status = $dbi->selectall_arrayref("SHOW COLUMNS FROM $table WHERE Field = 'uniqueid'");
+ if( @$status ) {
+ push @cols, 'uniqueid';
+ }
+} else {
+ #assume there's a uniqueid
+ push @cols, 'uniqueid';
+}
+
+my $sql =
+ 'SELECT '.join(',', @cols). " FROM $table WHERE freesidestatus IS NULL";
+my $sth = $dbi->prepare($sql);