sequel 4.49.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +70 -0
- data/README.rdoc +195 -136
- data/Rakefile +26 -42
- data/bin/sequel +3 -5
- data/doc/advanced_associations.rdoc +86 -163
- data/doc/association_basics.rdoc +197 -274
- data/doc/bin_sequel.rdoc +5 -3
- data/doc/cheat_sheet.rdoc +66 -43
- data/doc/code_order.rdoc +1 -8
- data/doc/core_extensions.rdoc +81 -56
- data/doc/dataset_basics.rdoc +8 -17
- data/doc/dataset_filtering.rdoc +81 -86
- data/doc/extensions.rdoc +3 -10
- data/doc/mass_assignment.rdoc +73 -30
- data/doc/migration.rdoc +19 -36
- data/doc/model_dataset_method_design.rdoc +14 -17
- data/doc/model_hooks.rdoc +15 -25
- data/doc/model_plugins.rdoc +10 -10
- data/doc/mssql_stored_procedures.rdoc +3 -3
- data/doc/object_model.rdoc +52 -70
- data/doc/opening_databases.rdoc +39 -32
- data/doc/postgresql.rdoc +48 -38
- data/doc/prepared_statements.rdoc +27 -22
- data/doc/querying.rdoc +173 -150
- data/doc/reflection.rdoc +5 -6
- data/doc/release_notes/5.0.0.txt +159 -0
- data/doc/schema_modification.rdoc +63 -60
- data/doc/security.rdoc +97 -88
- data/doc/sharding.rdoc +43 -30
- data/doc/sql.rdoc +53 -65
- data/doc/testing.rdoc +3 -5
- data/doc/thread_safety.rdoc +2 -4
- data/doc/transactions.rdoc +18 -17
- data/doc/validations.rdoc +48 -45
- data/doc/virtual_rows.rdoc +87 -115
- data/lib/sequel.rb +1 -1
- data/lib/sequel/adapters/ado.rb +9 -25
- data/lib/sequel/adapters/ado/access.rb +7 -13
- data/lib/sequel/adapters/ado/mssql.rb +2 -9
- data/lib/sequel/adapters/amalgalite.rb +3 -18
- data/lib/sequel/adapters/ibmdb.rb +9 -45
- data/lib/sequel/adapters/jdbc.rb +13 -73
- data/lib/sequel/adapters/jdbc/db2.rb +8 -37
- data/lib/sequel/adapters/jdbc/derby.rb +4 -50
- data/lib/sequel/adapters/jdbc/h2.rb +4 -25
- data/lib/sequel/adapters/jdbc/hsqldb.rb +1 -26
- data/lib/sequel/adapters/jdbc/jtds.rb +2 -9
- data/lib/sequel/adapters/jdbc/mssql.rb +1 -11
- data/lib/sequel/adapters/jdbc/mysql.rb +1 -15
- data/lib/sequel/adapters/jdbc/oracle.rb +4 -26
- data/lib/sequel/adapters/jdbc/postgresql.rb +2 -31
- data/lib/sequel/adapters/jdbc/sqlanywhere.rb +4 -17
- data/lib/sequel/adapters/jdbc/sqlite.rb +1 -7
- data/lib/sequel/adapters/jdbc/sqlserver.rb +1 -13
- data/lib/sequel/adapters/jdbc/transactions.rb +1 -14
- data/lib/sequel/adapters/mock.rb +4 -30
- data/lib/sequel/adapters/mysql.rb +7 -44
- data/lib/sequel/adapters/mysql2.rb +5 -23
- data/lib/sequel/adapters/odbc.rb +0 -19
- data/lib/sequel/adapters/odbc/db2.rb +1 -1
- data/lib/sequel/adapters/odbc/mssql.rb +4 -12
- data/lib/sequel/adapters/odbc/oracle.rb +1 -1
- data/lib/sequel/adapters/oracle.rb +7 -13
- data/lib/sequel/adapters/postgres.rb +13 -57
- data/lib/sequel/adapters/postgresql.rb +1 -1
- data/lib/sequel/adapters/shared/access.rb +11 -51
- data/lib/sequel/adapters/shared/db2.rb +3 -61
- data/lib/sequel/adapters/shared/mssql.rb +21 -157
- data/lib/sequel/adapters/shared/mysql.rb +23 -224
- data/lib/sequel/adapters/shared/oracle.rb +13 -41
- data/lib/sequel/adapters/shared/postgres.rb +44 -259
- data/lib/sequel/adapters/shared/sqlanywhere.rb +4 -96
- data/lib/sequel/adapters/shared/sqlite.rb +12 -101
- data/lib/sequel/adapters/sqlanywhere.rb +4 -23
- data/lib/sequel/adapters/sqlite.rb +2 -19
- data/lib/sequel/adapters/tinytds.rb +5 -15
- data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +1 -1
- data/lib/sequel/adapters/utils/mysql_mysql2.rb +2 -4
- data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +3 -6
- data/lib/sequel/adapters/utils/replace.rb +0 -5
- data/lib/sequel/adapters/utils/stored_procedures.rb +0 -2
- data/lib/sequel/adapters/utils/unmodified_identifiers.rb +2 -0
- data/lib/sequel/ast_transformer.rb +3 -94
- data/lib/sequel/connection_pool.rb +26 -28
- data/lib/sequel/connection_pool/sharded_single.rb +1 -4
- data/lib/sequel/connection_pool/sharded_threaded.rb +97 -95
- data/lib/sequel/connection_pool/single.rb +0 -2
- data/lib/sequel/connection_pool/threaded.rb +94 -110
- data/lib/sequel/core.rb +42 -101
- data/lib/sequel/database.rb +12 -2
- data/lib/sequel/database/connecting.rb +23 -60
- data/lib/sequel/database/dataset.rb +6 -9
- data/lib/sequel/database/dataset_defaults.rb +4 -48
- data/lib/sequel/database/features.rb +5 -4
- data/lib/sequel/database/logging.rb +2 -9
- data/lib/sequel/database/misc.rb +23 -55
- data/lib/sequel/database/query.rb +8 -13
- data/lib/sequel/database/schema_generator.rb +89 -64
- data/lib/sequel/database/schema_methods.rb +61 -79
- data/lib/sequel/database/transactions.rb +4 -24
- data/lib/sequel/dataset.rb +18 -10
- data/lib/sequel/dataset/actions.rb +53 -107
- data/lib/sequel/dataset/dataset_module.rb +3 -15
- data/lib/sequel/dataset/features.rb +30 -30
- data/lib/sequel/dataset/graph.rb +40 -49
- data/lib/sequel/dataset/misc.rb +12 -37
- data/lib/sequel/dataset/placeholder_literalizer.rb +4 -4
- data/lib/sequel/dataset/prepared_statements.rb +23 -51
- data/lib/sequel/dataset/query.rb +71 -155
- data/lib/sequel/dataset/sql.rb +30 -225
- data/lib/sequel/deprecated.rb +18 -27
- data/lib/sequel/exceptions.rb +1 -17
- data/lib/sequel/extensions/_model_pg_row.rb +0 -7
- data/lib/sequel/extensions/_pretty_table.rb +1 -3
- data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
- data/lib/sequel/extensions/connection_expiration.rb +1 -1
- data/lib/sequel/extensions/connection_validator.rb +1 -1
- data/lib/sequel/extensions/constraint_validations.rb +11 -11
- data/lib/sequel/extensions/core_extensions.rb +39 -49
- data/lib/sequel/extensions/core_refinements.rb +39 -45
- data/lib/sequel/extensions/current_datetime_timestamp.rb +0 -4
- data/lib/sequel/extensions/date_arithmetic.rb +7 -7
- data/lib/sequel/extensions/duplicate_columns_handler.rb +12 -9
- data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
- data/lib/sequel/extensions/eval_inspect.rb +4 -11
- data/lib/sequel/extensions/freeze_datasets.rb +1 -69
- data/lib/sequel/extensions/from_block.rb +1 -35
- data/lib/sequel/extensions/graph_each.rb +2 -2
- data/lib/sequel/extensions/identifier_mangling.rb +9 -19
- data/lib/sequel/extensions/implicit_subquery.rb +2 -2
- data/lib/sequel/extensions/inflector.rb +4 -4
- data/lib/sequel/extensions/migration.rb +23 -40
- data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -84
- data/lib/sequel/extensions/null_dataset.rb +2 -8
- data/lib/sequel/extensions/pagination.rb +1 -17
- data/lib/sequel/extensions/pg_array.rb +20 -189
- data/lib/sequel/extensions/pg_hstore.rb +11 -50
- data/lib/sequel/extensions/pg_hstore_ops.rb +2 -2
- data/lib/sequel/extensions/pg_inet.rb +2 -15
- data/lib/sequel/extensions/pg_interval.rb +1 -20
- data/lib/sequel/extensions/pg_json.rb +7 -27
- data/lib/sequel/extensions/pg_loose_count.rb +1 -1
- data/lib/sequel/extensions/pg_range.rb +6 -121
- data/lib/sequel/extensions/pg_range_ops.rb +1 -3
- data/lib/sequel/extensions/pg_row.rb +5 -77
- data/lib/sequel/extensions/pg_row_ops.rb +2 -13
- data/lib/sequel/extensions/query.rb +3 -4
- data/lib/sequel/extensions/round_timestamps.rb +0 -6
- data/lib/sequel/extensions/schema_dumper.rb +13 -13
- data/lib/sequel/extensions/select_remove.rb +3 -3
- data/lib/sequel/extensions/split_array_nil.rb +2 -2
- data/lib/sequel/extensions/sql_comments.rb +2 -2
- data/lib/sequel/extensions/string_agg.rb +11 -8
- data/lib/sequel/extensions/symbol_aref.rb +6 -20
- data/lib/sequel/model.rb +27 -62
- data/lib/sequel/model/associations.rb +128 -131
- data/lib/sequel/model/base.rb +171 -711
- data/lib/sequel/model/default_inflections.rb +1 -1
- data/lib/sequel/model/errors.rb +0 -3
- data/lib/sequel/model/exceptions.rb +2 -6
- data/lib/sequel/model/inflections.rb +1 -26
- data/lib/sequel/model/plugins.rb +1 -0
- data/lib/sequel/plugins/active_model.rb +2 -5
- data/lib/sequel/plugins/association_dependencies.rb +15 -15
- data/lib/sequel/plugins/association_pks.rb +14 -28
- data/lib/sequel/plugins/association_proxies.rb +6 -7
- data/lib/sequel/plugins/auto_validations.rb +4 -4
- data/lib/sequel/plugins/before_after_save.rb +0 -43
- data/lib/sequel/plugins/blacklist_security.rb +9 -8
- data/lib/sequel/plugins/boolean_readers.rb +3 -3
- data/lib/sequel/plugins/boolean_subsets.rb +2 -2
- data/lib/sequel/plugins/caching.rb +5 -5
- data/lib/sequel/plugins/class_table_inheritance.rb +71 -102
- data/lib/sequel/plugins/column_conflicts.rb +2 -2
- data/lib/sequel/plugins/column_select.rb +2 -2
- data/lib/sequel/plugins/composition.rb +15 -24
- data/lib/sequel/plugins/constraint_validations.rb +4 -3
- data/lib/sequel/plugins/csv_serializer.rb +13 -20
- data/lib/sequel/plugins/dataset_associations.rb +2 -2
- data/lib/sequel/plugins/def_dataset_method.rb +5 -5
- data/lib/sequel/plugins/defaults_setter.rb +1 -1
- data/lib/sequel/plugins/delay_add_association.rb +1 -1
- data/lib/sequel/plugins/finder.rb +16 -10
- data/lib/sequel/plugins/force_encoding.rb +1 -7
- data/lib/sequel/plugins/hook_class_methods.rb +4 -106
- data/lib/sequel/plugins/input_transformer.rb +10 -11
- data/lib/sequel/plugins/insert_returning_select.rb +1 -9
- data/lib/sequel/plugins/instance_filters.rb +5 -5
- data/lib/sequel/plugins/instance_hooks.rb +7 -52
- data/lib/sequel/plugins/inverted_subsets.rb +3 -1
- data/lib/sequel/plugins/json_serializer.rb +19 -19
- data/lib/sequel/plugins/lazy_attributes.rb +1 -10
- data/lib/sequel/plugins/list.rb +6 -6
- data/lib/sequel/plugins/many_through_many.rb +11 -8
- data/lib/sequel/plugins/mssql_optimistic_locking.rb +3 -3
- data/lib/sequel/plugins/nested_attributes.rb +18 -31
- data/lib/sequel/plugins/optimistic_locking.rb +3 -3
- data/lib/sequel/plugins/pg_array_associations.rb +8 -2
- data/lib/sequel/plugins/pg_row.rb +2 -11
- data/lib/sequel/plugins/prepared_statements.rb +13 -66
- data/lib/sequel/plugins/prepared_statements_safe.rb +1 -1
- data/lib/sequel/plugins/rcte_tree.rb +7 -7
- data/lib/sequel/plugins/serialization.rb +15 -33
- data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
- data/lib/sequel/plugins/sharding.rb +2 -8
- data/lib/sequel/plugins/single_table_inheritance.rb +10 -13
- data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
- data/lib/sequel/plugins/static_cache.rb +8 -9
- data/lib/sequel/plugins/string_stripper.rb +3 -3
- data/lib/sequel/plugins/subclasses.rb +1 -1
- data/lib/sequel/plugins/subset_conditions.rb +2 -2
- data/lib/sequel/plugins/table_select.rb +2 -2
- data/lib/sequel/plugins/tactical_eager_loading.rb +4 -4
- data/lib/sequel/plugins/timestamps.rb +6 -7
- data/lib/sequel/plugins/touch.rb +4 -8
- data/lib/sequel/plugins/tree.rb +3 -3
- data/lib/sequel/plugins/typecast_on_load.rb +2 -2
- data/lib/sequel/plugins/unlimited_update.rb +1 -7
- data/lib/sequel/plugins/update_or_create.rb +3 -3
- data/lib/sequel/plugins/update_refresh.rb +3 -3
- data/lib/sequel/plugins/uuid.rb +7 -11
- data/lib/sequel/plugins/validation_class_methods.rb +10 -9
- data/lib/sequel/plugins/validation_contexts.rb +4 -4
- data/lib/sequel/plugins/validation_helpers.rb +26 -25
- data/lib/sequel/plugins/whitelist_security.rb +13 -9
- data/lib/sequel/plugins/xml_serializer.rb +24 -25
- data/lib/sequel/sql.rb +145 -276
- data/lib/sequel/timezones.rb +8 -22
- data/lib/sequel/version.rb +2 -2
- data/spec/adapter_spec.rb +1 -1
- data/spec/adapters/db2_spec.rb +2 -103
- data/spec/adapters/mssql_spec.rb +89 -68
- data/spec/adapters/mysql_spec.rb +101 -480
- data/spec/adapters/oracle_spec.rb +1 -9
- data/spec/adapters/postgres_spec.rb +312 -565
- data/spec/adapters/spec_helper.rb +12 -31
- data/spec/adapters/sqlanywhere_spec.rb +2 -77
- data/spec/adapters/sqlite_spec.rb +8 -146
- data/spec/bin_spec.rb +11 -16
- data/spec/core/connection_pool_spec.rb +173 -74
- data/spec/core/database_spec.rb +64 -244
- data/spec/core/dataset_spec.rb +81 -415
- data/spec/core/deprecated_spec.rb +3 -3
- data/spec/core/expression_filters_spec.rb +37 -144
- data/spec/core/mock_adapter_spec.rb +176 -4
- data/spec/core/object_graph_spec.rb +11 -60
- data/spec/core/placeholder_literalizer_spec.rb +1 -14
- data/spec/core/schema_generator_spec.rb +51 -40
- data/spec/core/schema_spec.rb +74 -77
- data/spec/core/spec_helper.rb +6 -24
- data/spec/core/version_spec.rb +1 -1
- data/spec/core_extensions_spec.rb +7 -83
- data/spec/core_model_spec.rb +2 -2
- data/spec/deprecation_helper.rb +2 -14
- data/spec/extensions/accessed_columns_spec.rb +1 -1
- data/spec/extensions/active_model_spec.rb +3 -3
- data/spec/extensions/after_initialize_spec.rb +1 -1
- data/spec/extensions/arbitrary_servers_spec.rb +2 -2
- data/spec/extensions/association_dependencies_spec.rb +1 -1
- data/spec/extensions/association_pks_spec.rb +4 -59
- data/spec/extensions/association_proxies_spec.rb +1 -1
- data/spec/extensions/auto_literal_strings_spec.rb +1 -12
- data/spec/extensions/auto_validations_spec.rb +1 -1
- data/spec/extensions/blacklist_security_spec.rb +1 -1
- data/spec/extensions/blank_spec.rb +1 -1
- data/spec/extensions/boolean_readers_spec.rb +1 -1
- data/spec/extensions/boolean_subsets_spec.rb +1 -1
- data/spec/extensions/caching_spec.rb +1 -1
- data/spec/extensions/class_table_inheritance_spec.rb +35 -1086
- data/spec/extensions/column_conflicts_spec.rb +1 -1
- data/spec/extensions/column_select_spec.rb +4 -4
- data/spec/extensions/columns_introspection_spec.rb +1 -1
- data/spec/extensions/columns_updated_spec.rb +1 -1
- data/spec/extensions/composition_spec.rb +1 -7
- data/spec/extensions/connection_expiration_spec.rb +3 -3
- data/spec/extensions/connection_validator_spec.rb +3 -3
- data/spec/extensions/constraint_validations_plugin_spec.rb +1 -1
- data/spec/extensions/constraint_validations_spec.rb +1 -1
- data/spec/extensions/core_refinements_spec.rb +1 -3
- data/spec/extensions/csv_serializer_spec.rb +4 -9
- data/spec/extensions/current_datetime_timestamp_spec.rb +1 -1
- data/spec/extensions/dataset_associations_spec.rb +2 -1
- data/spec/extensions/dataset_source_alias_spec.rb +1 -1
- data/spec/extensions/date_arithmetic_spec.rb +3 -3
- data/spec/extensions/def_dataset_method_spec.rb +1 -1
- data/spec/extensions/defaults_setter_spec.rb +2 -2
- data/spec/extensions/delay_add_association_spec.rb +8 -9
- data/spec/extensions/dirty_spec.rb +1 -1
- data/spec/extensions/duplicate_columns_handler_spec.rb +1 -1
- data/spec/extensions/eager_each_spec.rb +2 -2
- data/spec/extensions/empty_array_consider_nulls_spec.rb +1 -1
- data/spec/extensions/error_splitter_spec.rb +1 -1
- data/spec/extensions/error_sql_spec.rb +1 -1
- data/spec/extensions/eval_inspect_spec.rb +1 -1
- data/spec/extensions/finder_spec.rb +1 -1
- data/spec/extensions/force_encoding_spec.rb +2 -5
- data/spec/extensions/freeze_datasets_spec.rb +1 -1
- data/spec/extensions/graph_each_spec.rb +5 -5
- data/spec/extensions/hook_class_methods_spec.rb +1 -194
- data/spec/extensions/identifier_mangling_spec.rb +17 -170
- data/spec/extensions/implicit_subquery_spec.rb +1 -5
- data/spec/extensions/inflector_spec.rb +1 -1
- data/spec/extensions/input_transformer_spec.rb +7 -2
- data/spec/extensions/insert_returning_select_spec.rb +1 -1
- data/spec/extensions/instance_filters_spec.rb +1 -1
- data/spec/extensions/instance_hooks_spec.rb +1 -95
- data/spec/extensions/inverted_subsets_spec.rb +1 -1
- data/spec/extensions/json_serializer_spec.rb +1 -1
- data/spec/extensions/lazy_attributes_spec.rb +1 -7
- data/spec/extensions/list_spec.rb +1 -1
- data/spec/extensions/looser_typecasting_spec.rb +1 -1
- data/spec/extensions/many_through_many_spec.rb +1 -1
- data/spec/extensions/migration_spec.rb +2 -2
- data/spec/extensions/modification_detection_spec.rb +1 -1
- data/spec/extensions/mssql_optimistic_locking_spec.rb +1 -1
- data/spec/extensions/named_timezones_spec.rb +3 -3
- data/spec/extensions/nested_attributes_spec.rb +1 -29
- data/spec/extensions/null_dataset_spec.rb +1 -11
- data/spec/extensions/optimistic_locking_spec.rb +1 -1
- data/spec/extensions/pagination_spec.rb +1 -1
- data/spec/extensions/pg_array_associations_spec.rb +4 -1
- data/spec/extensions/pg_array_ops_spec.rb +1 -1
- data/spec/extensions/pg_array_spec.rb +3 -48
- data/spec/extensions/pg_enum_spec.rb +1 -1
- data/spec/extensions/pg_hstore_ops_spec.rb +1 -1
- data/spec/extensions/pg_hstore_spec.rb +23 -32
- data/spec/extensions/pg_inet_ops_spec.rb +1 -1
- data/spec/extensions/pg_inet_spec.rb +1 -14
- data/spec/extensions/pg_interval_spec.rb +3 -13
- data/spec/extensions/pg_json_ops_spec.rb +1 -1
- data/spec/extensions/pg_json_spec.rb +1 -13
- data/spec/extensions/pg_loose_count_spec.rb +1 -1
- data/spec/extensions/pg_range_ops_spec.rb +1 -1
- data/spec/extensions/pg_range_spec.rb +3 -88
- data/spec/extensions/pg_row_ops_spec.rb +1 -1
- data/spec/extensions/pg_row_plugin_spec.rb +1 -1
- data/spec/extensions/pg_row_spec.rb +1 -44
- data/spec/extensions/pg_static_cache_updater_spec.rb +1 -1
- data/spec/extensions/prepared_statements_safe_spec.rb +1 -1
- data/spec/extensions/prepared_statements_spec.rb +13 -48
- data/spec/extensions/pretty_table_spec.rb +1 -1
- data/spec/extensions/query_spec.rb +1 -12
- data/spec/extensions/rcte_tree_spec.rb +1 -1
- data/spec/extensions/round_timestamps_spec.rb +1 -5
- data/spec/extensions/s_spec.rb +1 -1
- data/spec/extensions/schema_caching_spec.rb +1 -1
- data/spec/extensions/schema_dumper_spec.rb +1 -1
- data/spec/extensions/select_remove_spec.rb +1 -1
- data/spec/extensions/sequel_4_dataset_methods_spec.rb +1 -1
- data/spec/extensions/serialization_modification_detection_spec.rb +1 -1
- data/spec/extensions/serialization_spec.rb +2 -14
- data/spec/extensions/server_block_spec.rb +1 -1
- data/spec/extensions/server_logging_spec.rb +2 -2
- data/spec/extensions/sharding_spec.rb +1 -1
- data/spec/extensions/shared_caching_spec.rb +1 -28
- data/spec/extensions/single_table_inheritance_spec.rb +2 -5
- data/spec/extensions/singular_table_names_spec.rb +1 -1
- data/spec/extensions/skip_create_refresh_spec.rb +1 -1
- data/spec/extensions/spec_helper.rb +5 -27
- data/spec/extensions/split_array_nil_spec.rb +1 -1
- data/spec/extensions/split_values_spec.rb +1 -1
- data/spec/extensions/sql_comments_spec.rb +1 -1
- data/spec/extensions/sql_expr_spec.rb +1 -1
- data/spec/extensions/static_cache_spec.rb +1 -1
- data/spec/extensions/string_agg_spec.rb +2 -2
- data/spec/extensions/string_date_time_spec.rb +1 -1
- data/spec/extensions/string_stripper_spec.rb +1 -1
- data/spec/extensions/subclasses_spec.rb +1 -1
- data/spec/extensions/subset_conditions_spec.rb +1 -1
- data/spec/extensions/symbol_aref_refinement_spec.rb +1 -1
- data/spec/extensions/symbol_as_refinement_spec.rb +1 -1
- data/spec/extensions/table_select_spec.rb +4 -4
- data/spec/extensions/tactical_eager_loading_spec.rb +1 -6
- data/spec/extensions/thread_local_timezones_spec.rb +1 -1
- data/spec/extensions/timestamps_spec.rb +3 -3
- data/spec/extensions/to_dot_spec.rb +1 -1
- data/spec/extensions/touch_spec.rb +1 -1
- data/spec/extensions/tree_spec.rb +1 -1
- data/spec/extensions/typecast_on_load_spec.rb +1 -1
- data/spec/extensions/unlimited_update_spec.rb +1 -1
- data/spec/extensions/update_or_create_spec.rb +1 -1
- data/spec/extensions/update_primary_key_spec.rb +4 -3
- data/spec/extensions/update_refresh_spec.rb +1 -1
- data/spec/extensions/uuid_spec.rb +10 -12
- data/spec/extensions/validate_associated_spec.rb +1 -1
- data/spec/extensions/validation_class_methods_spec.rb +3 -3
- data/spec/extensions/validation_contexts_spec.rb +1 -1
- data/spec/extensions/validation_helpers_spec.rb +10 -44
- data/spec/extensions/whitelist_security_spec.rb +5 -5
- data/spec/extensions/xml_serializer_spec.rb +3 -3
- data/spec/guards_helper.rb +2 -1
- data/spec/integration/associations_test.rb +1 -23
- data/spec/integration/database_test.rb +7 -7
- data/spec/integration/dataset_test.rb +5 -47
- data/spec/integration/eager_loader_test.rb +1 -1
- data/spec/integration/migrator_test.rb +1 -1
- data/spec/integration/model_test.rb +4 -82
- data/spec/integration/plugin_test.rb +6 -22
- data/spec/integration/prepared_statement_test.rb +8 -88
- data/spec/integration/schema_test.rb +6 -6
- data/spec/integration/spec_helper.rb +13 -21
- data/spec/integration/timezone_test.rb +5 -5
- data/spec/integration/transaction_test.rb +3 -55
- data/spec/integration/type_test.rb +9 -9
- data/spec/model/association_reflection_spec.rb +24 -9
- data/spec/model/associations_spec.rb +124 -303
- data/spec/model/base_spec.rb +18 -137
- data/spec/model/class_dataset_methods_spec.rb +2 -20
- data/spec/model/dataset_methods_spec.rb +1 -20
- data/spec/model/eager_loading_spec.rb +17 -11
- data/spec/model/hooks_spec.rb +5 -300
- data/spec/model/inflector_spec.rb +1 -1
- data/spec/model/model_spec.rb +15 -320
- data/spec/model/plugins_spec.rb +2 -16
- data/spec/model/record_spec.rb +29 -121
- data/spec/model/spec_helper.rb +5 -15
- data/spec/model/validations_spec.rb +1 -1
- data/spec/sequel_warning.rb +1 -12
- metadata +8 -64
- data/doc/active_record.rdoc +0 -927
- data/lib/sequel/adapters/cubrid.rb +0 -160
- data/lib/sequel/adapters/do.rb +0 -166
- data/lib/sequel/adapters/do/mysql.rb +0 -69
- data/lib/sequel/adapters/do/postgres.rb +0 -46
- data/lib/sequel/adapters/do/sqlite3.rb +0 -41
- data/lib/sequel/adapters/jdbc/as400.rb +0 -92
- data/lib/sequel/adapters/jdbc/cubrid.rb +0 -65
- data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -37
- data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -34
- data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -34
- data/lib/sequel/adapters/odbc/progress.rb +0 -12
- data/lib/sequel/adapters/shared/cubrid.rb +0 -245
- data/lib/sequel/adapters/shared/firebird.rb +0 -261
- data/lib/sequel/adapters/shared/informix.rb +0 -63
- data/lib/sequel/adapters/shared/progress.rb +0 -40
- data/lib/sequel/adapters/swift.rb +0 -169
- data/lib/sequel/adapters/swift/mysql.rb +0 -50
- data/lib/sequel/adapters/swift/postgres.rb +0 -49
- data/lib/sequel/adapters/swift/sqlite.rb +0 -48
- data/lib/sequel/adapters/utils/pg_types.rb +0 -4
- data/lib/sequel/dataset/mutation.rb +0 -98
- data/lib/sequel/extensions/_deprecated_identifier_mangling.rb +0 -117
- data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -8
- data/lib/sequel/extensions/filter_having.rb +0 -65
- data/lib/sequel/extensions/hash_aliases.rb +0 -51
- data/lib/sequel/extensions/meta_def.rb +0 -37
- data/lib/sequel/extensions/query_literals.rb +0 -86
- data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -26
- data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -133
- data/lib/sequel/extensions/set_overrides.rb +0 -82
- data/lib/sequel/no_core_ext.rb +0 -4
- data/lib/sequel/plugins/association_autoreloading.rb +0 -11
- data/lib/sequel/plugins/identifier_columns.rb +0 -49
- data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -11
- data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -90
- data/lib/sequel/plugins/prepared_statements_associations.rb +0 -137
- data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -71
- data/lib/sequel/plugins/schema.rb +0 -84
- data/lib/sequel/plugins/scissors.rb +0 -37
- data/spec/core/dataset_mutation_spec.rb +0 -253
- data/spec/extensions/_deprecated_identifier_mangling_spec.rb +0 -314
- data/spec/extensions/before_after_save_spec.rb +0 -40
- data/spec/extensions/filter_having_spec.rb +0 -42
- data/spec/extensions/from_block_spec.rb +0 -21
- data/spec/extensions/hash_aliases_spec.rb +0 -26
- data/spec/extensions/identifier_columns_spec.rb +0 -19
- data/spec/extensions/meta_def_spec.rb +0 -35
- data/spec/extensions/no_auto_literal_strings_spec.rb +0 -69
- data/spec/extensions/pg_typecast_on_load_spec.rb +0 -70
- data/spec/extensions/prepared_statements_associations_spec.rb +0 -212
- data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -40
- data/spec/extensions/query_literals_spec.rb +0 -185
- data/spec/extensions/schema_spec.rb +0 -123
- data/spec/extensions/scissors_spec.rb +0 -27
- data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -118
- data/spec/extensions/set_overrides_spec.rb +0 -75
@@ -1,64 +1,39 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
3
|
Sequel::JDBC.load_driver('com.ibm.db2.jcc.DB2Driver')
|
4
|
-
|
5
|
-
|
4
|
+
require_relative '../shared/db2'
|
5
|
+
require_relative 'transactions'
|
6
6
|
|
7
7
|
module Sequel
|
8
8
|
module JDBC
|
9
9
|
Sequel.synchronize do
|
10
10
|
DATABASE_SETUP[:db2] = proc do |db|
|
11
|
-
|
11
|
+
db.singleton_class.class_eval do
|
12
12
|
alias jdbc_schema_parse_table schema_parse_table
|
13
13
|
alias jdbc_tables tables
|
14
14
|
alias jdbc_views views
|
15
15
|
alias jdbc_indexes indexes
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
|
17
|
+
include Sequel::JDBC::DB2::DatabaseMethods
|
18
|
+
|
19
19
|
alias schema_parse_table jdbc_schema_parse_table
|
20
20
|
alias tables jdbc_tables
|
21
21
|
alias views jdbc_views
|
22
22
|
alias indexes jdbc_indexes
|
23
23
|
%w'schema_parse_table tables views indexes'.each do |s|
|
24
|
-
|
25
|
-
def jdbc_#{s}(*a)
|
26
|
-
Sequel::Deprecation.deprecate("Database#jdbc_#{s} in the jdbc/db2 adapter", "Use Database\##{s} instead")
|
27
|
-
#{s}(*a)
|
28
|
-
end
|
29
|
-
END
|
30
|
-
# remove_method(:"jdbc_#{s}") # SEQUEL5
|
24
|
+
remove_method(:"jdbc_#{s}")
|
31
25
|
end
|
32
26
|
end
|
33
|
-
db.
|
27
|
+
db.extend_datasets Sequel::DB2::DatasetMethods
|
34
28
|
com.ibm.db2.jcc.DB2Driver
|
35
29
|
end
|
36
30
|
end
|
37
31
|
|
38
|
-
# SEQUEL5: Remove
|
39
|
-
class Type_Convertor
|
40
|
-
def DB2Clob(r, i)
|
41
|
-
if v = r.getClob(i)
|
42
|
-
v = v.getSubString(1, v.length)
|
43
|
-
v = Sequel::SQL::Blob.new(v) if ::Sequel::DB2::use_clob_as_blob
|
44
|
-
v
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
# Database and Dataset instance methods for DB2 specific
|
50
|
-
# support via JDBC.
|
51
32
|
module DB2
|
52
|
-
# Database instance methods for DB2 databases accessed via JDBC.
|
53
33
|
module DatabaseMethods
|
54
34
|
include Sequel::DB2::DatabaseMethods
|
55
35
|
include Sequel::JDBC::Transactions
|
56
36
|
|
57
|
-
PRIMARY_KEY_INDEX_RE = /\Asql\d+\z/i.freeze
|
58
|
-
Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
|
59
|
-
IDENTITY_VAL_LOCAL = "SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1".freeze
|
60
|
-
Sequel::Deprecation.deprecate_constant(self, :IDENTITY_VAL_LOCAL)
|
61
|
-
|
62
37
|
private
|
63
38
|
|
64
39
|
def set_ps_arg(cps, arg, i)
|
@@ -103,10 +78,6 @@ module Sequel
|
|
103
78
|
end
|
104
79
|
end
|
105
80
|
end
|
106
|
-
|
107
|
-
class Dataset < JDBC::Dataset
|
108
|
-
include Sequel::DB2::DatasetMethods
|
109
|
-
end
|
110
81
|
end
|
111
82
|
end
|
112
83
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
3
|
Sequel::JDBC.load_driver('org.apache.derby.jdbc.EmbeddedDriver', :Derby)
|
4
|
-
|
4
|
+
require_relative 'transactions'
|
5
5
|
|
6
6
|
module Sequel
|
7
7
|
module JDBC
|
@@ -13,13 +13,8 @@ module Sequel
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
# Database and Dataset support for Derby databases accessed via JDBC.
|
17
16
|
module Derby
|
18
|
-
# Instance methods for Derby Database objects accessed via JDBC.
|
19
17
|
module DatabaseMethods
|
20
|
-
PRIMARY_KEY_INDEX_RE = /\Asql\d+\z/i.freeze
|
21
|
-
Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
|
22
|
-
|
23
18
|
include ::Sequel::JDBC::Transactions
|
24
19
|
|
25
20
|
# Derby doesn't support casting integer to varchar, only integer to char,
|
@@ -30,7 +25,6 @@ module Sequel
|
|
30
25
|
(type == String) ? 'CHAR(254)' : super
|
31
26
|
end
|
32
27
|
|
33
|
-
# Derby uses the :derby database type.
|
34
28
|
def database_type
|
35
29
|
:derby
|
36
30
|
end
|
@@ -67,7 +61,6 @@ module Sequel
|
|
67
61
|
ds.first
|
68
62
|
end
|
69
63
|
|
70
|
-
# Derby-specific syntax for renaming columns and changing a columns type/nullity.
|
71
64
|
def alter_table_sql(table, op)
|
72
65
|
case op[:op]
|
73
66
|
when :rename_column
|
@@ -183,49 +176,12 @@ module Sequel
|
|
183
176
|
true
|
184
177
|
end
|
185
178
|
|
186
|
-
# The SQL query to issue to check if a connection is valid.
|
187
179
|
def valid_connection_sql
|
188
180
|
@valid_connection_sql ||= select(1).sql
|
189
181
|
end
|
190
182
|
end
|
191
183
|
|
192
|
-
# Dataset class for Derby datasets accessed via JDBC.
|
193
184
|
class Dataset < JDBC::Dataset
|
194
|
-
PAREN_CLOSE = ')'.freeze
|
195
|
-
Sequel::Deprecation.deprecate_constant(self, :PAREN_CLOSE)
|
196
|
-
PAREN_OPEN = '('.freeze
|
197
|
-
Sequel::Deprecation.deprecate_constant(self, :PAREN_OPEN)
|
198
|
-
OFFSET = " OFFSET ".freeze
|
199
|
-
Sequel::Deprecation.deprecate_constant(self, :OFFSET)
|
200
|
-
CAST_STRING_OPEN = "RTRIM(".freeze
|
201
|
-
Sequel::Deprecation.deprecate_constant(self, :CAST_STRING_OPEN)
|
202
|
-
BLOB_OPEN = "CAST(X'".freeze
|
203
|
-
Sequel::Deprecation.deprecate_constant(self, :BLOB_OPEN)
|
204
|
-
BLOB_CLOSE = "' AS BLOB)".freeze
|
205
|
-
Sequel::Deprecation.deprecate_constant(self, :BLOB_CLOSE)
|
206
|
-
HSTAR = "H*".freeze
|
207
|
-
Sequel::Deprecation.deprecate_constant(self, :HSTAR)
|
208
|
-
TIME_FORMAT = "'%H:%M:%S'".freeze
|
209
|
-
Sequel::Deprecation.deprecate_constant(self, :TIME_FORMAT)
|
210
|
-
DEFAULT_FROM = " FROM sysibm.sysdummy1".freeze
|
211
|
-
Sequel::Deprecation.deprecate_constant(self, :DEFAULT_FROM)
|
212
|
-
ROWS = " ROWS".freeze
|
213
|
-
Sequel::Deprecation.deprecate_constant(self, :ROWS)
|
214
|
-
FETCH_FIRST = " FETCH FIRST ".freeze
|
215
|
-
Sequel::Deprecation.deprecate_constant(self, :FETCH_FIRST)
|
216
|
-
ROWS_ONLY = " ROWS ONLY".freeze
|
217
|
-
Sequel::Deprecation.deprecate_constant(self, :ROWS_ONLY)
|
218
|
-
BOOL_TRUE_OLD = '(1 = 1)'.freeze
|
219
|
-
Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE_OLD)
|
220
|
-
BOOL_FALSE_OLD = '(1 = 0)'.freeze
|
221
|
-
Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE_OLD)
|
222
|
-
BOOL_TRUE = 'TRUE'.freeze
|
223
|
-
Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE)
|
224
|
-
BOOL_FALSE = 'FALSE'.freeze
|
225
|
-
Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE)
|
226
|
-
EMULATED_FUNCTION_MAP = {:char_length=>'length'.freeze}
|
227
|
-
Sequel::Deprecation.deprecate_constant(self, :EMULATED_FUNCTION_MAP)
|
228
|
-
|
229
185
|
# Derby doesn't support an expression between CASE and WHEN,
|
230
186
|
# so remove conditions.
|
231
187
|
def case_expression_sql_append(sql, ce)
|
@@ -298,8 +254,7 @@ module Sequel
|
|
298
254
|
false
|
299
255
|
end
|
300
256
|
|
301
|
-
# Derby
|
302
|
-
# Newer versions can use the FALSE literal, but older versions cannot.
|
257
|
+
# Newer Derby versions can use the FALSE literal, but older versions need an always false expression.
|
303
258
|
def literal_false
|
304
259
|
if db.svn_version >= 1040133
|
305
260
|
'FALSE'
|
@@ -313,8 +268,7 @@ module Sequel
|
|
313
268
|
v.strftime("'%H:%M:%S'")
|
314
269
|
end
|
315
270
|
|
316
|
-
# Derby
|
317
|
-
# Newer versions can use the TRUE literal, but older versions cannot.
|
271
|
+
# Newer Derby versions can use the TRUE literal, but older versions need an always false expression.
|
318
272
|
def literal_true
|
319
273
|
if db.svn_version >= 1040133
|
320
274
|
'TRUE'
|
@@ -323,7 +277,7 @@ module Sequel
|
|
323
277
|
end
|
324
278
|
end
|
325
279
|
|
326
|
-
# Derby supports multiple rows in INSERT.
|
280
|
+
# Derby supports multiple rows for VALUES in INSERT.
|
327
281
|
def multi_insert_sql_strategy
|
328
282
|
:values
|
329
283
|
end
|
@@ -12,20 +12,12 @@ module Sequel
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
# Database and Dataset support for H2 databases accessed via JDBC.
|
16
15
|
module H2
|
17
|
-
# Instance methods for H2 Database objects accessed via JDBC.
|
18
16
|
module DatabaseMethods
|
19
|
-
PRIMARY_KEY_INDEX_RE = /\Aprimary_key/i.freeze
|
20
|
-
Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
|
21
|
-
|
22
|
-
# Commit an existing prepared transaction with the given transaction
|
23
|
-
# identifier string.
|
24
17
|
def commit_prepared_transaction(transaction_id, opts=OPTS)
|
25
18
|
run("COMMIT TRANSACTION #{transaction_id}", opts)
|
26
19
|
end
|
27
20
|
|
28
|
-
# H2 uses the :h2 database type.
|
29
21
|
def database_type
|
30
22
|
:h2
|
31
23
|
end
|
@@ -39,18 +31,16 @@ module Sequel
|
|
39
31
|
@h2_version ||= get(Sequel.function(:H2VERSION))
|
40
32
|
end
|
41
33
|
|
42
|
-
# Rollback an existing prepared transaction with the given transaction
|
43
|
-
# identifier string.
|
44
34
|
def rollback_prepared_transaction(transaction_id, opts=OPTS)
|
45
35
|
run("ROLLBACK TRANSACTION #{transaction_id}", opts)
|
46
36
|
end
|
47
37
|
|
48
|
-
# H2 uses an IDENTITY type
|
38
|
+
# H2 uses an IDENTITY type for primary keys
|
49
39
|
def serial_primary_key_options
|
50
40
|
{:primary_key => true, :type => :identity, :identity=>true}
|
51
41
|
end
|
52
42
|
|
53
|
-
# H2 supports CREATE TABLE IF NOT EXISTS syntax
|
43
|
+
# H2 supports CREATE TABLE IF NOT EXISTS syntax
|
54
44
|
def supports_create_table_if_not_exists?
|
55
45
|
true
|
56
46
|
end
|
@@ -82,7 +72,6 @@ module Sequel
|
|
82
72
|
end
|
83
73
|
end
|
84
74
|
|
85
|
-
# H2 needs to add a primary key column as a constraint
|
86
75
|
def alter_table_sql(table, op)
|
87
76
|
case op[:op]
|
88
77
|
when :add_column
|
@@ -94,6 +83,7 @@ module Sequel
|
|
94
83
|
sqls = [super(table, op)]
|
95
84
|
|
96
85
|
if pk && (h2_version >= '1.4' || op[:type] != :identity)
|
86
|
+
# H2 needs to add a primary key column as a constraint in this case
|
97
87
|
sqls << "ALTER TABLE #{quote_schema_table(table)} ADD PRIMARY KEY (#{quote_identifier(op[:name])})"
|
98
88
|
end
|
99
89
|
|
@@ -168,26 +158,15 @@ module Sequel
|
|
168
158
|
false
|
169
159
|
end
|
170
160
|
|
171
|
-
# Use BIGINT IDENTITY for identity columns that use
|
172
|
-
# the case where primary_key :column, :type=>:Bignum is used.
|
161
|
+
# Use BIGINT IDENTITY for identity columns that use :Bignum type
|
173
162
|
def type_literal_generic_bignum_symbol(column)
|
174
163
|
column[:identity] ? 'BIGINT IDENTITY' : super
|
175
164
|
end
|
176
165
|
end
|
177
166
|
|
178
|
-
# Dataset class for H2 datasets accessed via JDBC.
|
179
167
|
class Dataset < JDBC::Dataset
|
180
168
|
ILIKE_PLACEHOLDER = ["CAST(".freeze, " AS VARCHAR_IGNORECASE)".freeze].freeze
|
181
169
|
|
182
|
-
APOS = "'".freeze
|
183
|
-
Sequel::Deprecation.deprecate_constant(self, :APOS)
|
184
|
-
HSTAR = "H*".freeze
|
185
|
-
Sequel::Deprecation.deprecate_constant(self, :HSTAR)
|
186
|
-
TIME_FORMAT = "'%H:%M:%S'".freeze
|
187
|
-
Sequel::Deprecation.deprecate_constant(self, :TIME_FORMAT)
|
188
|
-
ONLY_OFFSET = " LIMIT -1 OFFSET ".freeze
|
189
|
-
Sequel::Deprecation.deprecate_constant(self, :ONLY_OFFSET)
|
190
|
-
|
191
170
|
# Emulate the case insensitive LIKE operator and the bitwise operators.
|
192
171
|
def complex_expression_sql_append(sql, op, args)
|
193
172
|
case op
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
3
|
Sequel::JDBC.load_driver('org.hsqldb.jdbcDriver', :HSQLDB)
|
4
|
-
|
4
|
+
require_relative 'transactions'
|
5
5
|
|
6
6
|
module Sequel
|
7
7
|
module JDBC
|
@@ -13,16 +13,10 @@ module Sequel
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
# Database and Dataset support for HSQLDB databases accessed via JDBC.
|
17
16
|
module HSQLDB
|
18
|
-
# Instance methods for HSQLDB Database objects accessed via JDBC.
|
19
17
|
module DatabaseMethods
|
20
|
-
PRIMARY_KEY_INDEX_RE = /\Asys_idx_sys_pk_/i.freeze
|
21
|
-
Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
|
22
|
-
|
23
18
|
include ::Sequel::JDBC::Transactions
|
24
19
|
|
25
|
-
# HSQLDB uses the :hsqldb database type.
|
26
20
|
def database_type
|
27
21
|
:hsqldb
|
28
22
|
end
|
@@ -54,7 +48,6 @@ module Sequel
|
|
54
48
|
|
55
49
|
private
|
56
50
|
|
57
|
-
# HSQLDB specific SQL for renaming columns, and changing column types and/or nullity.
|
58
51
|
def alter_table_sql(table, op)
|
59
52
|
case op[:op]
|
60
53
|
when :add_column
|
@@ -144,25 +137,7 @@ module Sequel
|
|
144
137
|
end
|
145
138
|
end
|
146
139
|
|
147
|
-
# Dataset class for HSQLDB datasets accessed via JDBC.
|
148
140
|
class Dataset < JDBC::Dataset
|
149
|
-
BOOL_TRUE = 'TRUE'.freeze
|
150
|
-
Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE)
|
151
|
-
BOOL_FALSE = 'FALSE'.freeze
|
152
|
-
Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE)
|
153
|
-
SQL_WITH_RECURSIVE = "WITH RECURSIVE ".freeze
|
154
|
-
Sequel::Deprecation.deprecate_constant(self, :SQL_WITH_RECURSIVE)
|
155
|
-
APOS = "'".freeze
|
156
|
-
Sequel::Deprecation.deprecate_constant(self, :APOS)
|
157
|
-
HSTAR = "H*".freeze
|
158
|
-
Sequel::Deprecation.deprecate_constant(self, :HSTAR)
|
159
|
-
BLOB_OPEN = "X'".freeze
|
160
|
-
Sequel::Deprecation.deprecate_constant(self, :BLOB_OPEN)
|
161
|
-
DEFAULT_FROM = " FROM (VALUES (0))".freeze
|
162
|
-
Sequel::Deprecation.deprecate_constant(self, :DEFAULT_FROM)
|
163
|
-
TIME_FORMAT = "'%H:%M:%S'".freeze
|
164
|
-
Sequel::Deprecation.deprecate_constant(self, :TIME_FORMAT)
|
165
|
-
|
166
141
|
# Handle HSQLDB specific case insensitive LIKE and bitwise operator support.
|
167
142
|
def complex_expression_sql_append(sql, op, args)
|
168
143
|
case op
|
@@ -1,21 +1,19 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
3
|
Sequel::JDBC.load_driver('Java::net.sourceforge.jtds.jdbc.Driver', :JTDS)
|
4
|
-
|
4
|
+
require_relative 'mssql'
|
5
5
|
|
6
6
|
module Sequel
|
7
7
|
module JDBC
|
8
8
|
Sequel.synchronize do
|
9
9
|
DATABASE_SETUP[:jtds] = proc do |db|
|
10
10
|
db.extend(Sequel::JDBC::JTDS::DatabaseMethods)
|
11
|
-
db.
|
11
|
+
db.extend_datasets Sequel::MSSQL::DatasetMethods
|
12
12
|
db.send(:set_mssql_unicode_strings)
|
13
13
|
Java::net.sourceforge.jtds.jdbc.Driver
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
# Database and Dataset instance methods for JTDS specific
|
18
|
-
# support via JDBC.
|
19
17
|
module JTDS
|
20
18
|
module DatabaseMethods
|
21
19
|
include Sequel::JDBC::MSSQL::DatabaseMethods
|
@@ -36,11 +34,6 @@ module Sequel
|
|
36
34
|
cps.setNull(i, cps.getParameterMetaData.getParameterType(i))
|
37
35
|
end
|
38
36
|
end
|
39
|
-
|
40
|
-
# Dataset class for JTDS datasets accessed via JDBC.
|
41
|
-
class Dataset < JDBC::Dataset
|
42
|
-
include Sequel::MSSQL::DatasetMethods
|
43
|
-
end
|
44
37
|
end
|
45
38
|
end
|
46
39
|
end
|
@@ -1,21 +1,11 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
|
-
|
3
|
+
require_relative '../shared/mssql'
|
4
4
|
|
5
5
|
module Sequel
|
6
6
|
module JDBC
|
7
|
-
# Database and Dataset instance methods for MSSQL specific
|
8
|
-
# support via JDBC.
|
9
7
|
module MSSQL
|
10
|
-
# Database instance methods for MSSQL databases accessed via JDBC.
|
11
8
|
module DatabaseMethods
|
12
|
-
PRIMARY_KEY_INDEX_RE = /\Apk__/i.freeze
|
13
|
-
Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
|
14
|
-
ATAT_IDENTITY = 'SELECT @@IDENTITY'.freeze
|
15
|
-
Sequel::Deprecation.deprecate_constant(self, :ATAT_IDENTITY)
|
16
|
-
SCOPE_IDENTITY = 'SELECT SCOPE_IDENTITY()'.freeze
|
17
|
-
Sequel::Deprecation.deprecate_constant(self, :SCOPE_IDENTITY)
|
18
|
-
|
19
9
|
include Sequel::MSSQL::DatabaseMethods
|
20
10
|
|
21
11
|
private
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
3
|
Sequel::JDBC.load_driver('com.mysql.jdbc.Driver', :MySQL)
|
4
|
-
|
4
|
+
require_relative '../shared/mysql'
|
5
5
|
|
6
6
|
module Sequel
|
7
7
|
module JDBC
|
@@ -13,26 +13,12 @@ module Sequel
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
# Database and Dataset instance methods for MySQL specific
|
17
|
-
# support via JDBC.
|
18
16
|
module MySQL
|
19
|
-
# Database instance methods for MySQL databases accessed via JDBC.
|
20
17
|
module DatabaseMethods
|
21
18
|
include Sequel::MySQL::DatabaseMethods
|
22
|
-
LAST_INSERT_ID = 'SELECT LAST_INSERT_ID()'.freeze
|
23
|
-
Sequel::Deprecation.deprecate_constant(self, :LAST_INSERT_ID)
|
24
19
|
|
25
20
|
private
|
26
21
|
|
27
|
-
# The database name for the given database. Need to parse it out
|
28
|
-
# of the connection string, since the JDBC does no parsing on the
|
29
|
-
# given connection string by default.
|
30
|
-
def database_name
|
31
|
-
Sequel::Deprecation.deprecate("Database#database_name", "Instead, use .get(Sequel.function(:DATABASE))")
|
32
|
-
u = URI.parse(uri.sub(/\Ajdbc:/, ''))
|
33
|
-
(m = /\/(.*)/.match(u.path)) && m[1]
|
34
|
-
end
|
35
|
-
|
36
22
|
# MySQL exception handling with SQLState is less accurate than with regexps.
|
37
23
|
def database_exception_use_sqlstates?
|
38
24
|
false
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen-string-literal: true
|
2
2
|
|
3
3
|
Sequel::JDBC.load_driver('Java::oracle.jdbc.driver.OracleDriver')
|
4
|
-
|
5
|
-
|
4
|
+
require_relative '../shared/oracle'
|
5
|
+
require_relative 'transactions'
|
6
6
|
|
7
7
|
module Sequel
|
8
8
|
module JDBC
|
@@ -14,23 +14,6 @@ module Sequel
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
|
-
# SEQUEL5: Remove
|
18
|
-
class Type_Convertor
|
19
|
-
JAVA_BIG_DECIMAL_CONSTRUCTOR = java.math.BigDecimal.java_class.constructor(Java::long).method(:new_instance)
|
20
|
-
|
21
|
-
def OracleDecimal(r, i)
|
22
|
-
if v = r.getBigDecimal(i)
|
23
|
-
i = v.long_value
|
24
|
-
if v == JAVA_BIG_DECIMAL_CONSTRUCTOR.call(i)
|
25
|
-
i
|
26
|
-
else
|
27
|
-
BigDecimal.new(v.to_string)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
# Database and Dataset support for Oracle databases accessed via JDBC.
|
34
17
|
module Oracle
|
35
18
|
JAVA_BIG_DECIMAL_CONSTRUCTOR = java.math.BigDecimal.java_class.constructor(Java::long).method(:new_instance)
|
36
19
|
|
@@ -45,16 +28,12 @@ module Sequel
|
|
45
28
|
end
|
46
29
|
end
|
47
30
|
|
48
|
-
# Instance methods for Oracle Database objects accessed via JDBC.
|
49
31
|
module DatabaseMethods
|
50
|
-
PRIMARY_KEY_INDEX_RE = /\Asys_/i.freeze
|
51
|
-
Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
|
52
|
-
|
53
32
|
include Sequel::Oracle::DatabaseMethods
|
54
33
|
include Sequel::JDBC::Transactions
|
55
34
|
|
56
35
|
def self.extended(db)
|
57
|
-
db.
|
36
|
+
db.instance_exec do
|
58
37
|
@autosequence = opts[:autosequence]
|
59
38
|
@primary_key_sequences = {}
|
60
39
|
end
|
@@ -128,13 +107,12 @@ module Sequel
|
|
128
107
|
end
|
129
108
|
end
|
130
109
|
|
131
|
-
# Dataset class for Oracle datasets accessed via JDBC.
|
132
110
|
class Dataset < JDBC::Dataset
|
133
111
|
include Sequel::Oracle::DatasetMethods
|
134
112
|
|
135
113
|
NUMERIC_TYPE = Java::JavaSQL::Types::NUMERIC
|
136
114
|
TIMESTAMP_TYPE = Java::JavaSQL::Types::TIMESTAMP
|
137
|
-
TIMESTAMPTZ_TYPES = [Java::oracle.jdbc.OracleTypes::TIMESTAMPTZ, Java::oracle.jdbc.OracleTypes::TIMESTAMPLTZ]
|
115
|
+
TIMESTAMPTZ_TYPES = [Java::oracle.jdbc.OracleTypes::TIMESTAMPTZ, Java::oracle.jdbc.OracleTypes::TIMESTAMPLTZ].freeze
|
138
116
|
|
139
117
|
def type_convertor(map, meta, type, i)
|
140
118
|
case type
|