History for sequel/www
Commits on May 29, 2012
Commits on May 27, 2012
Commits on May 24, 2012
ActiveRecord added this support recently, and I think it's a worthwhile extension to have.
…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
Commits on Mar 28, 2012
…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 default. 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.
This is a lot nicer than just directing them to the directory index page.
Commits on Mar 27, 2012
… 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
…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.
…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
…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
…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 queries). 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
…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
…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
…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
Commits on Mar 2, 2012
… 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.
…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
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
…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
Commits on Oct 22, 2011
Commits on Oct 19, 2011
…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
…g Sequel in production
Commits on Sep 18, 2011
Commits on Sep 14, 2011
Commits on Aug 11, 2011
Commits on Aug 4, 2011