sequel 5.83.1 → 5.85.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 +4 -4
- data/lib/sequel/adapters/shared/sqlite.rb +3 -1
- data/lib/sequel/connection_pool.rb +2 -2
- data/lib/sequel/database/schema_methods.rb +2 -0
- data/lib/sequel/dataset/actions.rb +9 -1
- data/lib/sequel/extensions/dataset_run.rb +41 -0
- data/lib/sequel/extensions/pg_json_ops.rb +642 -9
- data/lib/sequel/sql.rb +8 -5
- data/lib/sequel/version.rb +2 -2
- metadata +4 -237
- data/CHANGELOG +0 -1397
- data/README.rdoc +0 -936
- data/doc/advanced_associations.rdoc +0 -884
- data/doc/association_basics.rdoc +0 -1859
- data/doc/bin_sequel.rdoc +0 -146
- data/doc/cheat_sheet.rdoc +0 -255
- data/doc/code_order.rdoc +0 -104
- data/doc/core_extensions.rdoc +0 -405
- data/doc/dataset_basics.rdoc +0 -96
- data/doc/dataset_filtering.rdoc +0 -222
- data/doc/extensions.rdoc +0 -77
- data/doc/fork_safety.rdoc +0 -84
- data/doc/mass_assignment.rdoc +0 -98
- data/doc/migration.rdoc +0 -660
- data/doc/model_dataset_method_design.rdoc +0 -129
- data/doc/model_hooks.rdoc +0 -254
- data/doc/model_plugins.rdoc +0 -270
- data/doc/mssql_stored_procedures.rdoc +0 -43
- data/doc/object_model.rdoc +0 -563
- data/doc/opening_databases.rdoc +0 -439
- data/doc/postgresql.rdoc +0 -611
- data/doc/prepared_statements.rdoc +0 -144
- data/doc/querying.rdoc +0 -1070
- data/doc/reflection.rdoc +0 -120
- data/doc/release_notes/5.0.0.txt +0 -159
- data/doc/release_notes/5.1.0.txt +0 -31
- data/doc/release_notes/5.10.0.txt +0 -84
- data/doc/release_notes/5.11.0.txt +0 -83
- data/doc/release_notes/5.12.0.txt +0 -141
- data/doc/release_notes/5.13.0.txt +0 -27
- data/doc/release_notes/5.14.0.txt +0 -63
- data/doc/release_notes/5.15.0.txt +0 -39
- data/doc/release_notes/5.16.0.txt +0 -110
- data/doc/release_notes/5.17.0.txt +0 -31
- data/doc/release_notes/5.18.0.txt +0 -69
- data/doc/release_notes/5.19.0.txt +0 -28
- data/doc/release_notes/5.2.0.txt +0 -33
- data/doc/release_notes/5.20.0.txt +0 -89
- data/doc/release_notes/5.21.0.txt +0 -87
- data/doc/release_notes/5.22.0.txt +0 -48
- data/doc/release_notes/5.23.0.txt +0 -56
- data/doc/release_notes/5.24.0.txt +0 -56
- data/doc/release_notes/5.25.0.txt +0 -32
- data/doc/release_notes/5.26.0.txt +0 -35
- data/doc/release_notes/5.27.0.txt +0 -21
- data/doc/release_notes/5.28.0.txt +0 -16
- data/doc/release_notes/5.29.0.txt +0 -22
- data/doc/release_notes/5.3.0.txt +0 -121
- data/doc/release_notes/5.30.0.txt +0 -20
- data/doc/release_notes/5.31.0.txt +0 -148
- data/doc/release_notes/5.32.0.txt +0 -46
- data/doc/release_notes/5.33.0.txt +0 -24
- data/doc/release_notes/5.34.0.txt +0 -40
- data/doc/release_notes/5.35.0.txt +0 -56
- data/doc/release_notes/5.36.0.txt +0 -60
- data/doc/release_notes/5.37.0.txt +0 -30
- data/doc/release_notes/5.38.0.txt +0 -28
- data/doc/release_notes/5.39.0.txt +0 -19
- data/doc/release_notes/5.4.0.txt +0 -80
- data/doc/release_notes/5.40.0.txt +0 -40
- data/doc/release_notes/5.41.0.txt +0 -25
- data/doc/release_notes/5.42.0.txt +0 -136
- data/doc/release_notes/5.43.0.txt +0 -98
- data/doc/release_notes/5.44.0.txt +0 -32
- data/doc/release_notes/5.45.0.txt +0 -34
- data/doc/release_notes/5.46.0.txt +0 -87
- data/doc/release_notes/5.47.0.txt +0 -59
- data/doc/release_notes/5.48.0.txt +0 -14
- data/doc/release_notes/5.49.0.txt +0 -59
- data/doc/release_notes/5.5.0.txt +0 -61
- data/doc/release_notes/5.50.0.txt +0 -78
- data/doc/release_notes/5.51.0.txt +0 -47
- data/doc/release_notes/5.52.0.txt +0 -87
- data/doc/release_notes/5.53.0.txt +0 -23
- data/doc/release_notes/5.54.0.txt +0 -27
- data/doc/release_notes/5.55.0.txt +0 -21
- data/doc/release_notes/5.56.0.txt +0 -51
- data/doc/release_notes/5.57.0.txt +0 -23
- data/doc/release_notes/5.58.0.txt +0 -31
- data/doc/release_notes/5.59.0.txt +0 -73
- data/doc/release_notes/5.6.0.txt +0 -31
- data/doc/release_notes/5.60.0.txt +0 -22
- data/doc/release_notes/5.61.0.txt +0 -43
- data/doc/release_notes/5.62.0.txt +0 -132
- data/doc/release_notes/5.63.0.txt +0 -33
- data/doc/release_notes/5.64.0.txt +0 -50
- data/doc/release_notes/5.65.0.txt +0 -21
- data/doc/release_notes/5.66.0.txt +0 -24
- data/doc/release_notes/5.67.0.txt +0 -32
- data/doc/release_notes/5.68.0.txt +0 -61
- data/doc/release_notes/5.69.0.txt +0 -26
- data/doc/release_notes/5.7.0.txt +0 -108
- data/doc/release_notes/5.70.0.txt +0 -35
- data/doc/release_notes/5.71.0.txt +0 -21
- data/doc/release_notes/5.72.0.txt +0 -33
- data/doc/release_notes/5.73.0.txt +0 -66
- data/doc/release_notes/5.74.0.txt +0 -45
- data/doc/release_notes/5.75.0.txt +0 -35
- data/doc/release_notes/5.76.0.txt +0 -86
- data/doc/release_notes/5.77.0.txt +0 -63
- data/doc/release_notes/5.78.0.txt +0 -67
- data/doc/release_notes/5.79.0.txt +0 -28
- data/doc/release_notes/5.8.0.txt +0 -170
- data/doc/release_notes/5.80.0.txt +0 -40
- data/doc/release_notes/5.81.0.txt +0 -31
- data/doc/release_notes/5.82.0.txt +0 -61
- data/doc/release_notes/5.83.0.txt +0 -56
- data/doc/release_notes/5.9.0.txt +0 -99
- data/doc/schema_modification.rdoc +0 -679
- data/doc/security.rdoc +0 -443
- data/doc/sharding.rdoc +0 -286
- data/doc/sql.rdoc +0 -648
- data/doc/testing.rdoc +0 -204
- data/doc/thread_safety.rdoc +0 -15
- data/doc/transactions.rdoc +0 -250
- data/doc/validations.rdoc +0 -558
- data/doc/virtual_rows.rdoc +0 -265
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* MERGE RETURNING is now supported when using PostgreSQL 17+. For
|
|
4
|
-
datasets supporting RETURNING, calling merge with a block
|
|
5
|
-
will yield each returned row:
|
|
6
|
-
|
|
7
|
-
DB[:table1].
|
|
8
|
-
returning.
|
|
9
|
-
merge_using(:table2, column1: :column2).
|
|
10
|
-
merge_insert(column3: :column4).
|
|
11
|
-
merge do |row|
|
|
12
|
-
# ...
|
|
13
|
-
end
|
|
14
|
-
# MERGE INTO "table1" USING "table2"
|
|
15
|
-
# ON ("column1" = "column2")
|
|
16
|
-
# WHEN NOT MATCHED THEN
|
|
17
|
-
# INSERT ("column3") VALUES ("column3")
|
|
18
|
-
# RETURNING *
|
|
19
|
-
|
|
20
|
-
* A :connect_opts_proc Database option is now supported, to allow
|
|
21
|
-
support for late-binding Database options. If provided, this
|
|
22
|
-
should be a callable object that is called with the options
|
|
23
|
-
used for connecting, and can modify the options. This makes
|
|
24
|
-
it simple to support authentication schemes that rotate
|
|
25
|
-
passwords automatically without user involvement:
|
|
26
|
-
|
|
27
|
-
Sequel.connect('postgres://user@host/database',
|
|
28
|
-
connect_opts_proc: lambda do |opts|
|
|
29
|
-
opts[:password] = SomeAuthLibrary.get_current_password(opts[:user])
|
|
30
|
-
end)
|
|
31
|
-
|
|
32
|
-
Note that the jdbc adapter relies on URIs and not option hashes,
|
|
33
|
-
so when using the jdbc adapter with this feature, you'll generally
|
|
34
|
-
need to set the :uri option.
|
|
35
|
-
|
|
36
|
-
= Other Improvements
|
|
37
|
-
|
|
38
|
-
* A race condition in the threaded connection pools that could result
|
|
39
|
-
in a delay or timeout error in checking out connections in low-traffic
|
|
40
|
-
environments has been fixed.
|
|
41
|
-
|
|
42
|
-
* Sequel now supports dropping a unique column or a column that is
|
|
43
|
-
part of an index on SQLite 3.35.0+, with the same emulation approach
|
|
44
|
-
it uses in earlier SQLite versions.
|
|
45
|
-
|
|
46
|
-
* The tactical_eager_loading plugin now handles cases where inheritance
|
|
47
|
-
is used and the objects used include associations with the same name
|
|
48
|
-
but different definitions. Sequel will now only eager load the
|
|
49
|
-
association for objects that use the same association definition as
|
|
50
|
-
the receiver.
|
|
51
|
-
|
|
52
|
-
= Backwards Compatibility
|
|
53
|
-
|
|
54
|
-
* bin/sequel no longer requires logger if passed the -E or -l options.
|
|
55
|
-
Instead, it uses a simple implementation that supports only
|
|
56
|
-
debug/warn/info/error methods. If you are using bin/sequel and
|
|
57
|
-
depending on the log format produced by the logger library, or
|
|
58
|
-
calling methods on the logger object other than
|
|
59
|
-
debug/warn/info/error, you'll need to update your code. This change
|
|
60
|
-
was made because logger is moving out of stdlib in a future Ruby
|
|
61
|
-
version.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* MERGE WHEN NOT MATCHED BY SOURCE is now supported when using
|
|
4
|
-
PostgreSQL 17+. You can use this SQL syntax via the following
|
|
5
|
-
Dataset methods:
|
|
6
|
-
|
|
7
|
-
* merge_delete_when_not_matched_by_source
|
|
8
|
-
* merge_update_when_not_matched_by_source
|
|
9
|
-
* merge_do_nothing_when_not_matched_by_source
|
|
10
|
-
|
|
11
|
-
These are similar to the existing merge_delete, merge_update,
|
|
12
|
-
and merge_do_nothing_when_matched, except they use
|
|
13
|
-
WHEN NOT MATCHED BY SOURCE instead of WHEN MATCHED.
|
|
14
|
-
|
|
15
|
-
* An stdio_logger extension has been added. This adds the
|
|
16
|
-
Sequel::StdioLogger class, which is a minimal logger implementation
|
|
17
|
-
that is compatible for usage with Sequel::Database. Example:
|
|
18
|
-
|
|
19
|
-
Sequel.extension :stdio_logger
|
|
20
|
-
DB.loggers << Sequel::StdioLogger.new($stdout)
|
|
21
|
-
|
|
22
|
-
= Other Improvements
|
|
23
|
-
|
|
24
|
-
* Database#inspect now only displays the database type, host, database
|
|
25
|
-
name, and user. In addition to being easier to read, this also
|
|
26
|
-
prevents displaying the password, enhancing security.
|
|
27
|
-
|
|
28
|
-
* The string_agg extension now supports SQLite 3.44+.
|
|
29
|
-
|
|
30
|
-
* The defaults_setter plugin now passes the model instance to a
|
|
31
|
-
default_values proc if the proc has arity 1. This allows default
|
|
32
|
-
values to depend on model instance state.
|
|
33
|
-
|
|
34
|
-
* The optimistic_locking plugin no longer adds the lock column to
|
|
35
|
-
changed_columns after updating the model instance.
|
|
36
|
-
|
|
37
|
-
* Database#create_temp with :temp option and an
|
|
38
|
-
SQL::QualifiedIdentifier table name will now attempt to create a
|
|
39
|
-
schema qualified table. Note that schema qualified temporary
|
|
40
|
-
tables are not supported by many (any?) databases, but this
|
|
41
|
-
change prevents the CREATE TABLE statement from succeeding with
|
|
42
|
-
an unexpected table name.
|
|
43
|
-
|
|
44
|
-
= Backwards Compatibility
|
|
45
|
-
|
|
46
|
-
* The Database.uri_to_options private class method now handles
|
|
47
|
-
conversion of URI parameters to options. Previously, this was
|
|
48
|
-
handled by callers of this method (change reverted in 5.83.1).
|
|
49
|
-
|
|
50
|
-
* The _merge_matched_sql and _merge_not_matched_sql private Dataset
|
|
51
|
-
methods in PostgreSQL have been replaced with
|
|
52
|
-
_merge_do_nothing_sql.
|
|
53
|
-
|
|
54
|
-
* An unnecessary space in submitted SQL has been removed when using
|
|
55
|
-
MERGE INSERT on PostgreSQL. This should only affect your code if
|
|
56
|
-
you are explicitly checking the produced SQL.
|
data/doc/release_notes/5.9.0.txt
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
= New Features
|
|
2
|
-
|
|
3
|
-
* An escaped_like extension has been added, for the creation of
|
|
4
|
-
LIKE/ILIKE expressions with placeholders in patterns without
|
|
5
|
-
access to a dataset. This adds escaped_like and escaped_ilike
|
|
6
|
-
methods to the same Sequel expression objects that support like
|
|
7
|
-
and ilike. These methods take two arguments, the first being
|
|
8
|
-
the pattern, with ? placeholders, and the second being the
|
|
9
|
-
placeholder value (which can be an array for multiple
|
|
10
|
-
placeholders):
|
|
11
|
-
|
|
12
|
-
Sequel.extension :escaped_like
|
|
13
|
-
DB[:table].where{string_column.escaped_like('?%', user_input)}
|
|
14
|
-
# user_input is 'foo':
|
|
15
|
-
# SELECT * FROM table WHERE string_column LIKE 'foo%'
|
|
16
|
-
# user_input is '%foo':
|
|
17
|
-
# SELECT * FROM table WHERE string_column LIKE '\%foo%'
|
|
18
|
-
|
|
19
|
-
* Generated columns on MySQL 5.7+ and MariaDB 5.2+ are now supported
|
|
20
|
-
using the :generated_always_as option when creating the column.
|
|
21
|
-
The :generated_type option can also be used to specify the type of
|
|
22
|
-
generated column (virtual or stored). Examples:
|
|
23
|
-
|
|
24
|
-
DB.add_column :t, :c, Integer, generated_always_as: Sequel[:a]+'b'
|
|
25
|
-
# ALTER TABLE `t` ADD COLUMN `c` varchar(255)
|
|
26
|
-
# GENERATED ALWAYS AS (CONCAT(`a`, 'b'))
|
|
27
|
-
|
|
28
|
-
DB.add_column :t, :c, Integer, generated_always_as: Sequel[:a]+'b',
|
|
29
|
-
generated_type: :virtual
|
|
30
|
-
# ALTER TABLE `t` ADD COLUMN `c` varchar(255)
|
|
31
|
-
# GENERATED ALWAYS AS (CONCAT(`a`, 'b')) VIRTUAL
|
|
32
|
-
|
|
33
|
-
DB.add_column :t, :c, Integer, generated_always_as: Sequel[:a]+'b',
|
|
34
|
-
generated_type: :stored
|
|
35
|
-
# ALTER TABLE `t` ADD COLUMN `c` varchar(255)
|
|
36
|
-
# GENERATED ALWAYS AS (CONCAT(`a`, 'b')) STORED
|
|
37
|
-
|
|
38
|
-
* Sequel::Model.has_dataset? has been added for checking whether the
|
|
39
|
-
model class has an associated dataset. This will generally be true
|
|
40
|
-
for most model classes, but will be false for abstract model
|
|
41
|
-
classes (such as Sequel::Model itself).
|
|
42
|
-
|
|
43
|
-
* Sequel::VERSION_NUMBER has been added for easier future version
|
|
44
|
-
comparisons. The version number for 5.9.0 is 50090.
|
|
45
|
-
|
|
46
|
-
= Other Improvements
|
|
47
|
-
|
|
48
|
-
* When disconnecting connections in the threaded connection pools,
|
|
49
|
-
the disconnection is performed without holding the connection
|
|
50
|
-
pool mutex, since disconnection may block.
|
|
51
|
-
|
|
52
|
-
* The sharded threaded connection pool no longer deadlocks when
|
|
53
|
-
disconnecting connections if the connection_validator or
|
|
54
|
-
connection_expiration extension is used.
|
|
55
|
-
|
|
56
|
-
* If a thread dies and does not check a connection back into the
|
|
57
|
-
connection pool, Sequel now disconnects the connection when it
|
|
58
|
-
detects the dead thread, instead of assuming the connection is
|
|
59
|
-
safe to be reused.
|
|
60
|
-
|
|
61
|
-
* When using eager_graph with cascaded associations, a unique
|
|
62
|
-
object is now used instead of a shared object in cases where
|
|
63
|
-
using a shared object may cause further cascaded associated
|
|
64
|
-
objects to be duplicated.
|
|
65
|
-
|
|
66
|
-
* On PostgreSQL, the ESCAPE modifier to the LIKE/ILIKE operators is
|
|
67
|
-
no longer used, since the default ESCAPE value is the one Sequel
|
|
68
|
-
uses. This change was made in order to allow the LIKE/ILIKE
|
|
69
|
-
operators to work with the ANY function, as PostgreSQL does not
|
|
70
|
-
support the use of the ESCAPE modifier in such cases.
|
|
71
|
-
|
|
72
|
-
* A hash argument passed to Model.nested_attributes in the
|
|
73
|
-
nested_attributes plugin is now no longer modified.
|
|
74
|
-
|
|
75
|
-
* Internal data structures for eager and eager_graph datasets are now
|
|
76
|
-
frozen to avoid unintentional modification.
|
|
77
|
-
|
|
78
|
-
* Nondeterministic behavior in Database#foreign_key_list with the
|
|
79
|
-
:reverse option on PostgreSQL is now avoided by using an
|
|
80
|
-
unambiguous order.
|
|
81
|
-
|
|
82
|
-
* Performance has been improved slightly by avoiding unnecessary
|
|
83
|
-
hash allocations.
|
|
84
|
-
|
|
85
|
-
* Performance has been improved slightly by using while instead
|
|
86
|
-
of Kernel#loop.
|
|
87
|
-
|
|
88
|
-
* BigDecimal() is now used instead of BigDecimal.new(), as the
|
|
89
|
-
latter has been deprecated.
|
|
90
|
-
|
|
91
|
-
* The jdbc adapter now avoids referencing ::NativeException on JRuby
|
|
92
|
-
9.2+, since JRuby has deprecated it. It is still used on older
|
|
93
|
-
versions of JRuby, since some JRuby 1.7 code may still require it.
|
|
94
|
-
|
|
95
|
-
* Sequel now works around multiple Date/Time conversion bugs in
|
|
96
|
-
JRuby 9.2.0.0 for BC dates in the pg_extended_date_support
|
|
97
|
-
extension. These bugs have already been fixed in JRuby, and
|
|
98
|
-
the workarounds will be removed after the release of JRuby
|
|
99
|
-
9.2.1.0.
|