firebird_adapter 1.0.11 → 6.0.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.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d16fdcec64294ee89e80963f70014774ca1e4ebe1689c567fd8797e2aed941e4
|
4
|
+
data.tar.gz: fd636ff0a5c785e5f72cfc7feb03b84204c8528b1b87cc63b7bdff6f6fb5c140
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 513b0ecade7b01947daca7d843abbcdda4a69adc636dae2666b3a17755df083a578500e502949f94d9acfa4c04b3e7a312dea28c65f18e96c0db0f15cf7d1625
|
7
|
+
data.tar.gz: 93c436220c68e31ef6b06c11132fa1bfb7975fe3f5d34aa95aa6ba0e1970f535e3a8129d2c4acd22c49589e332daa145765b322f9bda7c94a5ff1071d6886f8c
|
@@ -47,13 +47,14 @@ module ActiveRecord::ConnectionAdapters::Firebird::DatabaseStatements
|
|
47
47
|
|
48
48
|
result.close
|
49
49
|
ActiveRecord::Result.new(fields, rows)
|
50
|
-
elsif name.
|
50
|
+
elsif name.end_with?(' Destroy')
|
51
51
|
result
|
52
52
|
else
|
53
53
|
ActiveRecord::Result.new([], [])
|
54
54
|
end
|
55
|
-
rescue RangeError
|
56
|
-
ActiveRecord::Result.new([], [])
|
55
|
+
rescue RangeError => e
|
56
|
+
return ActiveRecord::Result.new([], []) if sql.downcase.start_with? 'select'
|
57
|
+
raise e
|
57
58
|
rescue Exception => e
|
58
59
|
result.close if result.is_a?(Fb::Cursor)
|
59
60
|
raise e.message.encode('UTF-8', @connection.encoding)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_support/core_ext/string/strip'
|
2
|
+
|
1
3
|
module ActiveRecord::ConnectionAdapters::Firebird::SchemaStatements
|
2
4
|
|
3
5
|
def tables(_name = nil)
|
@@ -42,8 +44,8 @@ module ActiveRecord::ConnectionAdapters::Firebird::SchemaStatements
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
|
45
|
-
def remove_index(table_name, options = {})
|
46
|
-
index_name = index_name_for_remove(table_name, options)
|
47
|
+
def remove_index(table_name, column, options = {})
|
48
|
+
index_name = index_name_for_remove(table_name, column, options)
|
47
49
|
execute "DROP INDEX #{quote_column_name(index_name)}"
|
48
50
|
end
|
49
51
|
|
@@ -1,63 +1,87 @@
|
|
1
|
-
|
1
|
+
module Arel
|
2
|
+
class SelectManager
|
3
|
+
attr_reader :parentheses_ignored
|
2
4
|
|
3
|
-
|
5
|
+
def ignore_parentheses
|
6
|
+
@parentheses_ignored = true
|
7
|
+
self
|
8
|
+
end
|
9
|
+
end
|
4
10
|
|
5
|
-
|
6
|
-
|
11
|
+
class Visitors::Firebird < Arel::Visitors::ToSql
|
12
|
+
private
|
7
13
|
|
8
|
-
|
14
|
+
def visit_Arel_Nodes_SelectCore(o, collector, select_statement)
|
15
|
+
collector << 'SELECT'
|
9
16
|
|
10
|
-
|
17
|
+
visit_Arel_Nodes_SelectOptions(select_statement, collector)
|
11
18
|
|
12
|
-
|
19
|
+
collector = collect_optimizer_hints(o, collector)
|
20
|
+
collector = maybe_visit o.set_quantifier, collector
|
13
21
|
|
14
|
-
|
22
|
+
collect_nodes_for o.projections, collector, ' '
|
15
23
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
24
|
+
if o.source && !o.source.empty?
|
25
|
+
collector << ' FROM '
|
26
|
+
collector = visit o.source, collector
|
27
|
+
end
|
28
|
+
|
29
|
+
collect_nodes_for o.wheres, collector, ' WHERE ', ' AND '
|
30
|
+
collect_nodes_for o.groups, collector, ' GROUP BY '
|
31
|
+
unless o.havings.empty?
|
32
|
+
collector << ' HAVING '
|
33
|
+
inject_join o.havings, collector, ' AND '
|
34
|
+
end
|
35
|
+
collect_nodes_for o.windows, collector, ' WINDOW '
|
20
36
|
|
21
|
-
|
22
|
-
collect_nodes_for o.groups, collector, GROUP_BY
|
23
|
-
unless o.havings.empty?
|
24
|
-
collector << ' HAVING '
|
25
|
-
inject_join o.havings, collector, AND
|
37
|
+
collector
|
26
38
|
end
|
27
|
-
collect_nodes_for o.windows, collector, WINDOW
|
28
39
|
|
29
|
-
collector
|
30
|
-
|
40
|
+
def visit_Arel_Nodes_SelectStatement o, collector
|
41
|
+
if o.with
|
42
|
+
collector = visit o.with, collector
|
43
|
+
collector << ' '
|
44
|
+
end
|
45
|
+
|
46
|
+
collector = o.cores.inject(collector) { |c,x|
|
47
|
+
visit_Arel_Nodes_SelectCore(x, c, o)
|
48
|
+
}
|
49
|
+
|
50
|
+
unless o.orders.empty?
|
51
|
+
collector << ' ORDER BY '
|
52
|
+
len = o.orders.length - 1
|
53
|
+
o.orders.each_with_index { |x, i|
|
54
|
+
collector = visit(x, collector)
|
55
|
+
collector << ', ' unless len == i
|
56
|
+
}
|
57
|
+
end
|
31
58
|
|
32
|
-
|
33
|
-
if o.with
|
34
|
-
collector = visit o.with, collector
|
35
|
-
collector << SPACE
|
59
|
+
collector
|
36
60
|
end
|
37
61
|
|
38
|
-
|
39
|
-
|
40
|
-
|
62
|
+
def visit_Arel_Nodes_Limit(o, collector)
|
63
|
+
collector << 'FIRST '
|
64
|
+
visit o.expr, collector
|
65
|
+
end
|
41
66
|
|
42
|
-
|
43
|
-
collector <<
|
44
|
-
|
45
|
-
o.orders.each_with_index { |x, i|
|
46
|
-
collector = visit(x, collector)
|
47
|
-
collector << COMMA unless len == i
|
48
|
-
}
|
67
|
+
def visit_Arel_Nodes_Offset(o, collector)
|
68
|
+
collector << 'SKIP '
|
69
|
+
visit o.expr, collector
|
49
70
|
end
|
50
71
|
|
51
|
-
collector
|
52
|
-
|
72
|
+
def visit_Arel_SelectManager o, collector
|
73
|
+
return visit(o.ast, collector) if o.parentheses_ignored
|
53
74
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
75
|
+
collector << '('
|
76
|
+
visit(o.ast, collector) << ')'
|
77
|
+
end
|
78
|
+
|
79
|
+
def visit_Arel_Nodes_Union o, collector
|
80
|
+
infix_value(o, collector, ' UNION ')
|
81
|
+
end
|
58
82
|
|
59
|
-
|
60
|
-
|
61
|
-
|
83
|
+
def visit_Arel_Nodes_UnionAll o, collector
|
84
|
+
infix_value(o, collector, ' UNION ALL ')
|
85
|
+
end
|
62
86
|
end
|
63
|
-
end
|
87
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firebird_adapter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fábio Rodrigues
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '6.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '6.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: fb
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.1.4
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 2.1.4
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: '2.
|
139
|
+
version: '2.7'
|
140
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - ">="
|
@@ -146,5 +146,5 @@ requirements: []
|
|
146
146
|
rubygems_version: 3.0.3
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
|
-
summary: ActiveRecord Firebird Adapter for Rails
|
149
|
+
summary: ActiveRecord Firebird Adapter for Rails 6.
|
150
150
|
test_files: []
|