X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factiverecord%2Flib%2Factive_record%2Fconnection_adapters%2Fsqlite3_adapter.rb;fp=vendor%2Frails%2Factiverecord%2Flib%2Factive_record%2Fconnection_adapters%2Fsqlite3_adapter.rb;h=75420f69aacce4fd1ae069cadd1cc4f9fbe7c9e2;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git

diff --git a/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
new file mode 100644
index 0000000..75420f6
--- /dev/null
+++ b/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -0,0 +1,34 @@
+require 'active_record/connection_adapters/sqlite_adapter'
+
+module ActiveRecord
+  class Base
+    # sqlite3 adapter reuses sqlite_connection.
+    def self.sqlite3_connection(config) # :nodoc:
+      parse_sqlite_config!(config)
+
+      unless self.class.const_defined?(:SQLite3)
+        require_library_or_gem(config[:adapter])
+      end
+
+      db = SQLite3::Database.new(
+        config[:database],
+        :results_as_hash => true,
+        :type_translation => false
+      )
+
+      db.busy_timeout(config[:timeout]) unless config[:timeout].nil?
+
+      ConnectionAdapters::SQLite3Adapter.new(db, logger, config)
+    end
+  end
+
+  module ConnectionAdapters #:nodoc:
+    class SQLite3Adapter < SQLiteAdapter # :nodoc:
+      def table_structure(table_name)
+        returning structure = @connection.table_info(quote_table_name(table_name)) do
+          raise(ActiveRecord::StatementInvalid, "Could not find table '#{table_name}'") if structure.empty?
+        end
+      end
+    end
+  end
+end