bulk_importer 0.2.0 → 0.2.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fb82dcf1ba046594e065218c795dca1e874ad398
4
- data.tar.gz: a44c73dfee9cf88acf5918e6928175c8b0575962
3
+ metadata.gz: 55b8c71a91b7654fde766010d72fb4ce9870c322
4
+ data.tar.gz: e09f5235f7ebbbd06b3339f3f4c2bbd892e15335
5
5
  SHA512:
6
- metadata.gz: 7524de391b276d92d69a1afb595deebb683e353f33f4c28d05cb1e1339c79a7ee07082a8cbbc464279c8e11e2acd799c0d8d4348ddbe77d3da07589265349b56
7
- data.tar.gz: 078908245a45fb5c72ca07c403369c1a04b3d88ac42a51fcfa78128ee7082e5350e3ffa07fb0a1e695af4c159e7cc5123e8cae5247c6ae8ffb16b62bd27ea2cd
6
+ metadata.gz: 3994d8a548c294a2038b340b185f0645ede8671d000dacd389c233fff3aec6ae64d82a73b91536fda4a6c253fdc520cafa9bf366dd50a73ea712398a1251a770
7
+ data.tar.gz: d0a2c510e5cc5af410b3ad83b10b82ab0a5a3d0f090882d0bc56cfc518324c0036d23b88872d42df8a9f89def7087ff5795ec219e58f87894771c6634d659526
@@ -205,20 +205,23 @@ module PostgresqlModule
205
205
  #
206
206
  def self.can_execute_copy()
207
207
  # Only superusers can execute COPY.
208
+ self.is_superuser
209
+ end
210
+
211
+ # Checks if the current user is SUPERUSER.
212
+ #
213
+ # ==== Return
214
+ #
215
+ # + bool+
216
+ #
217
+ def self.is_superuser
208
218
  query = <<-eof
209
- SELECT *
219
+ SELECT rolsuper
210
220
  FROM pg_roles
211
- WHERE rolsuper AND
212
- rolname = CURRENT_USER
221
+ WHERE rolname = CURRENT_USER
222
+ LIMIT 1
213
223
  eof
214
224
 
215
- begin
216
- ActiveRecord::Base.connection.execute(query).cmd_tuples > 0
217
- rescue Exception => e
218
- Rails.logger.error e.message
219
- Rails.logger.error e.backtrace
220
-
221
- false
222
- end
225
+ ActiveRecord::Base.connection.execute(query).first['rolsuper'] == 't'
223
226
  end
224
227
  end
@@ -1,3 +1,3 @@
1
1
  module BulkImporter
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/bulk_importer.rb CHANGED
@@ -163,9 +163,10 @@ module BulkImporter
163
163
  sql << "(#{columns.values.join(',')})"
164
164
  sql << "SELECT #{self.keys_to_list(columns.keys, 'o', types)}"
165
165
  sql << "FROM #{origin} o"
166
- sql << "WHERE (#{self.keys_to_list(keys.keys, 'o')}) NOT IN"
167
- sql << "( SELECT (#{self.keys_to_list(keys.values, 'd')})"
168
- sql << "FROM #{destination} d )"
166
+ sql << "LEFT JOIN #{destination} d"
167
+ sql << "ON (#{self.keys_to_list(keys.keys, 'o')}) = "
168
+ sql << "(#{self.keys_to_list(keys.values, 'd')})"
169
+ sql << "WHERE (#{self.keys_to_list(keys.values, 'd')}) is null"
169
170
 
170
171
  [ sql.join(' ') ]
171
172
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bulk_importer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abel M. Osorio
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-02 00:00:00.000000000 Z
11
+ date: 2016-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler