Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on May 23, 2014
  1. Add support for the PostgreSQL 9.4+ jsonb type to the pg_json_ops ext…

    This takes the support that previously only existed for the json
    type, and extends it to the jsonb type, similar to the changes
    made to the pg_json extension.
    This does not add support for the new json/jsonb functions or
    the new jsonb operators, that will come in a future commit.
Commits on May 16, 2014
  1. Support PostgreSQL 9.4+ jsonb type in the pg_json extension

    There are not implicit casts between the json and jsonb types,
    so Sequel needs to basically separate the two and use different
    classes for each.  So you have to use Sequel.pg_jsonb to get
    a jsonb type.
    Note that this does not include support for the new jsonb
    functions in pg_json_ops.  For some reason, instead of keeping
    the function names the same and just varying the type, they
    had duplicate functions.  Hopefully this will change before the
    official release of PostgreSQL 9.4.
Commits on Dec 19, 2013
  1. Work with RSpec 3

    This updates the specs to switch be_true and be_false with == true
    and == false, since be_true and be_false are renamed in RSpec 3.
    Avoid deprecations warnings on RSpec 3 by explicitly enabling only
    the should syntax.  This has the benefit of not allowing the expect
    syntax, which is good as that doesn't work on older versions of
    rspec (and Sequel's specs should pass on RSpec 1).
Commits on Jun 18, 2013
Commits on Jun 1, 2013
  1. Remove the deprecated core extensions, and ruby 1.8-specific Symbol e…

    …xtensions from the core_extensions
Commits on May 2, 2013
  1. Deprecate core_extensions if not explicitly loaded

    This adds the main deprecation in Sequel 4, deprecating all of
    the core_extensions methods unless they have been explicitly
    loaded.  This is done by making a copy of the core_extensions,
    and then adding deprecation warnings to all of the methods it
    adds.  If the core_extensions are loaded, its implementation will
    override the default deprecated one, so the deprecation messages
    will go away.
    This also adds the ruby18_symbol_extensions extension for the
    Symbol#{[],<,<=,>,>=} methods, which Sequel previously overrode
    by default on ruby 1.8.  I really want to discourage their use,
    so they are deprecated by default even if the core_extensions
    are loaded explicitly.  You have to load the new extension if you
    want the behavior.
    While working on this, I noticed some of the core extensions
    were not being tested, because the related methods were in an
    included module.  So add specs for those.
    This modifies the core_extensions_spec to handle different types
    of environments via the SEQUEL_DEPRECATED_CORE_EXTENSIONS
    environment variable:
    * missing: runs with just the explicit core extensions and with the
      ruby18 symbol extensions on ruby 1.8
    * OVERRIDDEN: runs with the deprecated core extensions and the
      explicit core extensions, without the ruby18 symbol extensions
    * SYMBOL18: runs with just the deprecated core extensions and the
      the ruby18 symbol extensions
    * OVERRIDDENSYMBOL18: runs with the deprecated core extensions, the
      explicit core extensions, and the ruby18 symbol extensions
    * other value: runs with just the the deprecated core extensions
Commits on Feb 26, 2013
  1. Use simplecov instead of rcov for coverage testing on 1.9+

    Rcov never worked well on 1.9, and the latest version doesn't
    support 1.9+ at all.  SimpleCov uses ruby 1.9+'s native coverage
    library, and appears to work well.
Commits on Feb 13, 2013
  1. Make ilike use UPPER and LIKE instead of ILIKE by default

    ILIKE is a PostgreSQL extension, so Sequel shouldn't default to
    using it.  All other adapters previously override the handling
    for ilike.  Most of them used UPPER in some form, so just make
    that the default and DRY up some adapter code.
    Remove the like_uses_escape? method added recently, and just
    always use ESCAPE.  The only database that didn't support this
    was access, so just override the shared access adapter to not
    use ESCAPE.
    This shouldn't an effect for databases that Sequel currently
    supports.  For databases without special support, this should
    make ILIKE work by default.
  2. The LIKE operators now use an explicit ESCAPE '\' clause for similar …

    …behavior across databases
    Database behavior for LIKE escaping varies.  PostgreSQL, MySQL,
    and H2 seem to use a backslash escape by default, but most other
    databases require an explicit escape.  All tested databases seem
    to support the ESCAPE clause except Access, so just enable it
    by default except on Access.
    This is backwards incompatible for adapters where backslashes
    are not used as LIKE escapes by default and you are using
    a backslash in a LIKE patterns as a non-metacharacter.  The
    workaround is to double the backslash in the pattern.
Commits on Aug 16, 2012
  1. Add constraint_validations extension and plugin

    The extension allows you to create database constraints that mirror
    model validations when creating and altering tables.  It adds
    validation metadata to a separate table.  The plugin reads the
    metadata from that table, and uses it to automatically validate your
    models before saving.
    The advantage to doing so is that your validations are only specified
    in one place, but are enforced both at the model level and at the
    database level.  This is better for data integrity, since it
    enforces the validation for all rows in the database, so changes
    made by external programs or via the dataset layer are still
Commits on Jul 20, 2012
  1. Add support for PostgreSQL row-valued types

    The adapter specs for these were all interrelated, so it was
    easiest to combine them all into a single commit.
Commits on Jul 16, 2012
  1. Require rubygems for the core_extensions specs

    These specs require some pg_* extensions that require json, and on
    1.8 json is not in stdlib and needs rubygems loaded.
Commits on Jul 13, 2012
  1. Don't have pg_* extensions add methods to core classes unless the cor…

    …e_extensions extension is loaded
    This adds methods to Sequel that act as replacements for the
    methods added to Symbol, Array, Hash, and Range by the extensions.
    If the core extensions are loaded, this is backwards compatible,
    as the methods are still added.
    The reasoning here is if you don't want Sequel's core_extensions,
    you probably don't want to add methods to the core classes at all.
Commits on Jul 6, 2012
  1. Remove core_extensions use from the specs

    This moves testing of the core_extensions extension to a separate
    rake task, and makes the remaining specs run without the core
    The idea here is that no internal part of Sequel should depend
    on the core extensions.  Sequel previously had a spec that scanned
    the source to look for possible core extensions use, but that is
    not a fool proof approach.  If specs run clean without the core
    extensions, it's unlikely anything internal uses the core extensions.
Something went wrong with that request. Please try again.