sequel 4.36.0 → 5.61.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 +5 -5
- data/CHANGELOG +548 -5749
- data/MIT-LICENSE +1 -1
- data/README.rdoc +265 -159
- data/bin/sequel +34 -12
- data/doc/advanced_associations.rdoc +228 -187
- data/doc/association_basics.rdoc +281 -291
- data/doc/bin_sequel.rdoc +5 -3
- data/doc/cheat_sheet.rdoc +86 -51
- data/doc/code_order.rdoc +25 -19
- data/doc/core_extensions.rdoc +104 -63
- data/doc/dataset_basics.rdoc +12 -21
- data/doc/dataset_filtering.rdoc +99 -86
- data/doc/extensions.rdoc +3 -10
- data/doc/fork_safety.rdoc +84 -0
- data/doc/mass_assignment.rdoc +74 -31
- data/doc/migration.rdoc +59 -51
- data/doc/model_dataset_method_design.rdoc +129 -0
- data/doc/model_hooks.rdoc +15 -25
- data/doc/model_plugins.rdoc +12 -12
- data/doc/mssql_stored_procedures.rdoc +3 -3
- data/doc/object_model.rdoc +58 -68
- data/doc/opening_databases.rdoc +85 -95
- data/doc/postgresql.rdoc +263 -38
- data/doc/prepared_statements.rdoc +29 -24
- data/doc/querying.rdoc +189 -167
- data/doc/reflection.rdoc +5 -6
- data/doc/release_notes/5.0.0.txt +159 -0
- data/doc/release_notes/5.1.0.txt +31 -0
- data/doc/release_notes/5.10.0.txt +84 -0
- data/doc/release_notes/5.11.0.txt +83 -0
- data/doc/release_notes/5.12.0.txt +141 -0
- data/doc/release_notes/5.13.0.txt +27 -0
- data/doc/release_notes/5.14.0.txt +63 -0
- data/doc/release_notes/5.15.0.txt +39 -0
- data/doc/release_notes/5.16.0.txt +110 -0
- data/doc/release_notes/5.17.0.txt +31 -0
- data/doc/release_notes/5.18.0.txt +69 -0
- data/doc/release_notes/5.19.0.txt +28 -0
- data/doc/release_notes/5.2.0.txt +33 -0
- data/doc/release_notes/5.20.0.txt +89 -0
- data/doc/release_notes/5.21.0.txt +87 -0
- data/doc/release_notes/5.22.0.txt +48 -0
- data/doc/release_notes/5.23.0.txt +56 -0
- data/doc/release_notes/5.24.0.txt +56 -0
- data/doc/release_notes/5.25.0.txt +32 -0
- data/doc/release_notes/5.26.0.txt +35 -0
- data/doc/release_notes/5.27.0.txt +21 -0
- data/doc/release_notes/5.28.0.txt +16 -0
- data/doc/release_notes/5.29.0.txt +22 -0
- data/doc/release_notes/5.3.0.txt +121 -0
- data/doc/release_notes/5.30.0.txt +20 -0
- data/doc/release_notes/5.31.0.txt +148 -0
- data/doc/release_notes/5.32.0.txt +46 -0
- data/doc/release_notes/5.33.0.txt +24 -0
- data/doc/release_notes/5.34.0.txt +40 -0
- data/doc/release_notes/5.35.0.txt +56 -0
- data/doc/release_notes/5.36.0.txt +60 -0
- data/doc/release_notes/5.37.0.txt +30 -0
- data/doc/release_notes/5.38.0.txt +28 -0
- data/doc/release_notes/5.39.0.txt +19 -0
- data/doc/release_notes/5.4.0.txt +80 -0
- data/doc/release_notes/5.40.0.txt +40 -0
- data/doc/release_notes/5.41.0.txt +25 -0
- data/doc/release_notes/5.42.0.txt +136 -0
- data/doc/release_notes/5.43.0.txt +98 -0
- data/doc/release_notes/5.44.0.txt +32 -0
- data/doc/release_notes/5.45.0.txt +34 -0
- data/doc/release_notes/5.46.0.txt +87 -0
- data/doc/release_notes/5.47.0.txt +59 -0
- data/doc/release_notes/5.48.0.txt +14 -0
- data/doc/release_notes/5.49.0.txt +59 -0
- data/doc/release_notes/5.5.0.txt +61 -0
- data/doc/release_notes/5.50.0.txt +78 -0
- data/doc/release_notes/5.51.0.txt +47 -0
- data/doc/release_notes/5.52.0.txt +87 -0
- data/doc/release_notes/5.53.0.txt +23 -0
- data/doc/release_notes/5.54.0.txt +27 -0
- data/doc/release_notes/5.55.0.txt +21 -0
- data/doc/release_notes/5.56.0.txt +51 -0
- data/doc/release_notes/5.57.0.txt +23 -0
- data/doc/release_notes/5.58.0.txt +31 -0
- data/doc/release_notes/5.59.0.txt +73 -0
- data/doc/release_notes/5.6.0.txt +31 -0
- data/doc/release_notes/5.60.0.txt +22 -0
- data/doc/release_notes/5.61.0.txt +43 -0
- data/doc/release_notes/5.7.0.txt +108 -0
- data/doc/release_notes/5.8.0.txt +170 -0
- data/doc/release_notes/5.9.0.txt +99 -0
- data/doc/schema_modification.rdoc +95 -75
- data/doc/security.rdoc +109 -80
- data/doc/sharding.rdoc +74 -47
- data/doc/sql.rdoc +147 -122
- data/doc/testing.rdoc +43 -20
- data/doc/thread_safety.rdoc +2 -4
- data/doc/transactions.rdoc +97 -18
- data/doc/validations.rdoc +52 -50
- data/doc/virtual_rows.rdoc +90 -109
- data/lib/sequel/adapters/ado/access.rb +15 -17
- data/lib/sequel/adapters/ado/mssql.rb +6 -15
- data/lib/sequel/adapters/ado.rb +150 -20
- data/lib/sequel/adapters/amalgalite.rb +11 -23
- data/lib/sequel/adapters/ibmdb.rb +47 -55
- data/lib/sequel/adapters/jdbc/db2.rb +29 -39
- data/lib/sequel/adapters/jdbc/derby.rb +58 -54
- data/lib/sequel/adapters/jdbc/h2.rb +93 -35
- data/lib/sequel/adapters/jdbc/hsqldb.rb +24 -31
- data/lib/sequel/adapters/jdbc/jtds.rb +2 -10
- data/lib/sequel/adapters/jdbc/mssql.rb +3 -11
- data/lib/sequel/adapters/jdbc/mysql.rb +17 -20
- data/lib/sequel/adapters/jdbc/oracle.rb +22 -18
- data/lib/sequel/adapters/jdbc/postgresql.rb +69 -71
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +11 -23
- data/lib/sequel/adapters/jdbc/sqlite.rb +47 -11
- data/lib/sequel/adapters/jdbc/sqlserver.rb +34 -9
- data/lib/sequel/adapters/jdbc/transactions.rb +22 -38
- data/lib/sequel/adapters/jdbc.rb +145 -130
- data/lib/sequel/adapters/mock.rb +100 -111
- data/lib/sequel/adapters/mysql.rb +114 -122
- data/lib/sequel/adapters/mysql2.rb +147 -63
- data/lib/sequel/adapters/odbc/db2.rb +1 -1
- data/lib/sequel/adapters/odbc/mssql.rb +8 -14
- data/lib/sequel/adapters/odbc/oracle.rb +11 -0
- data/lib/sequel/adapters/odbc.rb +20 -25
- data/lib/sequel/adapters/oracle.rb +50 -56
- data/lib/sequel/adapters/postgres.rb +305 -327
- data/lib/sequel/adapters/postgresql.rb +1 -1
- data/lib/sequel/adapters/shared/access.rb +74 -78
- data/lib/sequel/adapters/shared/db2.rb +118 -71
- data/lib/sequel/adapters/shared/mssql.rb +301 -220
- data/lib/sequel/adapters/shared/mysql.rb +299 -217
- data/lib/sequel/adapters/shared/oracle.rb +226 -65
- data/lib/sequel/adapters/shared/postgres.rb +935 -395
- data/lib/sequel/adapters/shared/sqlanywhere.rb +105 -126
- data/lib/sequel/adapters/shared/sqlite.rb +447 -173
- data/lib/sequel/adapters/sqlanywhere.rb +48 -35
- data/lib/sequel/adapters/sqlite.rb +156 -111
- data/lib/sequel/adapters/tinytds.rb +30 -38
- data/lib/sequel/adapters/utils/columns_limit_1.rb +22 -0
- data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +3 -6
- data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +2 -2
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +87 -0
- data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +56 -0
- data/lib/sequel/adapters/utils/replace.rb +1 -4
- data/lib/sequel/adapters/utils/stored_procedures.rb +7 -22
- data/lib/sequel/adapters/utils/unmodified_identifiers.rb +28 -0
- data/lib/sequel/ast_transformer.rb +17 -89
- data/lib/sequel/connection_pool/sharded_single.rb +18 -15
- data/lib/sequel/connection_pool/sharded_threaded.rb +130 -111
- data/lib/sequel/connection_pool/single.rb +18 -13
- data/lib/sequel/connection_pool/threaded.rb +121 -120
- data/lib/sequel/connection_pool.rb +48 -29
- data/lib/sequel/core.rb +351 -301
- data/lib/sequel/database/connecting.rb +69 -57
- data/lib/sequel/database/dataset.rb +13 -5
- data/lib/sequel/database/dataset_defaults.rb +18 -102
- data/lib/sequel/database/features.rb +18 -4
- data/lib/sequel/database/logging.rb +12 -11
- data/lib/sequel/database/misc.rb +180 -122
- data/lib/sequel/database/query.rb +47 -27
- data/lib/sequel/database/schema_generator.rb +178 -84
- data/lib/sequel/database/schema_methods.rb +172 -97
- data/lib/sequel/database/transactions.rb +205 -44
- data/lib/sequel/database.rb +17 -2
- data/lib/sequel/dataset/actions.rb +339 -155
- data/lib/sequel/dataset/dataset_module.rb +46 -0
- data/lib/sequel/dataset/features.rb +90 -35
- data/lib/sequel/dataset/graph.rb +80 -58
- data/lib/sequel/dataset/misc.rb +137 -47
- data/lib/sequel/dataset/placeholder_literalizer.rb +63 -25
- data/lib/sequel/dataset/prepared_statements.rb +188 -85
- data/lib/sequel/dataset/query.rb +530 -222
- data/lib/sequel/dataset/sql.rb +590 -368
- data/lib/sequel/dataset.rb +26 -16
- data/lib/sequel/deprecated.rb +12 -2
- data/lib/sequel/exceptions.rb +46 -16
- data/lib/sequel/extensions/_model_constraint_validations.rb +16 -0
- data/lib/sequel/extensions/_model_pg_row.rb +43 -0
- data/lib/sequel/extensions/_pretty_table.rb +2 -5
- data/lib/sequel/extensions/any_not_empty.rb +45 -0
- data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
- data/lib/sequel/extensions/async_thread_pool.rb +438 -0
- data/lib/sequel/extensions/auto_literal_strings.rb +74 -0
- data/lib/sequel/extensions/blank.rb +8 -0
- data/lib/sequel/extensions/caller_logging.rb +79 -0
- data/lib/sequel/extensions/columns_introspection.rb +4 -3
- data/lib/sequel/extensions/connection_expiration.rb +20 -10
- data/lib/sequel/extensions/connection_validator.rb +11 -10
- data/lib/sequel/extensions/constant_sql_override.rb +65 -0
- data/lib/sequel/extensions/constraint_validations.rb +62 -39
- data/lib/sequel/extensions/core_extensions.rb +42 -48
- data/lib/sequel/extensions/core_refinements.rb +80 -59
- data/lib/sequel/extensions/current_datetime_timestamp.rb +1 -4
- data/lib/sequel/extensions/date_arithmetic.rb +98 -39
- data/lib/sequel/extensions/date_parse_input_handler.rb +67 -0
- data/lib/sequel/extensions/datetime_parse_to_time.rb +41 -0
- data/lib/sequel/extensions/duplicate_columns_handler.rb +21 -14
- data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
- data/lib/sequel/extensions/escaped_like.rb +100 -0
- data/lib/sequel/extensions/eval_inspect.rb +12 -15
- data/lib/sequel/extensions/exclude_or_null.rb +68 -0
- data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
- data/lib/sequel/extensions/freeze_datasets.rb +3 -0
- data/lib/sequel/extensions/from_block.rb +1 -34
- data/lib/sequel/extensions/graph_each.rb +4 -4
- data/lib/sequel/extensions/identifier_mangling.rb +180 -0
- data/lib/sequel/extensions/implicit_subquery.rb +48 -0
- data/lib/sequel/extensions/index_caching.rb +109 -0
- data/lib/sequel/extensions/inflector.rb +13 -5
- data/lib/sequel/extensions/integer64.rb +32 -0
- data/lib/sequel/extensions/is_distinct_from.rb +141 -0
- data/lib/sequel/extensions/looser_typecasting.rb +17 -8
- data/lib/sequel/extensions/migration.rb +119 -78
- data/lib/sequel/extensions/named_timezones.rb +88 -23
- data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -82
- data/lib/sequel/extensions/null_dataset.rb +8 -8
- data/lib/sequel/extensions/pagination.rb +32 -29
- data/lib/sequel/extensions/pg_array.rb +221 -287
- data/lib/sequel/extensions/pg_array_ops.rb +17 -9
- data/lib/sequel/extensions/pg_enum.rb +63 -23
- data/lib/sequel/extensions/pg_extended_date_support.rb +241 -0
- data/lib/sequel/extensions/pg_hstore.rb +45 -54
- data/lib/sequel/extensions/pg_hstore_ops.rb +58 -6
- data/lib/sequel/extensions/pg_inet.rb +31 -12
- data/lib/sequel/extensions/pg_inet_ops.rb +2 -2
- data/lib/sequel/extensions/pg_interval.rb +56 -29
- data/lib/sequel/extensions/pg_json.rb +417 -140
- data/lib/sequel/extensions/pg_json_ops.rb +270 -18
- data/lib/sequel/extensions/pg_loose_count.rb +4 -2
- data/lib/sequel/extensions/pg_multirange.rb +372 -0
- data/lib/sequel/extensions/pg_range.rb +131 -191
- data/lib/sequel/extensions/pg_range_ops.rb +42 -13
- data/lib/sequel/extensions/pg_row.rb +48 -81
- data/lib/sequel/extensions/pg_row_ops.rb +33 -14
- data/lib/sequel/extensions/pg_static_cache_updater.rb +2 -2
- data/lib/sequel/extensions/pg_timestamptz.rb +28 -0
- data/lib/sequel/extensions/query.rb +9 -7
- data/lib/sequel/extensions/round_timestamps.rb +0 -6
- data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
- data/lib/sequel/extensions/s.rb +60 -0
- data/lib/sequel/extensions/schema_caching.rb +10 -1
- data/lib/sequel/extensions/schema_dumper.rb +71 -48
- data/lib/sequel/extensions/select_remove.rb +4 -4
- data/lib/sequel/extensions/sequel_4_dataset_methods.rb +85 -0
- data/lib/sequel/extensions/server_block.rb +51 -27
- data/lib/sequel/extensions/split_array_nil.rb +4 -4
- data/lib/sequel/extensions/sql_comments.rb +119 -7
- data/lib/sequel/extensions/sql_expr.rb +2 -1
- data/lib/sequel/extensions/sql_log_normalizer.rb +108 -0
- data/lib/sequel/extensions/sqlite_json_ops.rb +255 -0
- data/lib/sequel/extensions/string_agg.rb +11 -8
- data/lib/sequel/extensions/string_date_time.rb +19 -23
- data/lib/sequel/extensions/symbol_aref.rb +55 -0
- data/lib/sequel/extensions/symbol_aref_refinement.rb +43 -0
- data/lib/sequel/extensions/symbol_as.rb +23 -0
- data/lib/sequel/extensions/symbol_as_refinement.rb +37 -0
- data/lib/sequel/extensions/synchronize_sql.rb +45 -0
- data/lib/sequel/extensions/to_dot.rb +10 -4
- data/lib/sequel/extensions/virtual_row_method_block.rb +44 -0
- data/lib/sequel/model/associations.rb +1006 -284
- data/lib/sequel/model/base.rb +560 -805
- data/lib/sequel/model/dataset_module.rb +11 -10
- data/lib/sequel/model/default_inflections.rb +1 -1
- data/lib/sequel/model/errors.rb +10 -3
- data/lib/sequel/model/exceptions.rb +8 -10
- data/lib/sequel/model/inflections.rb +7 -20
- data/lib/sequel/model/plugins.rb +114 -0
- data/lib/sequel/model.rb +32 -82
- data/lib/sequel/plugins/active_model.rb +30 -14
- data/lib/sequel/plugins/after_initialize.rb +1 -1
- data/lib/sequel/plugins/association_dependencies.rb +25 -18
- data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
- data/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
- data/lib/sequel/plugins/association_pks.rb +147 -70
- data/lib/sequel/plugins/association_proxies.rb +33 -9
- data/lib/sequel/plugins/async_thread_pool.rb +39 -0
- data/lib/sequel/plugins/auto_restrict_eager_graph.rb +62 -0
- data/lib/sequel/plugins/auto_validations.rb +95 -28
- data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
- data/lib/sequel/plugins/before_after_save.rb +0 -42
- data/lib/sequel/plugins/blacklist_security.rb +21 -12
- data/lib/sequel/plugins/boolean_readers.rb +5 -5
- data/lib/sequel/plugins/boolean_subsets.rb +13 -8
- data/lib/sequel/plugins/caching.rb +25 -16
- data/lib/sequel/plugins/class_table_inheritance.rb +179 -100
- data/lib/sequel/plugins/column_conflicts.rb +16 -3
- data/lib/sequel/plugins/column_encryption.rb +728 -0
- data/lib/sequel/plugins/column_select.rb +7 -5
- data/lib/sequel/plugins/columns_updated.rb +42 -0
- data/lib/sequel/plugins/composition.rb +42 -26
- data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
- data/lib/sequel/plugins/constraint_validations.rb +20 -14
- data/lib/sequel/plugins/csv_serializer.rb +56 -35
- data/lib/sequel/plugins/dataset_associations.rb +40 -17
- data/lib/sequel/plugins/def_dataset_method.rb +90 -0
- data/lib/sequel/plugins/defaults_setter.rb +65 -10
- data/lib/sequel/plugins/delay_add_association.rb +1 -1
- data/lib/sequel/plugins/dirty.rb +62 -24
- data/lib/sequel/plugins/eager_each.rb +3 -3
- data/lib/sequel/plugins/eager_graph_eager.rb +139 -0
- data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
- data/lib/sequel/plugins/enum.rb +124 -0
- data/lib/sequel/plugins/error_splitter.rb +17 -12
- data/lib/sequel/plugins/finder.rb +246 -0
- data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
- data/lib/sequel/plugins/force_encoding.rb +7 -12
- data/lib/sequel/plugins/hook_class_methods.rb +37 -54
- data/lib/sequel/plugins/input_transformer.rb +18 -10
- data/lib/sequel/plugins/insert_conflict.rb +76 -0
- data/lib/sequel/plugins/insert_returning_select.rb +2 -2
- data/lib/sequel/plugins/instance_filters.rb +10 -8
- data/lib/sequel/plugins/instance_hooks.rb +34 -17
- data/lib/sequel/plugins/instance_specific_default.rb +113 -0
- data/lib/sequel/plugins/inverted_subsets.rb +22 -13
- data/lib/sequel/plugins/json_serializer.rb +124 -64
- data/lib/sequel/plugins/lazy_attributes.rb +21 -14
- data/lib/sequel/plugins/list.rb +35 -21
- data/lib/sequel/plugins/many_through_many.rb +134 -21
- data/lib/sequel/plugins/modification_detection.rb +15 -5
- data/lib/sequel/plugins/mssql_optimistic_locking.rb +6 -5
- data/lib/sequel/plugins/nested_attributes.rb +61 -31
- data/lib/sequel/plugins/optimistic_locking.rb +3 -3
- data/lib/sequel/plugins/pg_array_associations.rb +103 -53
- data/lib/sequel/plugins/pg_auto_constraint_validations.rb +350 -0
- data/lib/sequel/plugins/pg_row.rb +5 -51
- data/lib/sequel/plugins/prepared_statements.rb +60 -72
- data/lib/sequel/plugins/prepared_statements_safe.rb +9 -4
- data/lib/sequel/plugins/rcte_tree.rb +68 -82
- data/lib/sequel/plugins/require_valid_schema.rb +67 -0
- data/lib/sequel/plugins/serialization.rb +43 -46
- data/lib/sequel/plugins/serialization_modification_detection.rb +3 -2
- data/lib/sequel/plugins/sharding.rb +15 -10
- data/lib/sequel/plugins/single_table_inheritance.rb +67 -28
- data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
- data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
- data/lib/sequel/plugins/split_values.rb +11 -6
- data/lib/sequel/plugins/sql_comments.rb +189 -0
- data/lib/sequel/plugins/static_cache.rb +77 -53
- data/lib/sequel/plugins/static_cache_cache.rb +53 -0
- data/lib/sequel/plugins/string_stripper.rb +3 -3
- data/lib/sequel/plugins/subclasses.rb +43 -10
- data/lib/sequel/plugins/subset_conditions.rb +15 -5
- data/lib/sequel/plugins/table_select.rb +2 -2
- data/lib/sequel/plugins/tactical_eager_loading.rb +96 -12
- data/lib/sequel/plugins/throw_failures.rb +110 -0
- data/lib/sequel/plugins/timestamps.rb +20 -8
- data/lib/sequel/plugins/touch.rb +19 -8
- data/lib/sequel/plugins/tree.rb +62 -32
- data/lib/sequel/plugins/typecast_on_load.rb +12 -4
- data/lib/sequel/plugins/unlimited_update.rb +1 -7
- data/lib/sequel/plugins/unused_associations.rb +521 -0
- data/lib/sequel/plugins/update_or_create.rb +4 -4
- data/lib/sequel/plugins/update_primary_key.rb +1 -1
- data/lib/sequel/plugins/update_refresh.rb +26 -15
- data/lib/sequel/plugins/uuid.rb +7 -11
- data/lib/sequel/plugins/validate_associated.rb +18 -0
- data/lib/sequel/plugins/validation_class_methods.rb +38 -19
- data/lib/sequel/plugins/validation_contexts.rb +49 -0
- data/lib/sequel/plugins/validation_helpers.rb +57 -41
- data/lib/sequel/plugins/whitelist_security.rb +122 -0
- data/lib/sequel/plugins/xml_serializer.rb +30 -31
- data/lib/sequel/sql.rb +471 -331
- data/lib/sequel/timezones.rb +78 -47
- data/lib/sequel/version.rb +7 -2
- data/lib/sequel.rb +1 -1
- metadata +217 -521
- data/Rakefile +0 -164
- data/doc/active_record.rdoc +0 -928
- data/doc/release_notes/1.0.txt +0 -38
- data/doc/release_notes/1.1.txt +0 -143
- data/doc/release_notes/1.3.txt +0 -101
- data/doc/release_notes/1.4.0.txt +0 -53
- data/doc/release_notes/1.5.0.txt +0 -155
- data/doc/release_notes/2.0.0.txt +0 -298
- data/doc/release_notes/2.1.0.txt +0 -271
- data/doc/release_notes/2.10.0.txt +0 -328
- data/doc/release_notes/2.11.0.txt +0 -215
- data/doc/release_notes/2.12.0.txt +0 -534
- data/doc/release_notes/2.2.0.txt +0 -253
- data/doc/release_notes/2.3.0.txt +0 -88
- data/doc/release_notes/2.4.0.txt +0 -106
- data/doc/release_notes/2.5.0.txt +0 -137
- data/doc/release_notes/2.6.0.txt +0 -157
- data/doc/release_notes/2.7.0.txt +0 -166
- data/doc/release_notes/2.8.0.txt +0 -171
- data/doc/release_notes/2.9.0.txt +0 -97
- data/doc/release_notes/3.0.0.txt +0 -221
- data/doc/release_notes/3.1.0.txt +0 -406
- data/doc/release_notes/3.10.0.txt +0 -286
- data/doc/release_notes/3.11.0.txt +0 -254
- data/doc/release_notes/3.12.0.txt +0 -304
- data/doc/release_notes/3.13.0.txt +0 -210
- data/doc/release_notes/3.14.0.txt +0 -118
- data/doc/release_notes/3.15.0.txt +0 -78
- data/doc/release_notes/3.16.0.txt +0 -45
- data/doc/release_notes/3.17.0.txt +0 -58
- data/doc/release_notes/3.18.0.txt +0 -120
- data/doc/release_notes/3.19.0.txt +0 -67
- data/doc/release_notes/3.2.0.txt +0 -268
- data/doc/release_notes/3.20.0.txt +0 -41
- data/doc/release_notes/3.21.0.txt +0 -87
- data/doc/release_notes/3.22.0.txt +0 -39
- data/doc/release_notes/3.23.0.txt +0 -172
- data/doc/release_notes/3.24.0.txt +0 -420
- data/doc/release_notes/3.25.0.txt +0 -88
- data/doc/release_notes/3.26.0.txt +0 -88
- data/doc/release_notes/3.27.0.txt +0 -82
- data/doc/release_notes/3.28.0.txt +0 -304
- data/doc/release_notes/3.29.0.txt +0 -459
- data/doc/release_notes/3.3.0.txt +0 -192
- data/doc/release_notes/3.30.0.txt +0 -135
- data/doc/release_notes/3.31.0.txt +0 -146
- data/doc/release_notes/3.32.0.txt +0 -202
- data/doc/release_notes/3.33.0.txt +0 -157
- data/doc/release_notes/3.34.0.txt +0 -671
- data/doc/release_notes/3.35.0.txt +0 -144
- data/doc/release_notes/3.36.0.txt +0 -245
- data/doc/release_notes/3.37.0.txt +0 -338
- data/doc/release_notes/3.38.0.txt +0 -234
- data/doc/release_notes/3.39.0.txt +0 -237
- data/doc/release_notes/3.4.0.txt +0 -325
- data/doc/release_notes/3.40.0.txt +0 -73
- data/doc/release_notes/3.41.0.txt +0 -155
- data/doc/release_notes/3.42.0.txt +0 -74
- data/doc/release_notes/3.43.0.txt +0 -105
- data/doc/release_notes/3.44.0.txt +0 -152
- data/doc/release_notes/3.45.0.txt +0 -179
- data/doc/release_notes/3.46.0.txt +0 -122
- data/doc/release_notes/3.47.0.txt +0 -270
- data/doc/release_notes/3.48.0.txt +0 -477
- data/doc/release_notes/3.5.0.txt +0 -510
- data/doc/release_notes/3.6.0.txt +0 -366
- data/doc/release_notes/3.7.0.txt +0 -179
- data/doc/release_notes/3.8.0.txt +0 -151
- data/doc/release_notes/3.9.0.txt +0 -233
- data/doc/release_notes/4.0.0.txt +0 -262
- data/doc/release_notes/4.1.0.txt +0 -85
- data/doc/release_notes/4.10.0.txt +0 -226
- data/doc/release_notes/4.11.0.txt +0 -147
- data/doc/release_notes/4.12.0.txt +0 -105
- data/doc/release_notes/4.13.0.txt +0 -169
- data/doc/release_notes/4.14.0.txt +0 -68
- data/doc/release_notes/4.15.0.txt +0 -56
- data/doc/release_notes/4.16.0.txt +0 -36
- data/doc/release_notes/4.17.0.txt +0 -38
- data/doc/release_notes/4.18.0.txt +0 -36
- data/doc/release_notes/4.19.0.txt +0 -45
- data/doc/release_notes/4.2.0.txt +0 -129
- data/doc/release_notes/4.20.0.txt +0 -79
- data/doc/release_notes/4.21.0.txt +0 -94
- data/doc/release_notes/4.22.0.txt +0 -72
- data/doc/release_notes/4.23.0.txt +0 -65
- data/doc/release_notes/4.24.0.txt +0 -99
- data/doc/release_notes/4.25.0.txt +0 -181
- data/doc/release_notes/4.26.0.txt +0 -44
- data/doc/release_notes/4.27.0.txt +0 -78
- data/doc/release_notes/4.28.0.txt +0 -57
- data/doc/release_notes/4.29.0.txt +0 -41
- data/doc/release_notes/4.3.0.txt +0 -40
- data/doc/release_notes/4.30.0.txt +0 -37
- data/doc/release_notes/4.31.0.txt +0 -57
- data/doc/release_notes/4.32.0.txt +0 -132
- data/doc/release_notes/4.33.0.txt +0 -88
- data/doc/release_notes/4.34.0.txt +0 -86
- data/doc/release_notes/4.35.0.txt +0 -130
- data/doc/release_notes/4.36.0.txt +0 -116
- data/doc/release_notes/4.4.0.txt +0 -92
- data/doc/release_notes/4.5.0.txt +0 -34
- data/doc/release_notes/4.6.0.txt +0 -30
- data/doc/release_notes/4.7.0.txt +0 -103
- data/doc/release_notes/4.8.0.txt +0 -175
- data/doc/release_notes/4.9.0.txt +0 -190
- data/lib/sequel/adapters/cubrid.rb +0 -144
- data/lib/sequel/adapters/do/mysql.rb +0 -66
- data/lib/sequel/adapters/do/postgres.rb +0 -44
- data/lib/sequel/adapters/do/sqlite3.rb +0 -42
- data/lib/sequel/adapters/do.rb +0 -158
- data/lib/sequel/adapters/jdbc/as400.rb +0 -84
- data/lib/sequel/adapters/jdbc/cubrid.rb +0 -64
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -36
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -33
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -33
- data/lib/sequel/adapters/odbc/progress.rb +0 -10
- data/lib/sequel/adapters/shared/cubrid.rb +0 -245
- data/lib/sequel/adapters/shared/firebird.rb +0 -247
- data/lib/sequel/adapters/shared/informix.rb +0 -54
- data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +0 -152
- data/lib/sequel/adapters/shared/progress.rb +0 -40
- data/lib/sequel/adapters/swift/mysql.rb +0 -49
- data/lib/sequel/adapters/swift/postgres.rb +0 -47
- data/lib/sequel/adapters/swift/sqlite.rb +0 -49
- data/lib/sequel/adapters/swift.rb +0 -160
- data/lib/sequel/adapters/utils/pg_types.rb +0 -70
- data/lib/sequel/dataset/mutation.rb +0 -111
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -5
- data/lib/sequel/extensions/filter_having.rb +0 -63
- data/lib/sequel/extensions/hash_aliases.rb +0 -49
- data/lib/sequel/extensions/meta_def.rb +0 -35
- data/lib/sequel/extensions/query_literals.rb +0 -84
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -24
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -122
- data/lib/sequel/extensions/set_overrides.rb +0 -76
- data/lib/sequel/no_core_ext.rb +0 -3
- data/lib/sequel/plugins/association_autoreloading.rb +0 -9
- data/lib/sequel/plugins/identifier_columns.rb +0 -47
- data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -9
- data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -81
- data/lib/sequel/plugins/prepared_statements_associations.rb +0 -119
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -61
- data/lib/sequel/plugins/schema.rb +0 -82
- data/lib/sequel/plugins/scissors.rb +0 -35
- data/spec/adapter_spec.rb +0 -4
- data/spec/adapters/db2_spec.rb +0 -160
- data/spec/adapters/firebird_spec.rb +0 -411
- data/spec/adapters/informix_spec.rb +0 -100
- data/spec/adapters/mssql_spec.rb +0 -733
- data/spec/adapters/mysql_spec.rb +0 -1319
- data/spec/adapters/oracle_spec.rb +0 -313
- data/spec/adapters/postgres_spec.rb +0 -3790
- data/spec/adapters/spec_helper.rb +0 -49
- data/spec/adapters/sqlanywhere_spec.rb +0 -170
- data/spec/adapters/sqlite_spec.rb +0 -688
- data/spec/bin_spec.rb +0 -258
- data/spec/core/connection_pool_spec.rb +0 -1045
- data/spec/core/database_spec.rb +0 -2636
- data/spec/core/dataset_spec.rb +0 -5175
- data/spec/core/deprecated_spec.rb +0 -70
- data/spec/core/expression_filters_spec.rb +0 -1247
- data/spec/core/mock_adapter_spec.rb +0 -464
- data/spec/core/object_graph_spec.rb +0 -303
- data/spec/core/placeholder_literalizer_spec.rb +0 -163
- data/spec/core/schema_generator_spec.rb +0 -203
- data/spec/core/schema_spec.rb +0 -1676
- data/spec/core/spec_helper.rb +0 -34
- data/spec/core/version_spec.rb +0 -7
- data/spec/core_extensions_spec.rb +0 -699
- data/spec/core_model_spec.rb +0 -2
- data/spec/core_spec.rb +0 -1
- data/spec/extensions/accessed_columns_spec.rb +0 -51
- data/spec/extensions/active_model_spec.rb +0 -85
- data/spec/extensions/after_initialize_spec.rb +0 -24
- data/spec/extensions/arbitrary_servers_spec.rb +0 -109
- data/spec/extensions/association_dependencies_spec.rb +0 -117
- data/spec/extensions/association_pks_spec.rb +0 -405
- data/spec/extensions/association_proxies_spec.rb +0 -86
- data/spec/extensions/auto_validations_spec.rb +0 -192
- data/spec/extensions/before_after_save_spec.rb +0 -40
- data/spec/extensions/blacklist_security_spec.rb +0 -88
- data/spec/extensions/blank_spec.rb +0 -69
- data/spec/extensions/boolean_readers_spec.rb +0 -93
- data/spec/extensions/boolean_subsets_spec.rb +0 -47
- data/spec/extensions/caching_spec.rb +0 -270
- data/spec/extensions/class_table_inheritance_spec.rb +0 -444
- data/spec/extensions/column_conflicts_spec.rb +0 -60
- data/spec/extensions/column_select_spec.rb +0 -108
- data/spec/extensions/columns_introspection_spec.rb +0 -91
- data/spec/extensions/composition_spec.rb +0 -242
- data/spec/extensions/connection_expiration_spec.rb +0 -121
- data/spec/extensions/connection_validator_spec.rb +0 -127
- data/spec/extensions/constraint_validations_plugin_spec.rb +0 -288
- data/spec/extensions/constraint_validations_spec.rb +0 -389
- data/spec/extensions/core_refinements_spec.rb +0 -519
- data/spec/extensions/csv_serializer_spec.rb +0 -180
- data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
- data/spec/extensions/dataset_associations_spec.rb +0 -343
- data/spec/extensions/dataset_source_alias_spec.rb +0 -51
- data/spec/extensions/date_arithmetic_spec.rb +0 -167
- data/spec/extensions/defaults_setter_spec.rb +0 -102
- data/spec/extensions/delay_add_association_spec.rb +0 -74
- data/spec/extensions/dirty_spec.rb +0 -180
- data/spec/extensions/duplicate_columns_handler_spec.rb +0 -110
- data/spec/extensions/eager_each_spec.rb +0 -66
- data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
- data/spec/extensions/error_splitter_spec.rb +0 -18
- data/spec/extensions/error_sql_spec.rb +0 -20
- data/spec/extensions/eval_inspect_spec.rb +0 -73
- data/spec/extensions/filter_having_spec.rb +0 -40
- data/spec/extensions/force_encoding_spec.rb +0 -114
- data/spec/extensions/from_block_spec.rb +0 -21
- data/spec/extensions/graph_each_spec.rb +0 -119
- data/spec/extensions/hash_aliases_spec.rb +0 -24
- data/spec/extensions/hook_class_methods_spec.rb +0 -429
- data/spec/extensions/identifier_columns_spec.rb +0 -17
- data/spec/extensions/inflector_spec.rb +0 -183
- data/spec/extensions/input_transformer_spec.rb +0 -54
- data/spec/extensions/insert_returning_select_spec.rb +0 -46
- data/spec/extensions/instance_filters_spec.rb +0 -79
- data/spec/extensions/instance_hooks_spec.rb +0 -276
- data/spec/extensions/inverted_subsets_spec.rb +0 -33
- data/spec/extensions/json_serializer_spec.rb +0 -304
- data/spec/extensions/lazy_attributes_spec.rb +0 -170
- data/spec/extensions/list_spec.rb +0 -278
- data/spec/extensions/looser_typecasting_spec.rb +0 -43
- data/spec/extensions/many_through_many_spec.rb +0 -2172
- data/spec/extensions/meta_def_spec.rb +0 -21
- data/spec/extensions/migration_spec.rb +0 -728
- data/spec/extensions/modification_detection_spec.rb +0 -80
- data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -91
- data/spec/extensions/named_timezones_spec.rb +0 -108
- data/spec/extensions/nested_attributes_spec.rb +0 -697
- data/spec/extensions/no_auto_literal_strings_spec.rb +0 -65
- data/spec/extensions/null_dataset_spec.rb +0 -85
- data/spec/extensions/optimistic_locking_spec.rb +0 -128
- data/spec/extensions/pagination_spec.rb +0 -118
- data/spec/extensions/pg_array_associations_spec.rb +0 -736
- data/spec/extensions/pg_array_ops_spec.rb +0 -143
- data/spec/extensions/pg_array_spec.rb +0 -390
- data/spec/extensions/pg_enum_spec.rb +0 -92
- data/spec/extensions/pg_hstore_ops_spec.rb +0 -236
- data/spec/extensions/pg_hstore_spec.rb +0 -206
- data/spec/extensions/pg_inet_ops_spec.rb +0 -101
- data/spec/extensions/pg_inet_spec.rb +0 -52
- data/spec/extensions/pg_interval_spec.rb +0 -76
- data/spec/extensions/pg_json_ops_spec.rb +0 -275
- data/spec/extensions/pg_json_spec.rb +0 -218
- data/spec/extensions/pg_loose_count_spec.rb +0 -17
- data/spec/extensions/pg_range_ops_spec.rb +0 -58
- data/spec/extensions/pg_range_spec.rb +0 -473
- data/spec/extensions/pg_row_ops_spec.rb +0 -60
- data/spec/extensions/pg_row_plugin_spec.rb +0 -62
- data/spec/extensions/pg_row_spec.rb +0 -360
- data/spec/extensions/pg_static_cache_updater_spec.rb +0 -92
- data/spec/extensions/pg_typecast_on_load_spec.rb +0 -63
- data/spec/extensions/prepared_statements_associations_spec.rb +0 -159
- data/spec/extensions/prepared_statements_safe_spec.rb +0 -61
- data/spec/extensions/prepared_statements_spec.rb +0 -103
- data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -31
- data/spec/extensions/pretty_table_spec.rb +0 -92
- data/spec/extensions/query_literals_spec.rb +0 -183
- data/spec/extensions/query_spec.rb +0 -102
- data/spec/extensions/rcte_tree_spec.rb +0 -392
- data/spec/extensions/round_timestamps_spec.rb +0 -43
- data/spec/extensions/schema_caching_spec.rb +0 -41
- data/spec/extensions/schema_dumper_spec.rb +0 -814
- data/spec/extensions/schema_spec.rb +0 -117
- data/spec/extensions/scissors_spec.rb +0 -26
- data/spec/extensions/select_remove_spec.rb +0 -38
- data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -101
- data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
- data/spec/extensions/serialization_spec.rb +0 -362
- data/spec/extensions/server_block_spec.rb +0 -90
- data/spec/extensions/server_logging_spec.rb +0 -45
- data/spec/extensions/set_overrides_spec.rb +0 -61
- data/spec/extensions/sharding_spec.rb +0 -198
- data/spec/extensions/shared_caching_spec.rb +0 -175
- data/spec/extensions/single_table_inheritance_spec.rb +0 -297
- data/spec/extensions/singular_table_names_spec.rb +0 -22
- data/spec/extensions/skip_create_refresh_spec.rb +0 -17
- data/spec/extensions/spec_helper.rb +0 -71
- data/spec/extensions/split_array_nil_spec.rb +0 -24
- data/spec/extensions/split_values_spec.rb +0 -22
- data/spec/extensions/sql_comments_spec.rb +0 -27
- data/spec/extensions/sql_expr_spec.rb +0 -60
- data/spec/extensions/static_cache_spec.rb +0 -361
- data/spec/extensions/string_agg_spec.rb +0 -85
- data/spec/extensions/string_date_time_spec.rb +0 -95
- data/spec/extensions/string_stripper_spec.rb +0 -68
- data/spec/extensions/subclasses_spec.rb +0 -66
- data/spec/extensions/subset_conditions_spec.rb +0 -38
- data/spec/extensions/table_select_spec.rb +0 -71
- data/spec/extensions/tactical_eager_loading_spec.rb +0 -136
- data/spec/extensions/thread_local_timezones_spec.rb +0 -67
- data/spec/extensions/timestamps_spec.rb +0 -175
- data/spec/extensions/to_dot_spec.rb +0 -154
- data/spec/extensions/touch_spec.rb +0 -203
- data/spec/extensions/tree_spec.rb +0 -274
- data/spec/extensions/typecast_on_load_spec.rb +0 -80
- data/spec/extensions/unlimited_update_spec.rb +0 -20
- data/spec/extensions/update_or_create_spec.rb +0 -87
- data/spec/extensions/update_primary_key_spec.rb +0 -100
- data/spec/extensions/update_refresh_spec.rb +0 -53
- data/spec/extensions/uuid_spec.rb +0 -106
- data/spec/extensions/validate_associated_spec.rb +0 -52
- data/spec/extensions/validation_class_methods_spec.rb +0 -1027
- data/spec/extensions/validation_helpers_spec.rb +0 -554
- data/spec/extensions/xml_serializer_spec.rb +0 -207
- data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
- data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
- data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
- data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
- data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
- data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
- data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
- data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
- data/spec/files/double_migration/001_create_sessions.rb +0 -9
- data/spec/files/double_migration/002_create_nodes.rb +0 -19
- data/spec/files/double_migration/003_3_create_users.rb +0 -4
- data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
- data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
- data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
- data/spec/files/empty_migration/001_create_sessions.rb +0 -9
- data/spec/files/empty_migration/002_create_nodes.rb +0 -0
- data/spec/files/empty_migration/003_3_create_users.rb +0 -4
- data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
- data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
- data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
- data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
- data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
- data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/reversible_migrations/001_reversible.rb +0 -5
- data/spec/files/reversible_migrations/002_reversible.rb +0 -5
- data/spec/files/reversible_migrations/003_reversible.rb +0 -5
- data/spec/files/reversible_migrations/004_reversible.rb +0 -5
- data/spec/files/reversible_migrations/005_reversible.rb +0 -10
- data/spec/files/reversible_migrations/006_reversible.rb +0 -10
- data/spec/files/reversible_migrations/007_reversible.rb +0 -10
- data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
- data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
- data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
- data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
- data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
- data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
- data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
- data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
- data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
- data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
- data/spec/guards_helper.rb +0 -55
- data/spec/integration/associations_test.rb +0 -2506
- data/spec/integration/database_test.rb +0 -113
- data/spec/integration/dataset_test.rb +0 -1858
- data/spec/integration/eager_loader_test.rb +0 -687
- data/spec/integration/migrator_test.rb +0 -262
- data/spec/integration/model_test.rb +0 -230
- data/spec/integration/plugin_test.rb +0 -2297
- data/spec/integration/prepared_statement_test.rb +0 -467
- data/spec/integration/schema_test.rb +0 -815
- data/spec/integration/spec_helper.rb +0 -56
- data/spec/integration/timezone_test.rb +0 -86
- data/spec/integration/transaction_test.rb +0 -406
- data/spec/integration/type_test.rb +0 -133
- data/spec/model/association_reflection_spec.rb +0 -565
- data/spec/model/associations_spec.rb +0 -4589
- data/spec/model/base_spec.rb +0 -759
- data/spec/model/class_dataset_methods_spec.rb +0 -150
- data/spec/model/dataset_methods_spec.rb +0 -149
- data/spec/model/eager_loading_spec.rb +0 -2197
- data/spec/model/hooks_spec.rb +0 -604
- data/spec/model/inflector_spec.rb +0 -26
- data/spec/model/model_spec.rb +0 -1097
- data/spec/model/plugins_spec.rb +0 -299
- data/spec/model/record_spec.rb +0 -2162
- data/spec/model/spec_helper.rb +0 -46
- data/spec/model/validations_spec.rb +0 -193
- data/spec/model_no_assoc_spec.rb +0 -1
- data/spec/model_spec.rb +0 -1
- data/spec/plugin_spec.rb +0 -1
- data/spec/sequel_coverage.rb +0 -15
- data/spec/spec_config.rb +0 -10
@@ -1,144 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
require 'cubrid'
|
4
|
-
Sequel.require 'adapters/shared/cubrid'
|
5
|
-
|
6
|
-
module Sequel
|
7
|
-
module Cubrid
|
8
|
-
CUBRID_TYPE_PROCS = {
|
9
|
-
::Cubrid::DATE => lambda{|t| Date.new(t.year, t.month, t.day)},
|
10
|
-
::Cubrid::TIME => lambda{|t| SQLTime.create(t.hour, t.min, t.sec)},
|
11
|
-
21 => lambda(&:to_i)
|
12
|
-
}
|
13
|
-
|
14
|
-
class Database < Sequel::Database
|
15
|
-
include Sequel::Cubrid::DatabaseMethods
|
16
|
-
|
17
|
-
ROW_COUNT = "SELECT ROW_COUNT()".freeze
|
18
|
-
LAST_INSERT_ID = "SELECT LAST_INSERT_ID()".freeze
|
19
|
-
|
20
|
-
set_adapter_scheme :cubrid
|
21
|
-
|
22
|
-
def connect(server)
|
23
|
-
opts = server_opts(server)
|
24
|
-
conn = ::Cubrid.connect(
|
25
|
-
opts[:database],
|
26
|
-
opts[:host] || 'localhost',
|
27
|
-
opts[:port] || 30000,
|
28
|
-
opts[:user] || 'public',
|
29
|
-
opts[:password] || ''
|
30
|
-
)
|
31
|
-
conn.auto_commit = true
|
32
|
-
conn
|
33
|
-
end
|
34
|
-
|
35
|
-
def server_version
|
36
|
-
@server_version ||= synchronize(&:server_version)
|
37
|
-
end
|
38
|
-
|
39
|
-
def execute(sql, opts=OPTS)
|
40
|
-
synchronize(opts[:server]) do |conn|
|
41
|
-
r = log_connection_yield(sql, conn) do
|
42
|
-
begin
|
43
|
-
conn.query(sql)
|
44
|
-
rescue => e
|
45
|
-
raise_error(e)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
if block_given?
|
49
|
-
yield(r)
|
50
|
-
else
|
51
|
-
begin
|
52
|
-
case opts[:type]
|
53
|
-
when :dui
|
54
|
-
# This is cubrid's API, but it appears to be completely broken,
|
55
|
-
# giving StandardError: ERROR: CCI, -18, Invalid request handle
|
56
|
-
#r.affected_rows
|
57
|
-
|
58
|
-
# Work around bugs by using the ROW_COUNT function.
|
59
|
-
begin
|
60
|
-
r2 = conn.query(ROW_COUNT)
|
61
|
-
r2.each{|a| return a.first.to_i}
|
62
|
-
ensure
|
63
|
-
r2.close if r2
|
64
|
-
end
|
65
|
-
when :insert
|
66
|
-
begin
|
67
|
-
r2 = conn.query(LAST_INSERT_ID)
|
68
|
-
r2.each{|a| return a.first.to_i}
|
69
|
-
ensure
|
70
|
-
r2.close if r2
|
71
|
-
end
|
72
|
-
end
|
73
|
-
ensure
|
74
|
-
r.close
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
def execute_ddl(sql, opts=OPTS)
|
81
|
-
execute(sql, opts.merge(:type=>:ddl))
|
82
|
-
end
|
83
|
-
|
84
|
-
def execute_dui(sql, opts=OPTS)
|
85
|
-
execute(sql, opts.merge(:type=>:dui))
|
86
|
-
end
|
87
|
-
|
88
|
-
def execute_insert(sql, opts=OPTS)
|
89
|
-
execute(sql, opts.merge(:type=>:insert))
|
90
|
-
end
|
91
|
-
|
92
|
-
private
|
93
|
-
|
94
|
-
def begin_transaction(conn, opts=OPTS)
|
95
|
-
log_connection_yield(TRANSACTION_BEGIN, conn){conn.auto_commit = false}
|
96
|
-
end
|
97
|
-
|
98
|
-
def commit_transaction(conn, opts=OPTS)
|
99
|
-
log_connection_yield(TRANSACTION_COMMIT, conn){conn.commit}
|
100
|
-
end
|
101
|
-
|
102
|
-
def database_error_classes
|
103
|
-
[StandardError]
|
104
|
-
end
|
105
|
-
|
106
|
-
def remove_transaction(conn, committed)
|
107
|
-
conn.auto_commit = true
|
108
|
-
ensure
|
109
|
-
super
|
110
|
-
end
|
111
|
-
|
112
|
-
# This doesn't actually work, as the cubrid ruby driver
|
113
|
-
# does not implement transactions correctly.
|
114
|
-
def rollback_transaction(conn, opts=OPTS)
|
115
|
-
log_connection_yield(TRANSACTION_ROLLBACK, conn){conn.rollback}
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
class Dataset < Sequel::Dataset
|
120
|
-
include Sequel::Cubrid::DatasetMethods
|
121
|
-
COLUMN_INFO_NAME = "name".freeze
|
122
|
-
COLUMN_INFO_TYPE = "type_name".freeze
|
123
|
-
|
124
|
-
Database::DatasetClass = self
|
125
|
-
|
126
|
-
def fetch_rows(sql)
|
127
|
-
execute(sql) do |stmt|
|
128
|
-
begin
|
129
|
-
cols = stmt.column_info.map{|c| [output_identifier(c[COLUMN_INFO_NAME]), CUBRID_TYPE_PROCS[c[COLUMN_INFO_TYPE]]]}
|
130
|
-
self.columns = cols.map(&:first)
|
131
|
-
stmt.each do |r|
|
132
|
-
row = {}
|
133
|
-
cols.zip(r).each{|(k, p), v| row[k] = (v && p) ? p.call(v) : v}
|
134
|
-
yield row
|
135
|
-
end
|
136
|
-
ensure
|
137
|
-
stmt.close
|
138
|
-
end
|
139
|
-
end
|
140
|
-
self
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
@@ -1,66 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::DataObjects.load_driver 'do_mysql'
|
4
|
-
Sequel.require 'adapters/shared/mysql'
|
5
|
-
|
6
|
-
module Sequel
|
7
|
-
module DataObjects
|
8
|
-
Sequel.synchronize do
|
9
|
-
DATABASE_SETUP[:mysql] = proc do |db|
|
10
|
-
db.extend(Sequel::DataObjects::MySQL::DatabaseMethods)
|
11
|
-
db.dataset_class = Sequel::DataObjects::MySQL::Dataset
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
# Database and Dataset instance methods for MySQL specific
|
16
|
-
# support via DataObjects.
|
17
|
-
module MySQL
|
18
|
-
# Database instance methods for MySQL databases accessed via DataObjects.
|
19
|
-
module DatabaseMethods
|
20
|
-
extend Sequel::Database::ResetIdentifierMangling
|
21
|
-
include Sequel::MySQL::DatabaseMethods
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
# The database name for the given database. Need to parse it out
|
26
|
-
# of the connection string, since the DataObjects does no parsing on the
|
27
|
-
# given connection string by default.
|
28
|
-
def database_name
|
29
|
-
(m = /\/(.*)/.match(URI.parse(uri).path)) && m[1]
|
30
|
-
end
|
31
|
-
|
32
|
-
# Recognize the tinyint(1) column as boolean.
|
33
|
-
def schema_column_type(db_type)
|
34
|
-
db_type =~ /\Atinyint\(1\)/ ? :boolean : super
|
35
|
-
end
|
36
|
-
|
37
|
-
# Apply the connectiong setting SQLs for every new connection.
|
38
|
-
def setup_connection(conn)
|
39
|
-
mysql_connection_setting_sqls.each{|sql| log_connection_yield(sql, conn){conn.create_command(sql).execute_non_query}}
|
40
|
-
super
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
# Dataset class for MySQL datasets accessed via DataObjects.
|
45
|
-
class Dataset < DataObjects::Dataset
|
46
|
-
include Sequel::MySQL::DatasetMethods
|
47
|
-
APOS = Dataset::APOS
|
48
|
-
APOS_RE = Dataset::APOS_RE
|
49
|
-
DOUBLE_APOS = Dataset::DOUBLE_APOS
|
50
|
-
|
51
|
-
# The DataObjects MySQL driver uses the number of rows actually modified in the update,
|
52
|
-
# instead of the number of matched by the filter.
|
53
|
-
def provides_accurate_rows_matched?
|
54
|
-
false
|
55
|
-
end
|
56
|
-
|
57
|
-
private
|
58
|
-
|
59
|
-
# do_mysql sets NO_BACKSLASH_ESCAPES, so use standard SQL string escaping
|
60
|
-
def literal_string_append(sql, s)
|
61
|
-
sql << APOS << s.gsub(APOS_RE, DOUBLE_APOS) << APOS
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::DataObjects.load_driver 'do_postgres'
|
4
|
-
Sequel.require 'adapters/shared/postgres'
|
5
|
-
|
6
|
-
module Sequel
|
7
|
-
Postgres::CONVERTED_EXCEPTIONS << ::DataObjects::Error
|
8
|
-
|
9
|
-
module DataObjects
|
10
|
-
Sequel.synchronize do
|
11
|
-
DATABASE_SETUP[:postgres] = proc do |db|
|
12
|
-
db.extend(Sequel::DataObjects::Postgres::DatabaseMethods)
|
13
|
-
db.extend_datasets Sequel::Postgres::DatasetMethods
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# Adapter, Database, and Dataset support for accessing a PostgreSQL
|
18
|
-
# database via DataObjects.
|
19
|
-
module Postgres
|
20
|
-
# Methods to add to Database instances that access PostgreSQL via
|
21
|
-
# DataObjects.
|
22
|
-
module DatabaseMethods
|
23
|
-
extend Sequel::Database::ResetIdentifierMangling
|
24
|
-
include Sequel::Postgres::DatabaseMethods
|
25
|
-
|
26
|
-
# Add the primary_keys and primary_key_sequences instance variables,
|
27
|
-
# so we can get the correct return values for inserted rows.
|
28
|
-
def self.extended(db)
|
29
|
-
super
|
30
|
-
db.send(:initialize_postgres_adapter)
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
# Extend the adapter with the DataObjects PostgreSQL AdapterMethods
|
36
|
-
def setup_connection(conn)
|
37
|
-
conn = super(conn)
|
38
|
-
connection_configuration_sqls.each{|sql| log_connection_yield(sql, conn){conn.create_command(sql).execute_non_query}}
|
39
|
-
conn
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::DataObjects.load_driver 'do_sqlite3'
|
4
|
-
Sequel.require 'adapters/shared/sqlite'
|
5
|
-
|
6
|
-
module Sequel
|
7
|
-
module DataObjects
|
8
|
-
Sequel.synchronize do
|
9
|
-
DATABASE_SETUP[:sqlite3] = proc do |db|
|
10
|
-
db.extend(Sequel::DataObjects::SQLite::DatabaseMethods)
|
11
|
-
db.extend_datasets Sequel::SQLite::DatasetMethods
|
12
|
-
db.set_integer_booleans
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Database and Dataset support for SQLite databases accessed via DataObjects.
|
17
|
-
module SQLite
|
18
|
-
# Instance methods for SQLite Database objects accessed via DataObjects.
|
19
|
-
module DatabaseMethods
|
20
|
-
extend Sequel::Database::ResetIdentifierMangling
|
21
|
-
include Sequel::SQLite::DatabaseMethods
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
# Default to a single connection for a memory database.
|
26
|
-
def connection_pool_default_options
|
27
|
-
o = super
|
28
|
-
uri == 'sqlite3::memory:' ? o.merge(:max_connections=>1) : o
|
29
|
-
end
|
30
|
-
|
31
|
-
# Execute the connection pragmas on the connection
|
32
|
-
def setup_connection(conn)
|
33
|
-
connection_pragmas.each do |s|
|
34
|
-
com = conn.create_command(s)
|
35
|
-
log_connection_yield(s, conn){com.execute_non_query}
|
36
|
-
end
|
37
|
-
super
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
data/lib/sequel/adapters/do.rb
DELETED
@@ -1,158 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
require 'data_objects'
|
4
|
-
|
5
|
-
module Sequel
|
6
|
-
# Module holding the DataObjects support for Sequel. DataObjects is a
|
7
|
-
# ruby library with a standard API for accessing databases.
|
8
|
-
#
|
9
|
-
# The DataObjects adapter currently supports PostgreSQL, MySQL, and
|
10
|
-
# SQLite:
|
11
|
-
#
|
12
|
-
# * Sequel.connect('do:sqlite3::memory:')
|
13
|
-
# * Sequel.connect('do:postgres://user:password@host/database')
|
14
|
-
# * Sequel.connect('do:mysql://user:password@host/database')
|
15
|
-
module DataObjects
|
16
|
-
# Contains procs keyed on subadapter type that extend the
|
17
|
-
# given database object so it supports the correct database type.
|
18
|
-
DATABASE_SETUP = {}
|
19
|
-
|
20
|
-
# Wrapper for require that raises AdapterNotFound if driver could not be loaded
|
21
|
-
def self.load_driver(path)
|
22
|
-
require path
|
23
|
-
rescue LoadError => e
|
24
|
-
raise AdapterNotFound, e.message
|
25
|
-
end
|
26
|
-
|
27
|
-
# DataObjects uses it's own internal connection pooling in addition to the
|
28
|
-
# pooling that Sequel uses. You should make sure that you don't set
|
29
|
-
# the connection pool size to more than 8 for a
|
30
|
-
# Sequel::DataObjects::Database object, or hack DataObjects (or Extlib) to
|
31
|
-
# use a pool size at least as large as the pool size being used by Sequel.
|
32
|
-
class Database < Sequel::Database
|
33
|
-
DISCONNECT_ERROR_RE = /terminating connection due to administrator command/
|
34
|
-
|
35
|
-
set_adapter_scheme :do
|
36
|
-
|
37
|
-
# Setup a DataObjects::Connection to the database.
|
38
|
-
def connect(server)
|
39
|
-
setup_connection(::DataObjects::Connection.new(uri(server_opts(server))))
|
40
|
-
end
|
41
|
-
|
42
|
-
def disconnect_connection(conn)
|
43
|
-
conn.dispose
|
44
|
-
end
|
45
|
-
|
46
|
-
# Execute the given SQL. If a block is given, the DataObjects::Reader
|
47
|
-
# created is yielded to it. A block should not be provided unless a
|
48
|
-
# a SELECT statement is being used (or something else that returns rows).
|
49
|
-
# Otherwise, the return value is the insert id if opts[:type] is :insert,
|
50
|
-
# or the number of affected rows, otherwise.
|
51
|
-
def execute(sql, opts=OPTS)
|
52
|
-
synchronize(opts[:server]) do |conn|
|
53
|
-
begin
|
54
|
-
command = conn.create_command(sql)
|
55
|
-
res = log_connection_yield(sql, conn){block_given? ? command.execute_reader : command.execute_non_query}
|
56
|
-
rescue ::DataObjects::Error => e
|
57
|
-
raise_error(e)
|
58
|
-
end
|
59
|
-
if block_given?
|
60
|
-
begin
|
61
|
-
yield(res)
|
62
|
-
ensure
|
63
|
-
res.close if res
|
64
|
-
end
|
65
|
-
elsif opts[:type] == :insert
|
66
|
-
res.insert_id
|
67
|
-
else
|
68
|
-
res.affected_rows
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
# Execute the SQL on the this database, returning the number of affected
|
74
|
-
# rows.
|
75
|
-
def execute_dui(sql, opts=OPTS)
|
76
|
-
execute(sql, opts)
|
77
|
-
end
|
78
|
-
|
79
|
-
# Execute the SQL on this database, returning the primary key of the
|
80
|
-
# table being inserted to.
|
81
|
-
def execute_insert(sql, opts=OPTS)
|
82
|
-
execute(sql, opts.merge(:type=>:insert))
|
83
|
-
end
|
84
|
-
|
85
|
-
# Return the subadapter type for this database, i.e. sqlite3 for
|
86
|
-
# do:sqlite3::memory:.
|
87
|
-
def subadapter
|
88
|
-
uri.split(":").first
|
89
|
-
end
|
90
|
-
|
91
|
-
# Return the DataObjects URI for the Sequel URI, removing the do:
|
92
|
-
# prefix.
|
93
|
-
def uri(opts=OPTS)
|
94
|
-
opts = @opts.merge(opts)
|
95
|
-
(opts[:uri] || opts[:url]).sub(/\Ado:/, '')
|
96
|
-
end
|
97
|
-
|
98
|
-
private
|
99
|
-
|
100
|
-
# Call the DATABASE_SETUP proc directly after initialization,
|
101
|
-
# so the object always uses subadapter specific code. Also,
|
102
|
-
# raise an error immediately if the connection doesn't have a
|
103
|
-
# uri, since DataObjects requires one.
|
104
|
-
def adapter_initialize
|
105
|
-
raise(Error, "No connection string specified") unless uri
|
106
|
-
if prok = Sequel::Database.load_adapter(subadapter.to_sym, :map=>DATABASE_SETUP, :subdir=>'do')
|
107
|
-
prok.call(self)
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
# Method to call on a statement object to execute SQL that does
|
112
|
-
# not return any rows.
|
113
|
-
def connection_execute_method
|
114
|
-
:execute_non_query
|
115
|
-
end
|
116
|
-
|
117
|
-
# dataobjects uses the DataObjects::Error class as the main error class.
|
118
|
-
def database_error_classes
|
119
|
-
[::DataObjects::Error]
|
120
|
-
end
|
121
|
-
|
122
|
-
# Recognize DataObjects::ConnectionError instances as disconnect errors.
|
123
|
-
def disconnect_error?(e, opts)
|
124
|
-
super || (e.is_a?(::DataObjects::Error) && (e.is_a?(::DataObjects::ConnectionError) || e.message =~ DISCONNECT_ERROR_RE))
|
125
|
-
end
|
126
|
-
|
127
|
-
# Execute SQL on the connection by creating a command first
|
128
|
-
def log_connection_execute(conn, sql)
|
129
|
-
log_connection_yield(sql, conn){conn.create_command(sql).execute_non_query}
|
130
|
-
end
|
131
|
-
|
132
|
-
# Allow extending the given connection when it is first created.
|
133
|
-
# By default, just returns the connection.
|
134
|
-
def setup_connection(conn)
|
135
|
-
conn
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
# Dataset class for Sequel::DataObjects::Database objects.
|
140
|
-
class Dataset < Sequel::Dataset
|
141
|
-
Database::DatasetClass = self
|
142
|
-
|
143
|
-
# Execute the SQL on the database and yield the rows as hashes
|
144
|
-
# with symbol keys.
|
145
|
-
def fetch_rows(sql)
|
146
|
-
execute(sql) do |reader|
|
147
|
-
cols = self.columns = reader.fields.map{|f| output_identifier(f)}
|
148
|
-
while(reader.next!) do
|
149
|
-
h = {}
|
150
|
-
cols.zip(reader.values).each{|k, v| h[k] = v}
|
151
|
-
yield h
|
152
|
-
end
|
153
|
-
end
|
154
|
-
self
|
155
|
-
end
|
156
|
-
end
|
157
|
-
end
|
158
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::JDBC.load_driver('com.ibm.as400.access.AS400JDBCDriver')
|
4
|
-
Sequel.require 'adapters/jdbc/transactions'
|
5
|
-
Sequel.require 'adapters/utils/emulate_offset_with_row_number'
|
6
|
-
|
7
|
-
module Sequel
|
8
|
-
module JDBC
|
9
|
-
Sequel.synchronize do
|
10
|
-
DATABASE_SETUP[:as400] = proc do |db|
|
11
|
-
db.extend(Sequel::JDBC::AS400::DatabaseMethods)
|
12
|
-
db.dataset_class = Sequel::JDBC::AS400::Dataset
|
13
|
-
com.ibm.as400.access.AS400JDBCDriver
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# Database and Dataset support for AS400 databases accessed via JDBC.
|
18
|
-
module AS400
|
19
|
-
# Instance methods for AS400 Database objects accessed via JDBC.
|
20
|
-
module DatabaseMethods
|
21
|
-
extend Sequel::Database::ResetIdentifierMangling
|
22
|
-
include Sequel::JDBC::Transactions
|
23
|
-
|
24
|
-
TRANSACTION_BEGIN = 'Transaction.begin'.freeze
|
25
|
-
TRANSACTION_COMMIT = 'Transaction.commit'.freeze
|
26
|
-
TRANSACTION_ROLLBACK = 'Transaction.rollback'.freeze
|
27
|
-
|
28
|
-
# AS400 uses the :as400 database type.
|
29
|
-
def database_type
|
30
|
-
:as400
|
31
|
-
end
|
32
|
-
|
33
|
-
# TODO: Fix for AS400
|
34
|
-
def last_insert_id(conn, opts=OPTS)
|
35
|
-
nil
|
36
|
-
end
|
37
|
-
|
38
|
-
# AS400 supports transaction isolation levels
|
39
|
-
def supports_transaction_isolation_levels?
|
40
|
-
true
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def disconnect_error?(exception, opts)
|
46
|
-
super || exception.message =~ /\AThe connection does not exist\./
|
47
|
-
end
|
48
|
-
|
49
|
-
# Use JDBC connection's setAutoCommit to false to start transactions
|
50
|
-
def begin_transaction(conn, opts=OPTS)
|
51
|
-
set_transaction_isolation(conn, opts)
|
52
|
-
super
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
# Dataset class for AS400 datasets accessed via JDBC.
|
57
|
-
class Dataset < JDBC::Dataset
|
58
|
-
include EmulateOffsetWithRowNumber
|
59
|
-
|
60
|
-
WILDCARD = Sequel::LiteralString.new('*').freeze
|
61
|
-
FETCH_FIRST_ROW_ONLY = " FETCH FIRST ROW ONLY".freeze
|
62
|
-
FETCH_FIRST = " FETCH FIRST ".freeze
|
63
|
-
ROWS_ONLY = " ROWS ONLY".freeze
|
64
|
-
|
65
|
-
# Modify the sql to limit the number of rows returned
|
66
|
-
def select_limit_sql(sql)
|
67
|
-
if l = @opts[:limit]
|
68
|
-
if l == 1
|
69
|
-
sql << FETCH_FIRST_ROW_ONLY
|
70
|
-
elsif l > 1
|
71
|
-
sql << FETCH_FIRST
|
72
|
-
literal_append(sql, l)
|
73
|
-
sql << ROWS_ONLY
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def supports_window_functions?
|
79
|
-
true
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::JDBC.load_driver('Java::cubrid.jdbc.driver.CUBRIDDriver')
|
4
|
-
Sequel.require 'adapters/shared/cubrid'
|
5
|
-
Sequel.require 'adapters/jdbc/transactions'
|
6
|
-
|
7
|
-
module Sequel
|
8
|
-
module JDBC
|
9
|
-
Sequel.synchronize do
|
10
|
-
DATABASE_SETUP[:cubrid] = proc do |db|
|
11
|
-
db.extend(Sequel::JDBC::Cubrid::DatabaseMethods)
|
12
|
-
db.extend_datasets Sequel::Cubrid::DatasetMethods
|
13
|
-
Java::cubrid.jdbc.driver.CUBRIDDriver
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
module Cubrid
|
18
|
-
module DatabaseMethods
|
19
|
-
extend Sequel::Database::ResetIdentifierMangling
|
20
|
-
include Sequel::Cubrid::DatabaseMethods
|
21
|
-
include Sequel::JDBC::Transactions
|
22
|
-
|
23
|
-
def supports_savepoints?
|
24
|
-
false
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
# Get the last inserted id using LAST_INSERT_ID().
|
30
|
-
def last_insert_id(conn, opts=OPTS)
|
31
|
-
if stmt = opts[:stmt]
|
32
|
-
rs = stmt.getGeneratedKeys
|
33
|
-
begin
|
34
|
-
if rs.next
|
35
|
-
rs.getLong(1)
|
36
|
-
end
|
37
|
-
rescue NativeException
|
38
|
-
nil
|
39
|
-
ensure
|
40
|
-
rs.close
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# Use execute instead of executeUpdate.
|
46
|
-
def execute_prepared_statement_insert(stmt)
|
47
|
-
stmt.execute
|
48
|
-
end
|
49
|
-
|
50
|
-
# Return generated keys for insert statements, and use
|
51
|
-
# execute intead of executeUpdate as CUBRID doesn't
|
52
|
-
# return generated keys in executeUpdate.
|
53
|
-
def execute_statement_insert(stmt, sql)
|
54
|
-
stmt.execute(sql, JavaSQL::Statement.RETURN_GENERATED_KEYS)
|
55
|
-
end
|
56
|
-
|
57
|
-
# Return generated keys for insert statements.
|
58
|
-
def prepare_jdbc_statement(conn, sql, opts)
|
59
|
-
opts[:type] == :insert ? conn.prepareStatement(sql, JavaSQL::Statement.RETURN_GENERATED_KEYS) : super
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::JDBC.load_driver('org.firebirdsql.jdbc.FBDriver')
|
4
|
-
Sequel.require 'adapters/shared/firebird'
|
5
|
-
Sequel.require 'adapters/jdbc/transactions'
|
6
|
-
|
7
|
-
module Sequel
|
8
|
-
module JDBC
|
9
|
-
Sequel.synchronize do
|
10
|
-
DATABASE_SETUP[:firebirdsql] = proc do |db|
|
11
|
-
db.extend(Sequel::JDBC::Firebird::DatabaseMethods)
|
12
|
-
db.extend_datasets Sequel::Firebird::DatasetMethods
|
13
|
-
org.firebirdsql.jdbc.FBDriver
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# Database and Dataset instance methods for Firebird specific
|
18
|
-
# support via JDBC.
|
19
|
-
module Firebird
|
20
|
-
# Database instance methods for Firebird databases accessed via JDBC.
|
21
|
-
module DatabaseMethods
|
22
|
-
extend Sequel::Database::ResetIdentifierMangling
|
23
|
-
include Sequel::Firebird::DatabaseMethods
|
24
|
-
include Sequel::JDBC::Transactions
|
25
|
-
|
26
|
-
# Add the primary_keys and primary_key_sequences instance variables,
|
27
|
-
# so we can get the correct return values for inserted rows.
|
28
|
-
def self.extended(db)
|
29
|
-
db.instance_eval do
|
30
|
-
@primary_keys = {}
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen-string-literal: true
|
2
|
-
|
3
|
-
Sequel::JDBC.load_driver('com.informix.jdbc.IfxDriver')
|
4
|
-
Sequel.require 'adapters/shared/informix'
|
5
|
-
|
6
|
-
module Sequel
|
7
|
-
module JDBC
|
8
|
-
Sequel.synchronize do
|
9
|
-
DATABASE_SETUP[:"informix-sqli"] = proc do |db|
|
10
|
-
db.extend(Sequel::JDBC::Informix::DatabaseMethods)
|
11
|
-
db.extend_datasets Sequel::Informix::DatasetMethods
|
12
|
-
com.informix.jdbc.IfxDriver
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
# Database and Dataset instance methods for Informix specific
|
17
|
-
# support via JDBC.
|
18
|
-
module Informix
|
19
|
-
# Database instance methods for Informix databases accessed via JDBC.
|
20
|
-
module DatabaseMethods
|
21
|
-
extend Sequel::Database::ResetIdentifierMangling
|
22
|
-
include Sequel::Informix::DatabaseMethods
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
# TODO: implement
|
27
|
-
def last_insert_id(conn, opts=OPTS)
|
28
|
-
nil
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|