consolidate multiple ALTER TABLE statements for efficiency
[DBIx-DBSchema.git] / DBSchema / _util.pm
index 4e7c3aa..5bb583f 100644 (file)
@@ -6,9 +6,10 @@ use strict;
 use vars qw(@ISA @EXPORT_OK);
 use Exporter;
 use Carp qw(confess);
+use DBI;
 
 @ISA = qw(Exporter);
-@EXPORT_OK = qw( _load_driver );
+@EXPORT_OK = qw( _load_driver _dbh _parse_opt );
 
 sub _load_driver {
   my($dbh) = @_;
@@ -26,5 +27,26 @@ sub _load_driver {
   eval 'require "DBIx/DBSchema/DBD/$driver.pm"' and $driver or die $@;
 }
 
+#sub _dbh_or_dbi_connect_args {
+sub _dbh {
+  my($dbh) = shift;
+  my $created_dbh = 0;
+  unless ( ref($dbh) || ! @_ ) {
+    $dbh = DBI->connect( $dbh, @_ ) or die $DBI::errstr;
+    $created_dbh = 1;
+  }
+
+  ( $dbh, $created_dbh );
+}
+
+sub _parse_opt {
+  my $optref = shift;
+  if ( ref( $optref->[0] ) eq 'HASH' ) {
+    shift @$optref;
+  } else {
+    {};
+  }
+}
+
 1;