adapter_extensions 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGELOG
CHANGED
@@ -8,4 +8,9 @@
|
|
8
8
|
* Bug fixes
|
9
9
|
|
10
10
|
0.2.0 - March 6, 2007
|
11
|
-
* SQL Server adapter included
|
11
|
+
* SQL Server adapter included (Seth Ladd)
|
12
|
+
|
13
|
+
0.3.0 - March 8, 2007
|
14
|
+
* PostgreSQL adapter included
|
15
|
+
* Added tests for bulk loading
|
16
|
+
* bulk_load method now handles table missing and file missing as error cases
|
@@ -7,7 +7,7 @@ module ActiveRecord #:nodoc:
|
|
7
7
|
protected
|
8
8
|
# Call +bulk_load+, as that method wraps this method.
|
9
9
|
#
|
10
|
-
#Bulk load the data in the specified file. This implementation always uses the LOCAL keyword
|
10
|
+
# Bulk load the data in the specified file. This implementation always uses the LOCAL keyword
|
11
11
|
# so the file must be found locally, not on the remote server, to be loaded.
|
12
12
|
#
|
13
13
|
# Options:
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Source code for the PostgreSQLAdapter extensions.
|
2
|
+
module ActiveRecord #:nodoc:
|
3
|
+
module ConnectionAdapters #:nodoc:
|
4
|
+
# Adds new functionality to ActiveRecord PostgreSQLAdapter.
|
5
|
+
class PostgreSQLAdapter < AbstractAdapter
|
6
|
+
|
7
|
+
protected
|
8
|
+
# Call +bulk_load+, as that method wraps this method.
|
9
|
+
#
|
10
|
+
# Bulk load the data in the specified file.
|
11
|
+
#
|
12
|
+
# Options:
|
13
|
+
# * <tt>:ignore</tt> -- Ignore the specified number of lines from the source file. In the case of PostgreSQL
|
14
|
+
# only the first line will be ignored from the source file regardless of the number of lines specified.
|
15
|
+
# * <tt>:columns</tt> -- Array of column names defining the source file column order
|
16
|
+
# * <tt>:fields</tt> -- Hash of options for fields:
|
17
|
+
# * <tt>:delimited_by</tt> -- The field delimiter
|
18
|
+
# * <tt>:enclosed_by</tt> -- The field enclosure
|
19
|
+
def do_bulk_load(file, table_name, options={})
|
20
|
+
q = "COPY #{table_name} "
|
21
|
+
q << "(#{options[:columns].join(',')}) " if options[:columns]
|
22
|
+
q << "FROM '#{File.expand_path(file)}' "
|
23
|
+
if options[:fields]
|
24
|
+
q << "WITH "
|
25
|
+
q << "DELIMITER '#{options[:fields][:delimited_by]}' " if options[:fields][:delimited_by]
|
26
|
+
if options[:fields][:enclosed_by]
|
27
|
+
q << "CSV "
|
28
|
+
q << "HEADER " if options[:ignore] > 0
|
29
|
+
q << "QUOTE '#{options[:fields][:enclosed_by]}' " if options[:fields][:enclosed_by]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
execute(q)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0.10
|
|
3
3
|
specification_version: 1
|
4
4
|
name: adapter_extensions
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2007-03-
|
6
|
+
version: 0.3.0
|
7
|
+
date: 2007-03-08 00:00:00 -05:00
|
8
8
|
summary: Extensions to Rails ActiveRecord adapters.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -39,6 +39,7 @@ files:
|
|
39
39
|
- lib/adapter_extensions/version.rb
|
40
40
|
- lib/adapter_extensions/connection_adapters/abstract_adapter.rb
|
41
41
|
- lib/adapter_extensions/connection_adapters/mysql_adapter.rb
|
42
|
+
- lib/adapter_extensions/connection_adapters/postgresql_adapter.rb
|
42
43
|
- lib/adapter_extensions/connection_adapters/sqlserver_adapter.rb
|
43
44
|
test_files: []
|
44
45
|
|