sequel 4.30.0 → 4.31.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/CHANGELOG +18 -0
- data/MIT-LICENSE +1 -1
- data/bin/sequel +1 -0
- data/doc/opening_databases.rdoc +6 -0
- data/doc/release_notes/4.31.0.txt +57 -0
- data/lib/sequel.rb +2 -0
- data/lib/sequel/adapters/ado.rb +2 -0
- data/lib/sequel/adapters/ado/access.rb +2 -0
- data/lib/sequel/adapters/ado/mssql.rb +2 -0
- data/lib/sequel/adapters/amalgalite.rb +2 -0
- data/lib/sequel/adapters/cubrid.rb +2 -0
- data/lib/sequel/adapters/do.rb +2 -0
- data/lib/sequel/adapters/do/mysql.rb +2 -0
- data/lib/sequel/adapters/do/postgres.rb +2 -0
- data/lib/sequel/adapters/do/sqlite3.rb +2 -0
- data/lib/sequel/adapters/ibmdb.rb +3 -1
- data/lib/sequel/adapters/jdbc.rb +2 -0
- data/lib/sequel/adapters/jdbc/as400.rb +2 -0
- data/lib/sequel/adapters/jdbc/cubrid.rb +2 -0
- data/lib/sequel/adapters/jdbc/db2.rb +2 -0
- data/lib/sequel/adapters/jdbc/derby.rb +2 -0
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +2 -0
- data/lib/sequel/adapters/jdbc/h2.rb +2 -0
- data/lib/sequel/adapters/jdbc/hsqldb.rb +2 -0
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +2 -0
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +2 -0
- data/lib/sequel/adapters/jdbc/jtds.rb +2 -0
- data/lib/sequel/adapters/jdbc/mssql.rb +2 -0
- data/lib/sequel/adapters/jdbc/mysql.rb +2 -0
- data/lib/sequel/adapters/jdbc/oracle.rb +2 -0
- data/lib/sequel/adapters/jdbc/postgresql.rb +24 -1
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +2 -0
- data/lib/sequel/adapters/jdbc/sqlite.rb +2 -0
- data/lib/sequel/adapters/jdbc/sqlserver.rb +2 -0
- data/lib/sequel/adapters/jdbc/transactions.rb +2 -0
- data/lib/sequel/adapters/mock.rb +2 -0
- data/lib/sequel/adapters/mysql.rb +2 -0
- data/lib/sequel/adapters/mysql2.rb +2 -0
- data/lib/sequel/adapters/odbc.rb +2 -0
- data/lib/sequel/adapters/odbc/db2.rb +2 -0
- data/lib/sequel/adapters/odbc/mssql.rb +2 -0
- data/lib/sequel/adapters/odbc/progress.rb +2 -0
- data/lib/sequel/adapters/oracle.rb +4 -2
- data/lib/sequel/adapters/postgres.rb +5 -3
- data/lib/sequel/adapters/postgresql.rb +2 -0
- data/lib/sequel/adapters/shared/access.rb +2 -0
- data/lib/sequel/adapters/shared/cubrid.rb +2 -0
- data/lib/sequel/adapters/shared/db2.rb +2 -0
- data/lib/sequel/adapters/shared/firebird.rb +2 -0
- data/lib/sequel/adapters/shared/informix.rb +2 -0
- data/lib/sequel/adapters/shared/mssql.rb +2 -0
- data/lib/sequel/adapters/shared/mysql.rb +5 -1
- data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +2 -0
- data/lib/sequel/adapters/shared/oracle.rb +5 -3
- data/lib/sequel/adapters/shared/postgres.rb +19 -12
- data/lib/sequel/adapters/shared/progress.rb +2 -0
- data/lib/sequel/adapters/shared/sqlanywhere.rb +3 -1
- data/lib/sequel/adapters/shared/sqlite.rb +2 -0
- data/lib/sequel/adapters/sqlanywhere.rb +2 -0
- data/lib/sequel/adapters/sqlite.rb +4 -1
- data/lib/sequel/adapters/swift.rb +2 -0
- data/lib/sequel/adapters/swift/mysql.rb +2 -0
- data/lib/sequel/adapters/swift/postgres.rb +2 -0
- data/lib/sequel/adapters/swift/sqlite.rb +2 -0
- data/lib/sequel/adapters/tinytds.rb +2 -0
- data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +5 -3
- data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +5 -3
- data/lib/sequel/adapters/utils/pg_types.rb +2 -0
- data/lib/sequel/adapters/utils/replace.rb +2 -0
- data/lib/sequel/adapters/utils/split_alter_table.rb +2 -0
- data/lib/sequel/adapters/utils/stored_procedures.rb +2 -0
- data/lib/sequel/ast_transformer.rb +2 -0
- data/lib/sequel/connection_pool.rb +2 -0
- data/lib/sequel/connection_pool/sharded_single.rb +2 -0
- data/lib/sequel/connection_pool/sharded_threaded.rb +2 -0
- data/lib/sequel/connection_pool/single.rb +2 -0
- data/lib/sequel/connection_pool/threaded.rb +2 -0
- data/lib/sequel/core.rb +2 -0
- data/lib/sequel/database.rb +2 -0
- data/lib/sequel/database/connecting.rb +2 -0
- data/lib/sequel/database/dataset.rb +2 -0
- data/lib/sequel/database/dataset_defaults.rb +2 -0
- data/lib/sequel/database/features.rb +2 -0
- data/lib/sequel/database/logging.rb +2 -0
- data/lib/sequel/database/misc.rb +2 -0
- data/lib/sequel/database/query.rb +2 -0
- data/lib/sequel/database/schema_generator.rb +2 -0
- data/lib/sequel/database/schema_methods.rb +11 -4
- data/lib/sequel/database/transactions.rb +2 -0
- data/lib/sequel/dataset.rb +2 -0
- data/lib/sequel/dataset/actions.rb +2 -0
- data/lib/sequel/dataset/features.rb +2 -0
- data/lib/sequel/dataset/graph.rb +2 -0
- data/lib/sequel/dataset/misc.rb +2 -0
- data/lib/sequel/dataset/mutation.rb +2 -0
- data/lib/sequel/dataset/placeholder_literalizer.rb +3 -1
- data/lib/sequel/dataset/prepared_statements.rb +2 -0
- data/lib/sequel/dataset/query.rb +2 -0
- data/lib/sequel/dataset/sql.rb +7 -5
- data/lib/sequel/deprecated.rb +2 -0
- data/lib/sequel/exceptions.rb +2 -0
- data/lib/sequel/extensions/_pretty_table.rb +5 -3
- data/lib/sequel/extensions/arbitrary_servers.rb +2 -0
- data/lib/sequel/extensions/blank.rb +2 -0
- data/lib/sequel/extensions/columns_introspection.rb +2 -0
- data/lib/sequel/extensions/connection_validator.rb +2 -0
- data/lib/sequel/extensions/constraint_validations.rb +2 -0
- data/lib/sequel/extensions/core_extensions.rb +2 -0
- data/lib/sequel/extensions/core_refinements.rb +2 -0
- data/lib/sequel/extensions/current_datetime_timestamp.rb +2 -0
- data/lib/sequel/extensions/dataset_source_alias.rb +2 -0
- data/lib/sequel/extensions/date_arithmetic.rb +3 -1
- data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -0
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +2 -0
- data/lib/sequel/extensions/error_sql.rb +2 -0
- data/lib/sequel/extensions/eval_inspect.rb +2 -0
- data/lib/sequel/extensions/filter_having.rb +2 -0
- data/lib/sequel/extensions/from_block.rb +2 -0
- data/lib/sequel/extensions/graph_each.rb +2 -0
- data/lib/sequel/extensions/hash_aliases.rb +2 -0
- data/lib/sequel/extensions/inflector.rb +2 -0
- data/lib/sequel/extensions/looser_typecasting.rb +2 -0
- data/lib/sequel/extensions/meta_def.rb +2 -0
- data/lib/sequel/extensions/migration.rb +14 -4
- data/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +2 -0
- data/lib/sequel/extensions/named_timezones.rb +2 -0
- data/lib/sequel/extensions/null_dataset.rb +2 -0
- data/lib/sequel/extensions/pagination.rb +2 -0
- data/lib/sequel/extensions/pg_array.rb +16 -36
- data/lib/sequel/extensions/pg_array_ops.rb +2 -0
- data/lib/sequel/extensions/pg_enum.rb +4 -1
- data/lib/sequel/extensions/pg_hstore.rb +3 -1
- data/lib/sequel/extensions/pg_hstore_ops.rb +2 -0
- data/lib/sequel/extensions/pg_inet.rb +2 -0
- data/lib/sequel/extensions/pg_inet_ops.rb +2 -0
- data/lib/sequel/extensions/pg_interval.rb +3 -1
- data/lib/sequel/extensions/pg_json.rb +2 -0
- data/lib/sequel/extensions/pg_json_ops.rb +2 -0
- data/lib/sequel/extensions/pg_loose_count.rb +2 -0
- data/lib/sequel/extensions/pg_range.rb +2 -0
- data/lib/sequel/extensions/pg_range_ops.rb +2 -0
- data/lib/sequel/extensions/pg_row.rb +2 -0
- data/lib/sequel/extensions/pg_row_ops.rb +2 -0
- data/lib/sequel/extensions/pg_static_cache_updater.rb +2 -0
- data/lib/sequel/extensions/pretty_table.rb +2 -0
- data/lib/sequel/extensions/query.rb +2 -0
- data/lib/sequel/extensions/query_literals.rb +2 -0
- data/lib/sequel/extensions/round_timestamps.rb +2 -0
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +2 -0
- data/lib/sequel/extensions/schema_caching.rb +2 -0
- data/lib/sequel/extensions/schema_dumper.rb +4 -1
- data/lib/sequel/extensions/select_remove.rb +2 -0
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +3 -1
- data/lib/sequel/extensions/server_block.rb +2 -0
- data/lib/sequel/extensions/set_overrides.rb +2 -0
- data/lib/sequel/extensions/split_array_nil.rb +2 -0
- data/lib/sequel/extensions/sql_expr.rb +2 -0
- data/lib/sequel/extensions/string_date_time.rb +2 -0
- data/lib/sequel/extensions/thread_local_timezones.rb +2 -0
- data/lib/sequel/extensions/to_dot.rb +3 -1
- data/lib/sequel/model.rb +2 -0
- data/lib/sequel/model/associations.rb +3 -1
- data/lib/sequel/model/base.rb +5 -1
- data/lib/sequel/model/dataset_module.rb +2 -0
- data/lib/sequel/model/default_inflections.rb +2 -0
- data/lib/sequel/model/errors.rb +2 -0
- data/lib/sequel/model/exceptions.rb +2 -0
- data/lib/sequel/model/inflections.rb +2 -0
- data/lib/sequel/model/plugins.rb +2 -0
- data/lib/sequel/no_core_ext.rb +2 -0
- data/lib/sequel/plugins/accessed_columns.rb +2 -0
- data/lib/sequel/plugins/active_model.rb +2 -0
- data/lib/sequel/plugins/after_initialize.rb +2 -0
- data/lib/sequel/plugins/association_autoreloading.rb +2 -0
- data/lib/sequel/plugins/association_dependencies.rb +2 -0
- data/lib/sequel/plugins/association_pks.rb +20 -24
- data/lib/sequel/plugins/association_proxies.rb +2 -0
- data/lib/sequel/plugins/auto_validations.rb +2 -0
- data/lib/sequel/plugins/before_after_save.rb +2 -0
- data/lib/sequel/plugins/blacklist_security.rb +2 -0
- data/lib/sequel/plugins/boolean_readers.rb +2 -0
- data/lib/sequel/plugins/boolean_subsets.rb +2 -0
- data/lib/sequel/plugins/caching.rb +2 -0
- data/lib/sequel/plugins/class_table_inheritance.rb +2 -0
- data/lib/sequel/plugins/column_conflicts.rb +2 -0
- data/lib/sequel/plugins/column_select.rb +2 -0
- data/lib/sequel/plugins/composition.rb +2 -0
- data/lib/sequel/plugins/constraint_validations.rb +2 -0
- data/lib/sequel/plugins/csv_serializer.rb +2 -0
- data/lib/sequel/plugins/dataset_associations.rb +2 -0
- data/lib/sequel/plugins/defaults_setter.rb +2 -0
- data/lib/sequel/plugins/delay_add_association.rb +2 -0
- data/lib/sequel/plugins/dirty.rb +2 -0
- data/lib/sequel/plugins/eager_each.rb +2 -0
- data/lib/sequel/plugins/error_splitter.rb +2 -0
- data/lib/sequel/plugins/force_encoding.rb +2 -0
- data/lib/sequel/plugins/hook_class_methods.rb +2 -0
- data/lib/sequel/plugins/identifier_columns.rb +2 -0
- data/lib/sequel/plugins/input_transformer.rb +2 -0
- data/lib/sequel/plugins/insert_returning_select.rb +2 -0
- data/lib/sequel/plugins/instance_filters.rb +2 -0
- data/lib/sequel/plugins/instance_hooks.rb +2 -0
- data/lib/sequel/plugins/inverted_subsets.rb +2 -0
- data/lib/sequel/plugins/json_serializer.rb +2 -0
- data/lib/sequel/plugins/lazy_attributes.rb +2 -0
- data/lib/sequel/plugins/list.rb +2 -0
- data/lib/sequel/plugins/many_through_many.rb +2 -0
- data/lib/sequel/plugins/many_to_one_pk_lookup.rb +2 -0
- data/lib/sequel/plugins/modification_detection.rb +2 -0
- data/lib/sequel/plugins/mssql_optimistic_locking.rb +2 -0
- data/lib/sequel/plugins/nested_attributes.rb +2 -0
- data/lib/sequel/plugins/optimistic_locking.rb +2 -0
- data/lib/sequel/plugins/pg_array_associations.rb +2 -0
- data/lib/sequel/plugins/pg_row.rb +2 -0
- data/lib/sequel/plugins/pg_typecast_on_load.rb +2 -0
- data/lib/sequel/plugins/prepared_statements.rb +2 -0
- data/lib/sequel/plugins/prepared_statements_associations.rb +2 -0
- data/lib/sequel/plugins/prepared_statements_safe.rb +2 -0
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +2 -0
- data/lib/sequel/plugins/rcte_tree.rb +2 -0
- data/lib/sequel/plugins/schema.rb +2 -0
- data/lib/sequel/plugins/scissors.rb +2 -0
- data/lib/sequel/plugins/serialization.rb +2 -0
- data/lib/sequel/plugins/serialization_modification_detection.rb +2 -0
- data/lib/sequel/plugins/sharding.rb +2 -0
- data/lib/sequel/plugins/single_table_inheritance.rb +2 -0
- data/lib/sequel/plugins/singular_table_names.rb +2 -0
- data/lib/sequel/plugins/skip_create_refresh.rb +2 -0
- data/lib/sequel/plugins/split_values.rb +2 -0
- data/lib/sequel/plugins/static_cache.rb +2 -0
- data/lib/sequel/plugins/string_stripper.rb +2 -0
- data/lib/sequel/plugins/subclasses.rb +2 -0
- data/lib/sequel/plugins/subset_conditions.rb +2 -0
- data/lib/sequel/plugins/table_select.rb +2 -0
- data/lib/sequel/plugins/tactical_eager_loading.rb +2 -0
- data/lib/sequel/plugins/timestamps.rb +2 -0
- data/lib/sequel/plugins/touch.rb +2 -0
- data/lib/sequel/plugins/tree.rb +2 -0
- data/lib/sequel/plugins/typecast_on_load.rb +2 -0
- data/lib/sequel/plugins/unlimited_update.rb +2 -0
- data/lib/sequel/plugins/update_or_create.rb +2 -0
- data/lib/sequel/plugins/update_primary_key.rb +2 -0
- data/lib/sequel/plugins/update_refresh.rb +2 -0
- data/lib/sequel/plugins/uuid.rb +2 -0
- data/lib/sequel/plugins/validate_associated.rb +2 -0
- data/lib/sequel/plugins/validation_class_methods.rb +2 -0
- data/lib/sequel/plugins/validation_helpers.rb +3 -1
- data/lib/sequel/plugins/xml_serializer.rb +2 -0
- data/lib/sequel/sql.rb +3 -1
- data/lib/sequel/timezones.rb +2 -0
- data/lib/sequel/version.rb +3 -1
- data/spec/adapters/mysql_spec.rb +4 -0
- data/spec/adapters/postgres_spec.rb +35 -11
- data/spec/core/connection_pool_spec.rb +1 -1
- data/spec/extensions/association_pks_spec.rb +4 -2
- data/spec/extensions/caching_spec.rb +1 -1
- data/spec/extensions/csv_serializer_spec.rb +7 -0
- data/spec/extensions/date_arithmetic_spec.rb +1 -1
- data/spec/extensions/dirty_spec.rb +6 -6
- data/spec/extensions/force_encoding_spec.rb +12 -12
- data/spec/extensions/input_transformer_spec.rb +1 -1
- data/spec/extensions/migration_spec.rb +16 -0
- data/spec/extensions/modification_detection_spec.rb +2 -2
- data/spec/extensions/nested_attributes_spec.rb +1 -1
- data/spec/extensions/optimistic_locking_spec.rb +1 -1
- data/spec/extensions/pg_array_spec.rb +3 -8
- data/spec/files/double_migration/001_create_sessions.rb +9 -0
- data/spec/files/double_migration/002_create_nodes.rb +19 -0
- data/spec/files/double_migration/003_3_create_users.rb +4 -0
- data/spec/files/empty_migration/001_create_sessions.rb +9 -0
- data/spec/files/empty_migration/002_create_nodes.rb +0 -0
- data/spec/files/empty_migration/003_3_create_users.rb +4 -0
- metadata +11 -3
|
@@ -69,7 +69,7 @@ describe "date_arithmetic extension" do
|
|
|
69
69
|
db = Sequel.mock
|
|
70
70
|
db.extend_datasets do
|
|
71
71
|
def date_add_sql_append(sql, da)
|
|
72
|
-
interval =
|
|
72
|
+
interval = String.new
|
|
73
73
|
each_valid_interval_unit(da.interval, Sequel::SQL::DateAdd::DatasetMethods::DEF_DURATION_UNITS) do |value, sql_unit|
|
|
74
74
|
interval << "#{value} #{sql_unit} "
|
|
75
75
|
end
|
|
@@ -2,7 +2,7 @@ require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
|
|
|
2
2
|
|
|
3
3
|
describe "Sequel::Plugins::Dirty" do
|
|
4
4
|
before do
|
|
5
|
-
@db = Sequel.mock(:fetch=>{:initial=>'i', :initial_changed=>'ic'}, :numrows=>1)
|
|
5
|
+
@db = Sequel.mock(:fetch=>{:initial=>'i'.dup, :initial_changed=>'ic'.dup}, :numrows=>1)
|
|
6
6
|
@c = Class.new(Sequel::Model(@db[:c]))
|
|
7
7
|
@c.plugin :dirty
|
|
8
8
|
@c.columns :initial, :initial_changed, :missing, :missing_changed
|
|
@@ -135,9 +135,9 @@ describe "Sequel::Plugins::Dirty" do
|
|
|
135
135
|
|
|
136
136
|
describe "with new instance" do
|
|
137
137
|
before do
|
|
138
|
-
@o = @c.new(:initial=>'i', :initial_changed=>'ic')
|
|
139
|
-
@o.initial_changed = 'ic2'
|
|
140
|
-
@o.missing_changed = 'mc2'
|
|
138
|
+
@o = @c.new(:initial=>'i'.dup, :initial_changed=>'ic'.dup)
|
|
139
|
+
@o.initial_changed = 'ic2'.dup
|
|
140
|
+
@o.missing_changed = 'mc2'.dup
|
|
141
141
|
end
|
|
142
142
|
|
|
143
143
|
include dirty_plugin_specs
|
|
@@ -158,8 +158,8 @@ describe "Sequel::Plugins::Dirty" do
|
|
|
158
158
|
describe "with existing instance" do
|
|
159
159
|
before do
|
|
160
160
|
@o = @c[1]
|
|
161
|
-
@o.initial_changed = 'ic2'
|
|
162
|
-
@o.missing_changed = 'mc2'
|
|
161
|
+
@o.initial_changed = 'ic2'.dup
|
|
162
|
+
@o.missing_changed = 'mc2'.dup
|
|
163
163
|
end
|
|
164
164
|
|
|
165
165
|
include dirty_plugin_specs
|
|
@@ -10,7 +10,7 @@ describe "force_encoding plugin" do
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
it "should force encoding to given encoding on load" do
|
|
13
|
-
s = 'blah'
|
|
13
|
+
s = 'blah'.dup
|
|
14
14
|
s.force_encoding('US-ASCII')
|
|
15
15
|
o = @c.load(:id=>1, :x=>s)
|
|
16
16
|
o.x.must_equal 'blah'
|
|
@@ -18,7 +18,7 @@ describe "force_encoding plugin" do
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it "should force encoding to given encoding when setting column values" do
|
|
21
|
-
s = 'blah'
|
|
21
|
+
s = 'blah'.dup
|
|
22
22
|
s.force_encoding('US-ASCII')
|
|
23
23
|
o = @c.new(:x=>s)
|
|
24
24
|
o.x.must_equal 'blah'
|
|
@@ -26,7 +26,7 @@ describe "force_encoding plugin" do
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
it "should work correctly when given a frozen string" do
|
|
29
|
-
s = 'blah'
|
|
29
|
+
s = 'blah'.dup
|
|
30
30
|
s.force_encoding('US-ASCII')
|
|
31
31
|
s.freeze
|
|
32
32
|
o = @c.new(:x=>s)
|
|
@@ -35,7 +35,7 @@ describe "force_encoding plugin" do
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
it "should have a forced_encoding class accessor" do
|
|
38
|
-
s = 'blah'
|
|
38
|
+
s = 'blah'.dup
|
|
39
39
|
s.force_encoding('US-ASCII')
|
|
40
40
|
@c.forced_encoding = 'Windows-1258'
|
|
41
41
|
o = @c.load(:id=>1, :x=>s)
|
|
@@ -44,7 +44,7 @@ describe "force_encoding plugin" do
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
it "should not force encoding if forced_encoding is nil" do
|
|
47
|
-
s = 'blah'
|
|
47
|
+
s = 'blah'.dup
|
|
48
48
|
s.force_encoding('US-ASCII')
|
|
49
49
|
@c.forced_encoding = nil
|
|
50
50
|
o = @c.load(:id=>1, :x=>s)
|
|
@@ -54,27 +54,27 @@ describe "force_encoding plugin" do
|
|
|
54
54
|
|
|
55
55
|
it "should work correctly when subclassing" do
|
|
56
56
|
c = Class.new(@c)
|
|
57
|
-
s = 'blah'
|
|
57
|
+
s = 'blah'.dup
|
|
58
58
|
s.force_encoding('US-ASCII')
|
|
59
59
|
o = c.load(:id=>1, :x=>s)
|
|
60
60
|
o.x.must_equal 'blah'
|
|
61
61
|
o.x.encoding.must_equal @e1
|
|
62
62
|
|
|
63
63
|
c.plugin :force_encoding, 'UTF-16LE'
|
|
64
|
-
s =
|
|
64
|
+
s = String.new
|
|
65
65
|
s.force_encoding('US-ASCII')
|
|
66
66
|
o = c.load(:id=>1, :x=>s)
|
|
67
67
|
o.x.must_equal ''
|
|
68
68
|
o.x.encoding.must_equal Encoding.find('UTF-16LE')
|
|
69
69
|
|
|
70
70
|
@c.plugin :force_encoding, 'UTF-32LE'
|
|
71
|
-
s =
|
|
71
|
+
s = String.new
|
|
72
72
|
s.force_encoding('US-ASCII')
|
|
73
73
|
o = @c.load(:id=>1, :x=>s)
|
|
74
74
|
o.x.must_equal ''
|
|
75
75
|
o.x.encoding.must_equal Encoding.find('UTF-32LE')
|
|
76
76
|
|
|
77
|
-
s =
|
|
77
|
+
s = String.new
|
|
78
78
|
s.force_encoding('US-ASCII')
|
|
79
79
|
o = c.load(:id=>1, :x=>s)
|
|
80
80
|
o.x.must_equal ''
|
|
@@ -85,7 +85,7 @@ describe "force_encoding plugin" do
|
|
|
85
85
|
o = @c.new
|
|
86
86
|
ds = DB[:a]
|
|
87
87
|
def ds.first
|
|
88
|
-
s = 'blah'
|
|
88
|
+
s = 'blah'.dup
|
|
89
89
|
s.force_encoding('US-ASCII')
|
|
90
90
|
{:id=>1, :x=>s}
|
|
91
91
|
end
|
|
@@ -96,10 +96,10 @@ describe "force_encoding plugin" do
|
|
|
96
96
|
end
|
|
97
97
|
|
|
98
98
|
it "should work when refreshing model instances" do
|
|
99
|
-
o = @c.load(:id=>1, :x=>'as')
|
|
99
|
+
o = @c.load(:id=>1, :x=>'as'.dup)
|
|
100
100
|
ds = DB[:a]
|
|
101
101
|
def ds.first
|
|
102
|
-
s = 'blah'
|
|
102
|
+
s = 'blah'.dup
|
|
103
103
|
s.force_encoding('US-ASCII')
|
|
104
104
|
{:id=>1, :x=>s}
|
|
105
105
|
end
|
|
@@ -48,7 +48,7 @@ describe "Sequel::Plugins::InputTransformer" do
|
|
|
48
48
|
it "should apply multiple input transformers in reverse order of their call" do
|
|
49
49
|
@c.add_input_transformer(:add_bar){|v| v << 'bar'}
|
|
50
50
|
@c.add_input_transformer(:add_foo){|v| v << 'foo'}
|
|
51
|
-
@o.name = ' name '
|
|
51
|
+
@o.name = ' name '.dup
|
|
52
52
|
@o.name.must_equal 'raboof eman '
|
|
53
53
|
end
|
|
54
54
|
end
|
|
@@ -288,6 +288,14 @@ describe "Sequel::IntegerMigrator" do
|
|
|
288
288
|
proc{Sequel::Migrator.apply(@db, "spec/files/duplicate_integer_migrations")}.must_raise(Sequel::Migrator::Error)
|
|
289
289
|
end
|
|
290
290
|
|
|
291
|
+
it "should raise an error if there is an empty migration file" do
|
|
292
|
+
proc{Sequel::Migrator.apply(@db, "spec/files/empty_migration")}.must_raise(Sequel::Migrator::Error)
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
it "should raise an error if there is a migration file with multiple migrations" do
|
|
296
|
+
proc{Sequel::Migrator.apply(@db, "spec/files/double_migration")}.must_raise(Sequel::Migrator::Error)
|
|
297
|
+
end
|
|
298
|
+
|
|
291
299
|
it "should add a column name if it doesn't already exist in the schema_info table" do
|
|
292
300
|
@db.create_table(:schema_info){Integer :v}
|
|
293
301
|
def @db.alter_table(*); end
|
|
@@ -474,6 +482,14 @@ describe "Sequel::TimestampMigrator" do
|
|
|
474
482
|
Object.send(:remove_const, "CreateAlbums") if Object.const_defined?("CreateAlbums")
|
|
475
483
|
end
|
|
476
484
|
|
|
485
|
+
it "should raise an error if there is an empty migration file" do
|
|
486
|
+
proc{Sequel::TimestampMigrator.apply(@db, "spec/files/empty_migration")}.must_raise(Sequel::Migrator::Error)
|
|
487
|
+
end
|
|
488
|
+
|
|
489
|
+
it "should raise an error if there is a migration file with multiple migrations" do
|
|
490
|
+
proc{Sequel::TimestampMigrator.apply(@db, "spec/files/double_migration")}.must_raise(Sequel::Migrator::Error)
|
|
491
|
+
end
|
|
492
|
+
|
|
477
493
|
it "should handle migrating up or down all the way" do
|
|
478
494
|
@dir = 'spec/files/timestamped_migrations'
|
|
479
495
|
@m.apply(@db, @dir)
|
|
@@ -3,7 +3,7 @@ require 'yaml'
|
|
|
3
3
|
|
|
4
4
|
describe "serialization_modification_detection plugin" do
|
|
5
5
|
before do
|
|
6
|
-
@ds = Sequel.mock(:fetch=>{:id=>1, :a=>'a', :b=>1, :c=>['a'], :d=>{'b'=>'c'}}, :numrows=>1, :autoid=>1)[:items]
|
|
6
|
+
@ds = Sequel.mock(:fetch=>{:id=>1, :a=>'a'.dup, :b=>1, :c=>['a'.dup], :d=>{'b'=>'c'.dup}}, :numrows=>1, :autoid=>1)[:items]
|
|
7
7
|
@c = Class.new(Sequel::Model(@ds))
|
|
8
8
|
@c.plugin :modification_detection
|
|
9
9
|
@c.columns :a, :b, :c, :d
|
|
@@ -33,7 +33,7 @@ describe "serialization_modification_detection plugin" do
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
it "should not list a column twice" do
|
|
36
|
-
@o.a = 'b'
|
|
36
|
+
@o.a = 'b'.dup
|
|
37
37
|
@o.a << 'a'
|
|
38
38
|
@o.changed_columns.must_equal [:a]
|
|
39
39
|
end
|
|
@@ -587,7 +587,7 @@ describe "NestedAttributes plugin" do
|
|
|
587
587
|
it "should accept a :transform block that returns a changed attributes hash" do
|
|
588
588
|
@Album.nested_attributes :tags, :transform=>proc{|parent, hash| hash[:name] << parent.name; hash }
|
|
589
589
|
a = @Album.new(:name => 'Al')
|
|
590
|
-
a.set(:tags_attributes=>[{:name=>'T'}, {:name=>'T2'}])
|
|
590
|
+
a.set(:tags_attributes=>[{:name=>'T'.dup}, {:name=>'T2'.dup}])
|
|
591
591
|
@db.sqls.must_equal []
|
|
592
592
|
a.save
|
|
593
593
|
check_sql_array("INSERT INTO albums (name) VALUES ('Al')",
|
|
@@ -5,7 +5,7 @@ describe "optimistic_locking plugin" do
|
|
|
5
5
|
@c = Class.new(Sequel::Model(:people)) do
|
|
6
6
|
end
|
|
7
7
|
h = {1=>{:id=>1, :name=>'John', :lock_version=>2}}
|
|
8
|
-
lv = @lv = "lock_version"
|
|
8
|
+
lv = @lv = "lock_version".dup
|
|
9
9
|
@c.instance_dataset.numrows = @c.dataset.numrows = proc do |sql|
|
|
10
10
|
case sql
|
|
11
11
|
when /UPDATE people SET (name|#{lv}) = ('Jim'|'Bob'|\d+), (?:name|#{lv}) = ('Jim'|'Bob'|\d+) WHERE \(\(id = (\d+)\) AND \(#{lv} = (\d+)\)\)/
|
|
@@ -316,14 +316,9 @@ describe "pg_array extension" do
|
|
|
316
316
|
Sequel::Postgres::PG_TYPES[1].call('{1}').class.must_equal(Sequel::Postgres::PGArray)
|
|
317
317
|
end
|
|
318
318
|
|
|
319
|
-
it "should support registering
|
|
320
|
-
Sequel::Postgres::PGArray.register('foo', :oid=>2
|
|
321
|
-
Sequel::Postgres::PG_TYPES[
|
|
322
|
-
end
|
|
323
|
-
|
|
324
|
-
it "should support registering converters with :parser=>:json option and blocks" do
|
|
325
|
-
Sequel::Postgres::PGArray.register('foo', :oid=>4, :parser=>:json){|s| s * 2}
|
|
326
|
-
Sequel::Postgres::PG_TYPES[4].call('{{1, 2}, {3, 4}}').must_equal [[2, 4], [6, 8]]
|
|
319
|
+
it "should support registering converters with blocks" do
|
|
320
|
+
Sequel::Postgres::PGArray.register('foo', :oid=>4){|s| s.to_i * 2}
|
|
321
|
+
Sequel::Postgres::PG_TYPES[4].call('{{1,2},{3,4}}').must_equal [[2, 4], [6, 8]]
|
|
327
322
|
end
|
|
328
323
|
|
|
329
324
|
it "should support registering custom types with :array_type option" do
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Class.new(Sequel::Migration) do
|
|
2
|
+
def up
|
|
3
|
+
create_table(:sm2222){Integer :smc2}
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
def down
|
|
7
|
+
drop_table(:sm2222)
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Class.new(Sequel::Migration) do
|
|
12
|
+
def up
|
|
13
|
+
create_table(:sm2443){Integer :smc2}
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def down
|
|
17
|
+
drop_table(:sm2443)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
File without changes
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sequel
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.31.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jeremy Evans
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-01
|
|
11
|
+
date: 2016-02-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: minitest
|
|
@@ -231,6 +231,7 @@ extra_rdoc_files:
|
|
|
231
231
|
- doc/release_notes/4.28.0.txt
|
|
232
232
|
- doc/release_notes/4.29.0.txt
|
|
233
233
|
- doc/release_notes/4.30.0.txt
|
|
234
|
+
- doc/release_notes/4.31.0.txt
|
|
234
235
|
files:
|
|
235
236
|
- CHANGELOG
|
|
236
237
|
- MIT-LICENSE
|
|
@@ -350,6 +351,7 @@ files:
|
|
|
350
351
|
- doc/release_notes/4.29.0.txt
|
|
351
352
|
- doc/release_notes/4.3.0.txt
|
|
352
353
|
- doc/release_notes/4.30.0.txt
|
|
354
|
+
- doc/release_notes/4.31.0.txt
|
|
353
355
|
- doc/release_notes/4.4.0.txt
|
|
354
356
|
- doc/release_notes/4.5.0.txt
|
|
355
357
|
- doc/release_notes/4.6.0.txt
|
|
@@ -779,11 +781,17 @@ files:
|
|
|
779
781
|
- spec/files/convert_to_timestamp_migrations/003_3_create_users.rb
|
|
780
782
|
- spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb
|
|
781
783
|
- spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb
|
|
784
|
+
- spec/files/double_migration/001_create_sessions.rb
|
|
785
|
+
- spec/files/double_migration/002_create_nodes.rb
|
|
786
|
+
- spec/files/double_migration/003_3_create_users.rb
|
|
782
787
|
- spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb
|
|
783
788
|
- spec/files/duplicate_integer_migrations/001_create_alt_basic.rb
|
|
784
789
|
- spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb
|
|
785
790
|
- spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb
|
|
786
791
|
- spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb
|
|
792
|
+
- spec/files/empty_migration/001_create_sessions.rb
|
|
793
|
+
- spec/files/empty_migration/002_create_nodes.rb
|
|
794
|
+
- spec/files/empty_migration/003_3_create_users.rb
|
|
787
795
|
- spec/files/integer_migrations/001_create_sessions.rb
|
|
788
796
|
- spec/files/integer_migrations/002_create_nodes.rb
|
|
789
797
|
- spec/files/integer_migrations/003_3_create_users.rb
|
|
@@ -867,7 +875,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
867
875
|
version: '0'
|
|
868
876
|
requirements: []
|
|
869
877
|
rubyforge_project:
|
|
870
|
-
rubygems_version: 2.
|
|
878
|
+
rubygems_version: 2.5.1
|
|
871
879
|
signing_key:
|
|
872
880
|
specification_version: 4
|
|
873
881
|
summary: The Database Toolkit for Ruby
|