--- ../AnyData-0.05/DBD/AnyData.pm	Tue Jul 17 12:31:44 2001
+++ DBD/AnyData.pm	Wed Oct 31 13:08:37 2001
@@ -63,7 +63,7 @@
     # PARSE EXTRA STRINGS IN DSN HERE
     # Process attributes from the DSN; we assume ODBC syntax
     # here, that is, the DSN looks like var1=val1;...;varN=valN
-    my $var;
+    my ($var, $defaultselector, %defaultflags);
     $dbh->STORE('f_dir','./');
     foreach $var (split(/;/, $dbname)) {
         #######################################################
@@ -80,9 +80,13 @@
         #######################################################
         # Patch from Wes Hardaker
         #######################################################
-	} elsif( $var =~ m/^\s*?default=(\S+)/i ){
-            # Default catalog selector to use
-            $dbh->func('__default',$1, 'ad_catalog');
+	} elsif( $var =~ m/^\s*?ad_default=(\S+)/i ){
+           # Default catalog selector to use
+	    $defaultselector = $1;
+	} elsif( $defaultselector && 
+		 $var =~ m/^\s*?ad_${defaultselector}_(\S+)=(\S+)/i ) {
+           # Add to selector flags.
+   	    $defaultflags{$1} = $2;
         #######################################################
         } elsif ($var =~ /(.*?)=(.*)/) {
             my $key = $1;
@@ -90,6 +94,10 @@
             $dbh->STORE($key, $val);
         }
     }
+    if ($defaultselector) {
+        $dbh->func('__default', $defaultselector, '', \%defaultflags, 
+		   'ad_catalog');
+    }
     ### $dbh->func('read_catalog_from_disk');
     $dbh;
 }
@@ -520,7 +528,7 @@
     my($self, $data, $fields) = @_;
     my $requested_cols=[];
     my @rc = $data->{f_stmt}->columns();
-    push @$requested_cols, $_->{column} for @rc;
+    push @$requested_cols, $_->{name} for @rc;
     unshift @$fields, $requested_cols;
     $self->{ad}->push_row(@$fields);
     1;
