sequel_oracle_extensions 0.6.0 → 0.6.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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.0
1
+ 0.6.1
@@ -88,7 +88,7 @@ module Sequel
88
88
  # # } }
89
89
  def indexes(table, opts={})
90
90
  ds, result = metadata_dataset, []
91
- outm = lambda{|k| ds.send :output_identifier, k}
91
+ outm = sql_ident_to_sym_proc ds
92
92
  schema, table = ds.schema_and_table(table).map{|k| k.to_s.send(ds.identifier_input_method) if k}
93
93
  who = schema.nil? ? 'user' : 'all'
94
94
 
@@ -112,15 +112,14 @@ module Sequel
112
112
  # Collect the indexes as a hash of subhashes, including a column list.
113
113
  # As a followup, collect any additional metadata about the indexes (such as bitmap join columns).
114
114
  hash, join_indexes = {}, []
115
- p ds.sql
116
115
  ds.each do |row|
117
- key = :"#{outm[row[:index_name]]}"
116
+ key = outm[row[:index_name]]
118
117
  unless subhash = hash[key]
119
118
  subhash = hash[key] = {
120
119
  :columns=>[], :unique=>(row[:uniqueness]=='UNIQUE'), :logging=>(row[:logging]=='YES'),
121
120
  :db_type=>row[:index_type], :valid=>(row[:status]=='VALID'),
122
121
  :parallel=>(row[:degree]!='1' || row[:instances]!='1'),
123
- :tablespace=>:"#{outm[row[:tablespace_name]]}", :partitioned=>(row[:partitioned]=='YES'),
122
+ :tablespace=>outm[row[:tablespace_name]], :partitioned=>(row[:partitioned]=='YES'),
124
123
  :visible=>(row[:visibility]=='VISIBLE'), :compress=>(row[:compression]!='DISABLED')
125
124
  }
126
125
  case subhash[:db_type]; when 'BITMAP','NORMAL'
@@ -131,16 +130,16 @@ module Sequel
131
130
  subhash[:join] = []
132
131
  end
133
132
  end
134
- subhash[:columns] << :"#{outm[row[:column_name]]}"
133
+ subhash[:columns] << outm[row[:column_name]]
135
134
  end
136
135
  ds = metadata_dataset.from(:"#{who}_join_ind_columns").where(:index_name=>join_indexes)
137
136
  ds = ds.where :index_owner => schema unless schema.nil?
138
137
  ds.each do |row|
139
- subhash = hash[:"#{outm[row[:index_name]]}"]
140
- ref_column = :"#{outm[row[:outer_table_column]]}"
138
+ subhash = hash[outm[row[:index_name]]]
139
+ ref_column = outm[row[:outer_table_column]]
141
140
  pos = subhash[:columns].index ref_column
142
- subhash[:columns][pos] = :"#{outm[row[:outer_table_name]]}__#{ref_column}"
143
- subhash[:join][pos] = :"#{outm[row[:inner_table_column]]}"
141
+ subhash[:columns][pos] = outm["#{row[:outer_table_name]}__#{ref_column}"]
142
+ subhash[:join][pos] = outm[row[:inner_table_column]]
144
143
  end
145
144
  hash
146
145
  end
@@ -251,6 +250,19 @@ module Sequel
251
250
  table_constraints table, 'R', options.merge(:table_name_column=>:t__table_name)
252
251
  end
253
252
 
253
+ protected
254
+
255
+ # Type-safe (and nil safe) conversion for SQL identifers to Ruby symbols.
256
+ # Returns a proc that converts String types and passes through all other types
257
+ def sql_ident_to_sym_proc(dataset)
258
+ lambda do |k|
259
+ unless String===k then k else
260
+ k = dataset.send :output_identifier, k
261
+ String===k ? k.intern : k
262
+ end
263
+ end
264
+ end
265
+
254
266
  private
255
267
 
256
268
  # Overridden because Oracle has slightly different syntax.
@@ -341,7 +353,7 @@ module Sequel
341
353
  # Internal helper method for introspection of table constraints.
342
354
  def table_constraints(table, constraint_type, options={})
343
355
  ds, result = metadata_dataset, []
344
- outm = lambda{|k| ds.send :output_identifier, k}
356
+ outm = sql_ident_to_sym_proc ds
345
357
  schema, table = ds.schema_and_table(table).map{|k| k.to_s.send(ds.identifier_input_method) if k}
346
358
  x_cons = schema.nil? ? 'user_cons' : 'all_cons'
347
359
 
@@ -366,23 +378,23 @@ module Sequel
366
378
  # Return the table constraints as a hash of subhashes, including a column list.
367
379
  hash = {}
368
380
  ds.each do |row|
369
- key = :"#{outm[row[:constraint_name]]}"
381
+ key = outm[row[:constraint_name]]
370
382
  unless subhash = hash[key]
371
383
  subhash = hash[key] = {
372
384
  :rely=>(row[:rely]=='RELY'), :enabled=>(row[:status]=='ENABLED'),
373
385
  :validated=>(row[:validated]=='VALIDATED'), :columns=>[]
374
386
  }
375
387
  if row.include? :r_constraint_name
376
- subhash[:ref_constraint] = :"#{outm[row[:r_constraint_name]]}"
388
+ subhash[:ref_constraint] = outm[row[:r_constraint_name]]
377
389
  if options[:table_name_column]==:t__table_name
378
- then subhash[:table] = :"#{outm[row[:table_name]]}"
379
- else subhash[:ref_table] = :"#{outm[row[:r_table_name]]}"
390
+ then subhash[:table] = outm[row[:table_name]]
391
+ else subhash[:ref_table] = outm[row[:r_table_name]]
380
392
  end
381
393
  elsif row.include? :index_name
