Skip to content
Commits on May 29, 2012
Commits on May 27, 2012
Commits on May 24, 2012
  1. Add pg_inet extension, for working with PostgreSQL inet and cidr types

    ActiveRecord added this support recently, and I think it's a
    worthwhile extension to have.
  2. Add eager_each plugin, which makes each on an eagerly loaded dataset …

    …do eager loading
    This behavior has been requested by multiple people over the years.
    I've always been against changing having all call a method other
    than each for eager loading.  I just recently thought of this
    approach, which doesn't require any changes to the core of Sequel.
Commits on May 23, 2012
Commits on Apr 26, 2012
Commits on Apr 20, 2012
  1. Add dirty plugin to website

Commits on Mar 28, 2012
  1. Add query_literals extension for treating regular strings like litera…

    …l strings in select, group, and order methods
    Sequel's default behavior for these methods, while generally
    consistent internally, is not consistent with the filter handling,
    and I think the filter handling is much more user friendly. If
    there ever is a Sequel 4, it will definitely act this way by
    For SELECT, I sort of understand the default, since selecting
    literal strings can have some uses.  However, since Sequel uses
    hashes and literal strings without aliases aren't really a good
    idea (since you can't control the identifier used), that use
    case is going to be very uncommon.  Both GROUP and ORDER don't
    appear to accept non-integer constants on PostgreSQL (though
    SQLite accepts them), so I can't imagine any breakage there.
    While the usage of literal strings leads to less database
    independent code and less opportunities for introspection, it's
    not necessarily a bad thing in all use cases.  This makes it
    easier to use literal strings in SELECT, GROUP, and ORDER without
    the core extensions' String#lit or Sequel.lit.
  2. Give direct links to release note pages on website

    This is a lot nicer than just directing them to the directory
    index page.
Commits on Mar 27, 2012
  1. The core extensions have now been made a real Sequel extension (still…

    … loaded by default)
    This moves the core_sql.rb file into a real extension that is loaded
    by Sequel.extension.  For backwards compatibility, this extension is
    still loaded by default.
Commits on Mar 23, 2012
  1. Add select_remove extension which adds Dataset#select_remove for remo…

    …ving columns/expressions from a dataset selection
    I don't think this will be used often enough to go into core
    Sequel, and it also has some corner cases that can't be handled
    correctly.  However, some people have been asking for it, and it's
    not the simplest thing to get correct by hand even for the cases
    it does handle correctly, so I think shipping this extension with
    Sequel makes sense.
  2. Add static_cache plugin, for staticly caching all model instances, us…

    …eful for model tables that don't change
    This plugin provides a major speedup for models whose underlying
    dataset is static.  It's designed to work well with the the
    recently committed many_to_one_pk_lookup plugin.
Commits on Mar 22, 2012
  1. Add many_to_one_pk_lookup plugin, for using a simple primary key look…

    …up for many_to_one associations (great with caching)
    This can be a major speed boost to models that have many_to_one
    associations to associated models that use caching, because it
    will generally use a cached lookup first.
Commits on Mar 15, 2012
  1. Add null_dataset extension, for creating a dataset that never issues …

    …a database query
    This is another feature that ActiveRecord will be adding in 4.0.
    Basically, it's the null object pattern for datasets, so you can
    create a dataset that never returns any rows (or issues other
    This is easily implemented as an extension, where Dataset#nullify
    just extends the cloned dataset with a module.
    Note that there may be corner cases on some adapters when using
    non-standard dataset methods.  Those can be dealt with on a
    case by case basis.
Commits on Mar 14, 2012
  1. Add schema_caching extension, to speed up loading a large number of m…

    …odels by loading cached schema information from a file
    This idea is taken from ActiveRecord, which will be adding the
    feature in 4.0.  Basically, when loading a large number of
    models, there may be significant time spent loading the table
    schema for each table from the database, especially in high
    latency situations.
    To work around this, you can cheat by caching the information to
    a file, and then loading the cached file instead of querying the
    database for each table/model, which is what this extension does.
    To make it easy to generate the cached schema files, an -S option
    is being added to bin/sequel that creates the cached schema dump
    file.  It's up to the application to use load_schema_cache to
    preload the schema cache.
Commits on Mar 13, 2012
  1. Add pg_hstore_ops extension, for easily calling PostgreSQL hstore fun…

    …ctions and operators
    Same idea here as pg_array_ops, but this is for hstore operators
    and functions instead of array operators and functions.
Commits on Mar 12, 2012
  1. Add pg_hstore extension, for dealing with the PostgreSQL hstore (key/…

    …value table) type
    hstore is an extension that ships with PostgreSQL that allows you
    to store a key/value table inside a single column, where keys and
    values are both strings (well, values can be NULL).
    The implementation is similar to the pg_array extension, using a
    DelegateClass approach, with a hash used for backing.  Since
    hstore only uses string keys and values, we need to override a lot
    of methods to force input keys/values to strings appropriately.
    Just like pg_array, add a DatasetMethods module for handling
    schema parsing/typecasting, and bound argument support in the
    native adapter.
    Thanks to pvh's sequel-hstore for the idea behind the parser,
    though I significantly changed the implementation.
Commits on Mar 6, 2012
  1. Remove sequel_fast_columns link from plugins page

    The columns_introspection plugin that ships with Sequel does pretty
    much the same thing, and is much better at handling corner cases
    like aliased tables and unaliased expressions.
Commits on Mar 2, 2012
  1. Add pg_statement_cache extension, for automatically preparing queries…

    … when using postgres adapter with pg driver
    When combined with the pg_auto_parameterize extension, this can
    take an entire Sequel application turn most/all of the queries
    into prepared statements.
  2. Add pg_auto_parameterize extension, for automatically parameterizing …

    …queries when using postgres adapter with pg driver
    Note that parameterizing queries doesn't necessarily make things
    faster or more safe by itself.  However, it opens up other
    opportunities for optimization that will be coming shortly.
Commits on Feb 27, 2012
  1. Add arbitrary_servers extension for connecting to arbitrary servers

    With this extension, you just pass a hash of connection options that
    get merged into the default options.  It's designed to work well
    with the server block plugin, making it possible for to use arbitrary
    servers easily, such as per-request in a web framework.
    As you can't be sure if the arbitrary server will be needed again
    do not cache the connection, disconnect as soon as the connection
    is finished being used.
Commits on Feb 25, 2012
  1. Add a server_block extension for scoping database access inside a blo…

    …ck to specific shards
    Multiple people have asked for this over the years, but I only
    recently thought of a good way to do this.  This adds some
    slight refactoring to the connection pools to move the code
    the transforms the given server/shard name into the actual
    server/shard name into it's own method (named pick_server).
    The extension then overrides the method so it will use
    a different default server if one has been defined and no
    specific shard has been set.  To handle nested of blocks,
    the different default servers are stored in an array
    (thread-local in the threaded case), which is used as a
    stack with the current default as the last entry.
Commits on Jan 25, 2012
  1. Fix a couple links on the documentation page

    Also, remove the link to the Merbcamp 2008 presentation, since it
    seems to be broken.
Commits on Oct 22, 2011
Commits on Oct 19, 2011
  1. Add dataset_associations plugin for making dataset methods that retur…

    …n datasets of associated objects
    This makes it easy to do things like:
      Artist.filter(:name > 'M').albums.filter(:name < 'M').tracks
    To get a dataset of tracks where the album's name comes before
    M and the artist's name comes after M.
Commits on Oct 3, 2011
Commits on Sep 26, 2011
Commits on Sep 18, 2011
Commits on Sep 14, 2011
Commits on Aug 11, 2011
Commits on Aug 4, 2011
Something went wrong with that request. Please try again.