382
- subhash[:using_index] = :"#{outm[row[:index_name]]}"
394
+ subhash[:using_index] = outm[row[:index_name]]
383
395
  end
384
396
  end
385
- subhash[:columns] << :"#{outm[row[:column_name]]}"
397
+ subhash[:columns] << outm[row[:column_name]]
386
398
  end
387
399
  hash
388
400
  end
@@ -1,62 +1,61 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{sequel_oracle_extensions}
8
- s.version = "0.6.0"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Joe Khoobyar"]
12
- s.date = %q{2011-08-24}
13
- s.description = %q{Oracle extensions for Sequel, including MERGE statements, optimizer hints, and schema extensions.}
14
- s.email = %q{joe@ankhcraft.com}
15
- s.extra_rdoc_files = [
16
- "LICENSE",
17
- "README.rdoc"
18
- ]
19
- s.files = [
20
- ".document",
21
- ".rspec",
22
- "LICENSE",
23
- "README.rdoc",
24
- "Rakefile",
25
- "VERSION",
26
- "lib/sequel/oracle_extensions.rb",
27
- "lib/sequel/oracle_extensions/hints.rb",
28
- "lib/sequel/oracle_extensions/merge.rb",
29
- "lib/sequel/oracle_extensions/schemata.rb",
30
- "lib/sequel_oracle_extensions.rb",
31
- "sequel_oracle_extensions.gemspec",
32
- "spec/sequel/oracle_extensions/hints_spec.rb",
33
- "spec/sequel/oracle_extensions/merge_spec.rb",
34
- "spec/spec_helper.rb"
35
- ]
36
- s.homepage = %q{http://github.com/joekhoobyar/sequel_oracle_extensions}
37
- s.require_paths = ["lib"]
38
- s.rubygems_version = %q{1.3.7}
39
- s.summary = %q{Oracle MERGE, optimizer hints, and schema extensions for Sequel}
40
- s.test_files = [
41
- "spec/sequel/oracle_extensions/hints_spec.rb",
42
- "spec/sequel/oracle_extensions/merge_spec.rb",
43
- "spec/spec_helper.rb"
44
- ]
45
-
46
- if s.respond_to? :specification_version then
47
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
48
- s.specification_version = 3
49
-
50
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
51
- s.add_runtime_dependency(%q<sequel>, [">= 3.25.0"])
52
- s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
53
- else
54
- s.add_dependency(%q<sequel>, [">= 3.25.0"])
55
- s.add_dependency(%q<rspec>, [">= 2.0.0"])
56
- end
57
- else
58
- s.add_dependency(%q<sequel>, [">= 3.25.0"])
59
- s.add_dependency(%q<rspec>, [">= 2.0.0"])
60
- end
61
- end
62
-
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{sequel_oracle_extensions}
8
+ s.version = "0.6.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Joe Khoobyar"]
12
+ s.date = %q{2011-08-24}
13
+ s.description = %q{Oracle extensions for Sequel, including MERGE statements, optimizer hints, and schema extensions.}
14
+ s.email = %q{joe@ankhcraft.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "LICENSE",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/sequel/oracle_extensions.rb",
27
+ "lib/sequel/oracle_extensions/hints.rb",
28
+ "lib/sequel/oracle_extensions/merge.rb",
29
+ "lib/sequel/oracle_extensions/schemata.rb",
30
+ "lib/sequel_oracle_extensions.rb",
31
+ "sequel_oracle_extensions.gemspec",
32
+ "spec/sequel/oracle_extensions/hints_spec.rb",
33
+ "spec/sequel/oracle_extensions/merge_spec.rb",
34
+ "spec/spec_helper.rb"
35
+ ]
36
+ s.homepage = %q{http://github.com/joekhoobyar/sequel_oracle_extensions}
37
+ s.require_paths = ["lib"]
38
+ s.rubygems_version = %q{1.7.2}
39
+ s.summary = %q{Oracle MERGE, optimizer hints, and schema extensions for Sequel}
40
+ s.test_files = [
41
+ "spec/sequel/oracle_extensions/hints_spec.rb",
42
+ "spec/sequel/oracle_extensions/merge_spec.rb",
43
+ "spec/spec_helper.rb"
44
+ ]
45
+
46
+ if s.respond_to? :specification_version then
47
+ s.specification_version = 3
48
+
49
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
+ s.add_runtime_dependency(%q<sequel>, [">= 3.25.0"])
51
+ s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
52
+ else
53
+ s.add_dependency(%q<sequel>, [">= 3.25.0"])
54
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
55
+ end
56
+ else
57
+ s.add_dependency(%q<sequel>, [">= 3.25.0"])
58
+ s.add_dependency(%q<rspec>, [">= 2.0.0"])
59
+ end
60
+ end
61
+
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel_oracle_extensions
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease: false
4
+ hash: 5
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 0
10
- version: 0.6.0
9
+ - 1
10
+ version: 0.6.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Joe Khoobyar
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-08-24 00:00:00 -04:00
19
- default_executable:
18
+ date: 2011-08-24 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: sequel
@@ -75,7 +74,6 @@ files:
75
74
  - spec/sequel/oracle_extensions/hints_spec.rb
76
75
  - spec/sequel/oracle_extensions/merge_spec.rb
77
76
  - spec/spec_helper.rb
78
- has_rdoc: true
79
77
  homepage: http://github.com/joekhoobyar/sequel_oracle_extensions
80
78
  licenses: []
81
79
 
@@ -105,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
103
  requirements: []
106
104
 
107
105
  rubyforge_project:
108
- rubygems_version: 1.3.7
106
+ rubygems_version: 1.7.2
109
107
  signing_key:
110
108
  specification_version: 3
111
109
  summary: Oracle MERGE, optimizer hints, and schema extensions for Sequel