sequel
9 years agoHave Dataset#empty? ignore order. master
Pete Elmore [Thu, 18 Dec 2014 11:25:17 +0000 (03:25 -0800)]
Have Dataset#empty? ignore order.

This fixes a bug for me where I had called #empty? on a dataset
that I had ordered by a column named by Sequel.as, which did not
exist in the query used for #empty?.

9 years agoFix passing a hash value to :eager association option
Jeremy Evans [Fri, 12 Dec 2014 18:04:35 +0000 (10:04 -0800)]
Fix passing a hash value to :eager association option

This has been broken since a refactoring in July 2008, making it
the longest undetected bug in Sequel that was not present when
the feature was originally committed.

9 years agoFix example usage for `update` with increment expression
Tobias Bielohlawek [Thu, 11 Dec 2014 16:43:06 +0000 (17:43 +0100)]
Fix example usage for `update` with increment expression

Wrap a symbol by `Sequel.expr()` to perform an increment update

9 years agoTreat all PG::ConnectionBad exceptions as disconnect errors in the postgres adapter
Jeremy Evans [Tue, 9 Dec 2014 17:52:08 +0000 (09:52 -0800)]
Treat all PG::ConnectionBad exceptions as disconnect errors in the postgres adapter

Newer versions of ruby-pg have a PG::ConnectionBad exception class
that is used if the connection is bad.  That's probably more
reliable than parsing exception messages, so use it by default in
the postgres adapter.

Still default to checking exception messages for PGError exceptions.
Also, assume all PQconsumeInput() error messages imply disconnection.

9 years agoUse MSSQL-specific schema parsing instead of JDBC schema parsing with jdbc/sqlserver...
Jeremy Evans [Mon, 8 Dec 2014 23:23:26 +0000 (15:23 -0800)]
Use MSSQL-specific schema parsing instead of JDBC schema parsing with jdbc/sqlserver driver

This fixes the autoincrementing primary keys schema spec on
jdbc/sqlserver.  It used to be that the JDBC schema parser was
more robust, which is why it was preferred, but that is no longer
true, so switching to the MSSQL-specific schema parser is better.

9 years agoFix minor fallout from using :auto_increment in schema hashes
Jeremy Evans [Mon, 8 Dec 2014 21:18:29 +0000 (13:18 -0800)]
Fix minor fallout from using :auto_increment in schema hashes

9 years agoDon't assume composite integer primary keys are autoincrementing
Jeremy Evans [Mon, 8 Dec 2014 21:17:51 +0000 (13:17 -0800)]
Don't assume composite integer primary keys are autoincrementing

9 years agoSkip autoincrementing primary key spec on fdbsql
Jeremy Evans [Mon, 8 Dec 2014 20:04:02 +0000 (12:04 -0800)]
Skip autoincrementing primary key spec on fdbsql

fdbsql uses the information schema views for metadata, and they
don't contain whether the columns was a serial column or not.
So keep the default behavior of assuming integer primary keys
are auto incrementing, but skip the spec.

9 years agoParse :auto_increment schema entry correctly on DB2
Jeremy Evans [Mon, 8 Dec 2014 19:19:59 +0000 (11:19 -0800)]
Parse :auto_increment schema entry correctly on DB2

9 years agoConsider integer primary keys as incrementing on Oracle
Jeremy Evans [Mon, 8 Dec 2014 18:58:32 +0000 (10:58 -0800)]
Consider integer primary keys as incrementing on Oracle

Oracle uses triggers to pull values from sequences, and I don't
think it's possible to parse that information out.  Because Oracle
uses NUMBER instead of integer for columns, the default setting
of :auto_increment won't work.

9 years agoAdd :auto_increment key to schema information for primary key columns (Fixes #919)
Jeremy Evans [Mon, 8 Dec 2014 18:33:51 +0000 (10:33 -0800)]
Add :auto_increment key to schema information for primary key columns (Fixes #919)

This includes implementations for the most common adapters
(PostgreSQL, MSSQL, MySQL, JDBC).  It actually works on SQLite too,
though the test is skipped there, because all integer primary keys
are autoincrementing on SQLite.

9 years agoFix handling of schema qualified tables in many_through_many associations
Jeremy Evans [Fri, 5 Dec 2014 22:48:59 +0000 (14:48 -0800)]
Fix handling of schema qualified tables in many_through_many associations

9 years agoMerge commit '12053b3'
Jeremy Evans [Wed, 3 Dec 2014 01:30:08 +0000 (17:30 -0800)]
Merge commit '12053b3'

9 years agoTypo: String Concatenation (Sequel.join) examples
tk [Wed, 3 Dec 2014 00:36:00 +0000 (18:36 -0600)]
Typo: String Concatenation (Sequel.join) examples

Fix typo and offer more natural String Concatenation (Sequel.join) examples.

9 years agoEliminate a hash allocation per dataset action when not sharding
Jeremy Evans [Mon, 1 Dec 2014 20:06:49 +0000 (12:06 -0800)]
Eliminate a hash allocation per dataset action when not sharding

It you aren't sharding, then you don't need to specify a default
:server option.

9 years agoBump version to 4.17.0
Jeremy Evans [Mon, 1 Dec 2014 15:54:31 +0000 (07:54 -0800)]
Bump version to 4.17.0

9 years agoFix some variable shadowing warnings in the specs
Jeremy Evans [Sat, 29 Nov 2014 05:25:43 +0000 (21:25 -0800)]
Fix some variable shadowing warnings in the specs

9 years agoRemove some duplicate hash keys in the specs
Jeremy Evans [Sat, 29 Nov 2014 02:32:45 +0000 (18:32 -0800)]
Remove some duplicate hash keys in the specs

9 years agoFix handling of Sequel::SQL::Blob instances in bound variables in the postgres adapte...
Jeremy Evans [Tue, 25 Nov 2014 22:40:18 +0000 (14:40 -0800)]
Fix handling of Sequel::SQL::Blob instances in bound variables in the postgres adapter (Fixes #917)

This bug dates back to when support for bound variables was first
added.  Basically, escaping bytea values not only escapes the bytea
but also string escapes, which doubles apostrophes.  Since the
resulting value is not used SQL but as a bound variable, PostgreSQL
only unescapes the bytea and does not do the string unescaping first,
leading to the issue.

The pg gem supports using binary encoding for bytea values, which
allows you to use the values without encoding them, so just use
that.  In addition to being more correct, this is almost certainly
faster for large bytea values.

Add an integration test for this issue, to see if any other adapters
are affected.

9 years agoMinor ruby 1.8 fixes for sharded threaded connection pool
Jeremy Evans [Tue, 25 Nov 2014 18:29:55 +0000 (10:29 -0800)]
Minor ruby 1.8 fixes for sharded threaded connection pool

ruby 1.8 doesn't canonicalize require paths, resuting in the
regular threaded pool file beind loaded multiple times.  Fix
that by using require instead of Sequel.require, similar to
how the connection pool loads subclasses.

Just in case something weird occurs and the threaded connection
pool file does get loaded multiple times, add a guard around the
aliasing of the superclass method so it doesn't break the
sharded threaded connection pool.

9 years agoAdd :preconnect Database option for immediately creating the maximum number of connec...
Jeremy Evans [Tue, 25 Nov 2014 17:12:43 +0000 (09:12 -0800)]
Add :preconnect Database option for immediately creating the maximum number of connections

In some cases, connecting to the database can take a long time
even if there isn't high latency between the database and the
application.  In those cases, it would be nice to preconnect the
maximum number of connections on database initialization, reducing
the possibly of high latency during runtime.

For the sharded pools, this creates the maximum number of
connections to each shard.

Previously, this was possible to do manually (using a pair of queues
and an array of threads is one way), but even for the default
threaded pool it is tricky, and it's even trickier for the sharded
threaded pool.  This makes it a simple option to turn on.

For consistency and to make testing easier, make all connection
pools support a max_size method.  As the threaded pools already
supported this, this just adds a method that returns 1 to the
single connection pools.

This is being added as an option to the database instead of a public
method that can called anytime because allowing it to be called at
anytime would introduce race conditions or locking issues.  By
making it an option that is called before the database instance is
returned to the user, this should avoid such problems.

9 years agoWork around regression in jdbc-sqlite3 3.8.7 where empty blobs are returned as nil
Jeremy Evans [Mon, 24 Nov 2014 20:07:24 +0000 (12:07 -0800)]
Work around regression in jdbc-sqlite3 3.8.7 where empty blobs are returned as nil

getBytes returns nil instead of an 0 length byte[] instance in
jdbc-sqlite3 3.8.7.  Add a wasNull check to catch this an return
an empty blob in that case, idea from Karol Bucek.

Details:
https://github.com/jruby/activerecord-jdbc-adapter/issues/605
https://bitbucket.org/xerial/sqlite-jdbc/issue/155

9 years agoFix parsing of dates with jdbc-sqlite3 3.8.7
Jeremy Evans [Mon, 24 Nov 2014 19:52:33 +0000 (11:52 -0800)]
Fix parsing of dates with jdbc-sqlite3 3.8.7

jdbc-sqlite3 3.8.7 broke the parsing of dates via getDate.  Work
around problem by using getString and doing the string to date
conversion in ruby.

See the following for details:
https://github.com/jruby/activerecord-jdbc-adapter/issues/605
https://bitbucket.org/xerial/sqlite-jdbc/issue/156

9 years agoAdd spec and update docs/CHANGELOG for update_or_create fix
Jeremy Evans [Mon, 24 Nov 2014 19:42:39 +0000 (11:42 -0800)]
Add spec and update docs/CHANGELOG for update_or_create fix

Remove unnecessary proc activation while here.

9 years agoAlways return the object from update_or_create
Dave Myron [Mon, 24 Nov 2014 07:44:08 +0000 (23:44 -0800)]
Always return the object from update_or_create

Before this change, `update_or_create`ing an existing object with no changes returns `nil`. Now it will always return the object.

9 years agoAdd Dataset#server? and Database#sharded?
Jeremy Evans [Fri, 21 Nov 2014 20:55:08 +0000 (12:55 -0800)]
Add Dataset#server? and Database#sharded?

This is used both to simplify some code and as an optimization.
Instead of checking if the dataset already has a server defined
in the calling code, Dataset#server? can be used to set a default
if it isn't defined.  To avoid cloning the dataset in the unsharded
case, server? calls sharded? on the Database, and returns self if
true.

9 years agoTypo: ds3 is built on ds2 (not ds)
tk [Fri, 21 Nov 2014 16:56:54 +0000 (10:56 -0600)]
Typo: ds3 is built on ds2 (not ds)

9 years agoFix server used by Dataset#insert_select on PostgreSQL
Jeremy Evans [Thu, 20 Nov 2014 19:17:24 +0000 (11:17 -0800)]
Fix server used by Dataset#insert_select on PostgreSQL

This regression occurred between 4.12.0 and 4.13.0, due to the
fact that Dataset#insert was no longer called.  This introduces
a slight slowdown due to the dataset clone, hopefully that can
be avoided in the future by adding a new method.

9 years agoAdd note about asking for help to the README (Fixes #912)
Jeremy Evans [Tue, 11 Nov 2014 19:08:40 +0000 (11:08 -0800)]
Add note about asking for help to the README (Fixes #912)

This was mentioned in a few other places, but it makes sense to
have it in the README.

9 years agoUpdate document to not use core extension
Lin Jen-Shin [Tue, 11 Nov 2014 05:40:14 +0000 (13:40 +0800)]
Update document to not use core extension

9 years agoFix server used for deleting model instances when using sharding
Jeremy Evans [Mon, 3 Nov 2014 16:36:09 +0000 (08:36 -0800)]
Fix server used for deleting model instances when using sharding

This was previously only handled correctly in the unoptimized case,
not in the optimized case.

9 years agoFix typo in 4.16.0 release notes
Jeremy Evans [Sat, 1 Nov 2014 17:21:27 +0000 (10:21 -0700)]
Fix typo in 4.16.0 release notes

9 years agoBump version to 4.16.0
Jeremy Evans [Fri, 31 Oct 2014 22:49:22 +0000 (15:49 -0700)]
Bump version to 4.16.0

9 years agoDOC: Fix typo in association_basics.rdoc
Anton I. Sipos [Thu, 30 Oct 2014 21:22:28 +0000 (14:22 -0700)]
DOC: Fix typo in association_basics.rdoc

9 years agoMake Database#create_table? and #create_join_table? not use IF NOT EXISTS if indexes...
Jeremy Evans [Tue, 28 Oct 2014 22:44:34 +0000 (15:44 -0700)]
Make Database#create_table? and #create_join_table? not use IF NOT EXISTS if indexes are being added (Fixes #904)

If indexes are being added after CREATE TABLE, there is no way
to use CREATE TABLE IF NOT EXISTS, you have to check for existence
manually.

9 years agoFix typo in migration doc
Jeremy Evans [Tue, 28 Oct 2014 22:00:33 +0000 (15:00 -0700)]
Fix typo in migration doc

9 years agoUpdate CHANGELOG
Jeremy Evans [Thu, 23 Oct 2014 19:17:37 +0000 (12:17 -0700)]
Update CHANGELOG

9 years agoAllow Dataset#distinct to use a virtual row block.
Chris Hanks [Thu, 23 Oct 2014 18:26:23 +0000 (14:26 -0400)]
Allow Dataset#distinct to use a virtual row block.

9 years agoRecognize disconnect errors in the postgres adapter when SSL is used (Fixes #900)
Jeremy Evans [Thu, 23 Oct 2014 14:53:01 +0000 (07:53 -0700)]
Recognize disconnect errors in the postgres adapter when SSL is used (Fixes #900)

9 years agoDrop/mark unused variables
Piotr Szotkowski [Fri, 17 Oct 2014 20:21:54 +0000 (22:21 +0200)]
Drop/mark unused variables

9 years agoDrop void variable use
Piotr Szotkowski [Fri, 17 Oct 2014 20:16:54 +0000 (22:16 +0200)]
Drop void variable use

9 years agoHandle variable shadowing warnings
Piotr Szotkowski [Fri, 17 Oct 2014 20:12:17 +0000 (22:12 +0200)]
Handle variable shadowing warnings

9 years agoStop converting '' default values to nil default values on MySQL
Jeremy Evans [Thu, 9 Oct 2014 19:31:46 +0000 (12:31 -0700)]
Stop converting '' default values to nil default values on MySQL

This has been done every since the MySQL-specific schema parsing
was added in 2.6.0.  I'm sure it was done for a good reason,
most likely because '' was used as a default value even when
the default was NULL.  However, this doesn't seem to be the
case anymore.  As it is useful to differentiate between a
NULL default and an empty string default, it's best to remove
the check.

9 years agoSpeed up Model.primary_key_hash and .qualified_primary_key_hash
Jeremy Evans [Thu, 9 Oct 2014 17:00:19 +0000 (10:00 -0700)]
Speed up Model.primary_key_hash and .qualified_primary_key_hash

The greater speedup is for .qualified_primary_key hash, since that
no longer calls primary_key_hash and then modifies the output.
Instead, it just uses a similar implementation.

In both cases, move the Symbol check first as that is the common
case, and raise an exception via else instead of at the top
of the method.

Also, for composite primary keys, use zip instead of
each_with_index, which should be slightly faster.

9 years agoAdd Model#qualified_pk_hash, for returning a hash with qualified pk keys
Jeremy Evans [Thu, 9 Oct 2014 16:27:53 +0000 (09:27 -0700)]
Add Model#qualified_pk_hash, for returning a hash with qualified pk keys

Now that we have 3 separate internal users of such a method, it
seems worthwhile to add it, as opposed to calling
model.qualified_primary_key_hash directly.

9 years agoMake validates_unique use a qualified primary key if the dataset is joined (Fixes...
Jeremy Evans [Thu, 9 Oct 2014 15:47:39 +0000 (08:47 -0700)]
Make validates_unique use a qualified primary key if the dataset is joined (Fixes #895)

If the dataset is joined, an unqualified primary key reference
could be ambiguous, and would be ambiguous when
class_table_inheritance is used with auto_validations.  This
qualifies the reference in such cases.

Note that there are other unqualified references still in the
query, but those can be qualified by using a :where option,
and don't affect the class_table_inheritance case.

9 years agoMake Sequel::Model.cache_associations = false skip the database's schema cache when...
Jeremy Evans [Mon, 6 Oct 2014 20:13:34 +0000 (13:13 -0700)]
Make Sequel::Model.cache_associations = false skip the database's schema cache when loading the schema

This now makes the option misnamed, since it does more than just
disabling caching the association metadata.  However, any time
you are disabling caching of the association metadata, you are
probably also going to want to disable schema caching, so this
should make the option more usable in practice.

9 years agoMake Database#foreign_key_list work on Microsoft SQL Server 2005
Jeremy Evans [Thu, 2 Oct 2014 21:49:07 +0000 (14:49 -0700)]
Make Database#foreign_key_list work on Microsoft SQL Server 2005

Apparently if the order clause is not qualified, things still work
on newer versions of MSSQL, maybe because it uses the SELECT list.
However, it's bad practice to rely on that fact, and MSSQL 2005
apparently needs the order clause to be qualified for this to work.

9 years agoMake create_table with :foreign option reversible on PostgreSQL
Jeremy Evans [Wed, 1 Oct 2014 18:28:43 +0000 (11:28 -0700)]
Make create_table with :foreign option reversible on PostgreSQL

Now that we support dropping foreign tables, creating foreign
tables should be reversible.

9 years agoMake drop_view(:view_name, :foreign=>true) drop foreign tables on PostgreSQL
JohnnyT [Wed, 1 Oct 2014 17:00:20 +0000 (11:00 -0600)]
Make drop_view(:view_name, :foreign=>true) drop foreign tables on PostgreSQL

9 years agoBump version to 4.15.0
Jeremy Evans [Wed, 1 Oct 2014 15:46:26 +0000 (08:46 -0700)]
Bump version to 4.15.0

9 years agoMake AssociationReflection#reciprocal not raise error if associated class contains...
Jeremy Evans [Tue, 30 Sep 2014 19:13:42 +0000 (12:13 -0700)]
Make AssociationReflection#reciprocal not raise error if associated class contains association with invalid associated class

Previously, if model A has an association with model B, and
any associations in model B reference an invalid class,
calling reciprocal on the association reflection between model
A and model B would raise a NameError.

While this is good in that it alerts you to an error, I don't
think it's reciprocal's place to do so.

I'm on the fence about whether this is a good idea in general,
but for backwards compatibility this should probably go in. The
changes made since 4.14.0 make this more likely to happen in user
code.

9 years agoMake create_view(:view_name, dataset, :materialized=>true) reversible on PostgreSQL
Jeremy Evans [Mon, 29 Sep 2014 19:15:28 +0000 (12:15 -0700)]
Make create_view(:view_name, dataset, :materialized=>true) reversible on PostgreSQL

9 years agoAdd support for creating foreign tables on PostgreSQL using :foreign and :options...
Jeremy Evans [Fri, 26 Sep 2014 18:12:37 +0000 (11:12 -0700)]
Add support for creating foreign tables on PostgreSQL using :foreign and :options create_table options

Testing is currently limited to testing the SQL syntax only.
Unfortunately, real testing is difficult because you need to be
a superuser to use the file_fdw and postgres_fdw extensions (or
at least you must specify an explicit password when using
postgres_fdw).

9 years agoRaise Error if a primary key is necessary to use an association, but the model doesn...
Jeremy Evans [Thu, 25 Sep 2014 23:32:58 +0000 (16:32 -0700)]
Raise Error if a primary key is necessary to use an association, but the model doesn't have a primary key

This is better than failing later with a NoMethodError or worse,
appearing to work but generating bogus queries.

9 years agoAdd note to pg_json extension about using strings as keys (Fixes #889)
Jeremy Evans [Thu, 25 Sep 2014 00:08:35 +0000 (17:08 -0700)]
Add note to pg_json extension about using strings as keys (Fixes #889)

9 years agoMake the Database :nolog option actually work on Informix (Fixes #887)
Jeremy Evans [Tue, 23 Sep 2014 22:35:50 +0000 (15:35 -0700)]
Make the Database :nolog option actually work on Informix (Fixes #887)

9 years agoMake tactical_eager_loading plugin work for limited associations
Jeremy Evans [Tue, 23 Sep 2014 21:02:16 +0000 (14:02 -0700)]
Make tactical_eager_loading plugin work for limited associations

Previously, Dataset#post_load was not called in this code path,
so the tactical_eager_loading metadata was not setup.  Call
post_load explicitly to make sure things are setup.

To avoid eagerly loading associations specified by the :eager
association option in this case this case, move the cascade
handling and integrate it into the elsif and else blocks.
Use the new placeholder literalizer with_dataset method in the
else block to clean up the code.

9 years agoAdd PlaceholderLiteralizer#with_dataset, for returning a new literalizer using a...
Jeremy Evans [Tue, 23 Sep 2014 20:58:58 +0000 (13:58 -0700)]
Add PlaceholderLiteralizer#with_dataset, for returning a new literalizer using a modified dataset

While it doesn't make sense to call methods that would change the
SQL used, since the literalizer uses static SQL, this makes it
possible to change the row_proc or other non-SQL options while
still being able to use the loader, and without affecting the
original loader.

9 years agoSupport active_model 4.2.0beta1 in the active_model plugin
Jeremy Evans [Tue, 23 Sep 2014 17:30:27 +0000 (10:30 -0700)]
Support active_model 4.2.0beta1 in the active_model plugin

This adds a model_name instance method, which is required by the
ActiveModel::Lint tests in active_model 4.2.0beta1.

9 years agoUpdate CHANGELOG and document :nolog informix adapter option
Jeremy Evans [Tue, 23 Sep 2014 15:06:44 +0000 (08:06 -0700)]
Update CHANGELOG and document :nolog informix adapter option

9 years agoInformix adapter updated
Jihwan Song [Tue, 23 Sep 2014 11:30:45 +0000 (07:30 -0400)]
Informix adapter updated
- informix spec added for last inserted id

9 years agoInformix adapter updated
Jihwan Song [Tue, 23 Sep 2014 02:47:58 +0000 (22:47 -0400)]
Informix adapter updated
- nolog option added
- execute_insert now returns last inserted id

9 years agoRemove optional argument for Postgres::{JSON,JSONB}Op#to_record and #to_recordset
Jeremy Evans [Mon, 22 Sep 2014 15:34:19 +0000 (08:34 -0700)]
Remove optional argument for Postgres::{JSON,JSONB}Op#to_record and #to_recordset

PostgreSQL 9.4 beta 1 supported a optional 2nd argument for these
functions, but that was dropped in 9.4 beta 2.

9 years agoAdd note to contributing file about ruby 1.8.7/rspec 1.3 support
Jeremy Evans [Wed, 17 Sep 2014 16:56:23 +0000 (09:56 -0700)]
Add note to contributing file about ruby 1.8.7/rspec 1.3 support

9 years agoRemove date_arithmetic require from fdbsql shared adapter
Jeremy Evans [Wed, 17 Sep 2014 16:43:26 +0000 (09:43 -0700)]
Remove date_arithmetic require from fdbsql shared adapter

9 years agoRemove some spec guards for specs that are now passing
Jeremy Evans [Wed, 17 Sep 2014 16:19:30 +0000 (09:19 -0700)]
Remove some spec guards for specs that are now passing

9 years agoDo not run pending specs by default on RSpec 3
Jeremy Evans [Wed, 17 Sep 2014 16:17:46 +0000 (09:17 -0700)]
Do not run pending specs by default on RSpec 3

Running pending specs can cause lockups on some adapters.  However,
since it can be helpful to check that specs marked pending actually
don't work, add a SEQUEL_NO_SKIP_PENDING environment variable that
will give the previous behavior on RSpec 3.

9 years agoUpdate CHANGELOG and README for fdbsql support
Jeremy Evans [Wed, 17 Sep 2014 16:16:50 +0000 (09:16 -0700)]
Update CHANGELOG and README for fdbsql support

9 years agoIntegrate date_arithmetic fdbsql support into the extension
Jeremy Evans [Tue, 16 Sep 2014 07:05:26 +0000 (00:05 -0700)]
Integrate date_arithmetic fdbsql support into the extension

Also, add mock://fdbsql support to the mock adapter, since the
date_arithmetic specs need it.

9 years agoRemove some unneeded code
Jeremy Evans [Tue, 16 Sep 2014 06:51:40 +0000 (23:51 -0700)]
Remove some unneeded code

9 years agoMake Fdbsql::Connection a subclass of PG::Connection
Jeremy Evans [Tue, 16 Sep 2014 06:31:53 +0000 (23:31 -0700)]
Make Fdbsql::Connection a subclass of PG::Connection

Previously, Fdbsql::Connection was a subclass of Object, and it
contained the PG::Connection.  However, this is inconsistent with
other Sequel adapters, which use the underlying connection object
directly.  In Sequel, DB.synchronize is supposed to yield the
underlying connection object, to make it easy to drop down directly
to the driver layer.  When the connection object is wrapped in a
separate object, this adds an additional, unwanted abstraction
layer, since users no longer get direct access to the underlying
connection object.

While here, move the check_version method to the Database and
call it server_version, since that's the method name most other
adapters use for it.

9 years agoRip out fdbsql automatic query retry logic
Jeremy Evans [Tue, 16 Sep 2014 05:54:51 +0000 (22:54 -0700)]
Rip out fdbsql automatic query retry logic

If the database raises an error, Sequel should raise an error. If
an error is retryable, it's something that should be handled
internally to the database.

This restores the jdbc adapter code to the previous code.

This seems to fix the many_through_many 3 join table case.  Due
to the removal of the jdbc prepared statement override, it does
trigger an additional spec failure on jdbc/fdbsql, related to
stale prepared statements.  However, as that shouldn't be an
issue in production environments (issuing DDL that affects a
concurrent prepared statement), it's safe to just skip that
spec.

9 years agoMake fdbsql adapter spec run on RSpec 1.3+
Jeremy Evans [Tue, 16 Sep 2014 03:58:15 +0000 (20:58 -0700)]
Make fdbsql adapter spec run on RSpec 1.3+

Some of this is simple changes like converting eq to ==. The parts
reliant on stub_const are just being removed completely, as
adapter specs are not unit specs and should not use stubbed objects.

9 years agoUse ruby 1.8 hash syntax so code runs on ruby 1.8.7
Jeremy Evans [Tue, 16 Sep 2014 03:25:07 +0000 (20:25 -0700)]
Use ruby 1.8 hash syntax so code runs on ruby 1.8.7

9 years agoWork around disconnect issue in specs when running fdbsql
Jeremy Evans [Tue, 16 Sep 2014 03:21:04 +0000 (20:21 -0700)]
Work around disconnect issue in specs when running fdbsql

9 years agoReduce diff from master using postfix condition
Jeremy Evans [Tue, 16 Sep 2014 03:19:47 +0000 (20:19 -0700)]
Reduce diff from master using postfix condition

9 years agoDon't use be_true/be_false in specs, removed in RSpec 3
Jeremy Evans [Tue, 16 Sep 2014 02:33:01 +0000 (19:33 -0700)]
Don't use be_true/be_false in specs, removed in RSpec 3

9 years agoAdding FoundationDB SQL Layer adapter
Scott Dugas [Tue, 16 Sep 2014 03:30:57 +0000 (23:30 -0400)]
Adding FoundationDB SQL Layer adapter

Squashed commit of the following:

commit b7bce1421267790bc97a3b4d3ae81161191d4224
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 16:42:22 2014 -0400

    Added fdbsql section to opening databases

commit de3016ba94bd110a7193c3a021389daa87cc4467
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 16:38:46 2014 -0400

    Updated jdbc docs to include fdbsql

commit 9c28d0f52f3363f647fc09cc2ac420f52de3764a
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 16:08:25 2014 -0400

    Got specs running against fdbsql

commit d5a3828cdf9d105fc3915d7e753946459476b11c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 15:33:13 2014 -0400

    Include fdbsql in builtin adapter list

commit 507d7812a05cd394bb1d525127946d93d57c9a3f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 15:27:41 2014 -0400

    Switched to Sequel.require

    this method ensures that it's the same Sequel, and not grabbing,
    for example, part of the fdbsql adapter from your local path

commit 75068c65af93195fc1009cafd7ab8c391c14bd88
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 15:25:56 2014 -0400

    Removed license headers

    These don't appear anywhere else in the source

commit 50f0bb0279a06de705c71647936874c255cef8c0
Merge: 9f9d811 72710d7
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 15:22:19 2014 -0400

    Merge external fdbsql adapter upstream

    Fdbsql adapter was developed outside as a 3rd-party adapter, but now
    it's being merged upstream to be maintained with Sequel proper.

    Merge branch 'fdbsql-external' into fdbsql

commit 72710d7976e013d4b6cc58844468f1851a06c013
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 15:17:58 2014 -0400

    Removed files specific to external adapter

    None of these files are necessary when fdbsql is integrated into
    Sequel

commit 9f9d811279aa51ec925d88fb9ad5b74624708637
Merge: dc999df ace613e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 15:09:38 2014 -0400

    Merge branch 'master' into fdbsql

commit 1f83c49ae3c92afec66b1531004c947f76420206
Merge: ce8ce5c 345c1d5
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Sep 15 14:49:52 2014 -0400

    Merge pull request #13 from ScottDugas/docs2

    Added comments

commit 345c1d5cab7921cfb7e38ada366811051375c17c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 14:34:33 2014 -0400

    Somehow Connection.query got in there twice

    once private and once public, whoops

commit ce8ce5ce9a289002ad10e7e59a16cccdc61e590d
Merge: 27aab48 f18c4f9
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Sep 15 14:08:36 2014 -0400

    Merge pull request #12 from ScottDugas/reorganize

    Reorganize to match Sequel's style

commit be0a3dbccbb06823b531ac5828d0a34e09d43a9e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 12:18:03 2014 -0400

    Document the shared code & privatized one method

commit c522f06a4f4db615bae824d7484a2aad76de7e1e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 12:06:02 2014 -0400

    Document pg specific code & privatized one method

commit f533c261da259dae5fee451815a9dc7297b69ce5
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 11:47:45 2014 -0400

    Document JDBC::Fdbsql

commit f18c4f9d300f7862356337c463a31da5cf17c7be
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 13:43:30 2014 -0400

    publicized bound_variable_arg

commit bfb6e22aa020af51f48f7b1fd93d84b94d872717
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 12:30:21 2014 -0400

    unprivatized Connection.query

    I was right the first time

commit 8372d02b6aa0a1ac01f9c4823950056e7509c980
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 12:23:32 2014 -0400

    privatized adapter_initialize

commit f503511ab15164239a9349598bec01840425e35b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 12:22:25 2014 -0400

    privatized Connection.query

commit 9f249ef867854af47ff4b6dfe24edc0f4129b3a2
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 12:20:47 2014 -0400

    Publicized a method

commit 6e05274ea7e42a51cd35dcd85f01ec4299c4b574
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 11:41:23 2014 -0400

    Rearranged jdbc specific code

commit f24c8f2791fb01b92ac48fb959f545cc4fb603e7
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 11:39:09 2014 -0400

    Rearranged PG specific code

commit 549eafa7af86615f2d078bff0b3a001c2e4b1e34
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 11:20:46 2014 -0400

    Rearranged DatasetMethods

commit a9549023f34a03e25157070c0d860ac963d4d7cb
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 11:13:01 2014 -0400

    Reorganized DatabaseMethods

commit 27aab48b2de26d19640da6f7556063790bd89bcc
Merge: a113120 bdd9903
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Sep 15 10:29:35 2014 -0400

    Merge pull request #11 from ScottDugas/2.0.0

    Require v2.0.0 of the sql layer

commit bdd9903ec0b4e9d2ac5e36732b70dc86ee4af686
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Sep 15 10:09:42 2014 -0400

    Require v2.0.0 of the sql layer

commit a113120d7783873429ef752abc4f002797e960b9
Merge: bb49191 46d9101
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Fri Sep 12 18:31:35 2014 -0400

    Merge pull request #10 from ScottDugas/jdbc

    Jdbc support

commit 46d9101c546af7e6165139630daf36e340d68e9c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 17:47:41 2014 -0400

    Use builtin UnnumberedArgumentMapper

commit 4d2489aedcdc0e4d65027052ba24ff24297fd10e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 17:39:30 2014 -0400

    Removed unnecessary override

    This used to be necessary but the sql layer has a default
    NOT NULL on PRIMARY now, so we don't need to override

commit 299aae190fb5d583caeaccd42321c624cbe8c7c3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 17:35:08 2014 -0400

    Removed jdbc-postgres dependency

    Yeah, not needed

commit fd101f9bc54157cdcdf1847caf14e73fad7a0732
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 17:32:54 2014 -0400

    Updated comment

commit 58529723531e82a87d6ca0b27c9a223b21152478
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 17:00:59 2014 -0400

    Set returning on prepared statements too

commit f626b7c52b11d997cdafb8705777c7d640c44b1b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 16:24:53 2014 -0400

    Handle stale prepared statements

commit 09c886b1f0087dab1622d066be6079d418090487
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 16:07:27 2014 -0400

    Not going to test connection options

    it's just too hard to mock, and it should all be handled by jdbc

commit b71f11d069e522f6d0aa124c911b917e41402489
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 16:01:15 2014 -0400

    Giving up on checking version for jdbc

    I could not get it to test or inject into creation, so I'll wait
    until I have to deal with it.

commit 10d98daf922111d3e327bc3304ff4e164aa7803d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:46:36 2014 -0400

    Retry prepared statements

commit dc999df22a81701251c3a234e413b9d0f88a5f85
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:39:41 2014 -0400

    Pass block along to helper

commit e5702943fb88d92bdd8962d8a97bf03bef82cbd0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:32:23 2014 -0400

    Need another argument in the helper

commit ee2b676de11ecd5824b9a93d86c1bc6d39adaf18
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:30:40 2014 -0400

    Moved variable into helper method

commit fb31df7a7c557cdc209ddd658588ed04db7f9473
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:29:11 2014 -0400

    Added sql parameter for prepared statement

commit 6958eccda29e7cb8ee894588e75fc72c8d8cb948
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:26:40 2014 -0400

    Respond to helper rename

commit b986ab86ac432ec88d1a356b9c5a06729dc00d12
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:25:00 2014 -0400

    Fixed extraneous end tag

commit 4ffc23c28e04df631642c8613403c83bf537ae71
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:22:36 2014 -0400

    extracted prepared statement helper method

    so that fdbsql can retry that part on notCommitted

commit d06e8a9fa8d84e705a6f7582af6d444122cf0b04
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:22:20 2014 -0400

    Made method private

commit 2af9a0ea3046fdd50d02ceb3294de88d2b8e85ad
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 14:19:58 2014 -0400

    execute on connection instead of statement

commit 6d99fb5a06d1969ca13bc292f3e7a3316f3b4bb9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 13:57:23 2014 -0400

    removed prepared statement tests

    I'm just not going to worry about prepared statements for now

commit c477f72cbb51cef26be743eac3501ac766dda1b4
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 13:50:03 2014 -0400

    Only retry 10 times

commit da7508f0ff7b88f6ee69e656ae0e76cc218fdcda
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 13:48:37 2014 -0400

    Only retry in auto commit mode

commit 140e256b89747c44a3c441642aab80d23f6b5727
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 13:37:45 2014 -0400

    retry in the connection

commit 97caddb68dd887f1b694854f0d60c302c8e69aa4
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 13:18:16 2014 -0400

    Extracted helper method

    fdbsql needs to wrap this with a retry loop for NotCommitted errors
    when in autocommit mode.

commit 960708e7f050c3c872e4feebde815f9b134826fc
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 11:56:22 2014 -0400

    Retry unconditionally for NotCommitted

commit f409c00a5bc762e369e94461309741fafd10ad79
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 11:46:03 2014 -0400

    spec don't retry forever

commit 647ae268b628d26a9835224152d02d1d49065ed4
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 11:30:40 2014 -0400

    make sure we don't retry in transactions

commit d0477bd145a3feef31ed65db3f4b88fbe1cdfe5b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 10:23:00 2014 -0400

    jdbc specific database_exception_sqlstate

    jdbc exceptions have a helpful sql_state method

commit fe922e77d0afa7f88c23ad85224456734ceffe02
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Sep 12 10:14:15 2014 -0400

    Prepped fdbsql_spec for jdbc specs

commit a9b25f45ee1d59def95e609b7b874c74dda1e8e0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 17:12:04 2014 -0400

    Point to jdbc branch of Sequel

commit cf7d572c4289fbefa49fc63586b156257f6dd1bd
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 17:11:32 2014 -0400

    Register DateArithmetic extension for pg & jdbc

commit 90802fa3f8b1d470c479523997e783e92f100c70
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 17:03:09 2014 -0400

    Ignore two tests that are temporarily failing

    these should be fixed with 2.1.0 or maybe 2.0.1

commit 7d5969101ed63d9234814fefa6405ca091919cb7
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 16:52:44 2014 -0400

    Specify database_type for fdbsql shared

    this is what's used in the guards

commit ab89ab6ca7dd544d547aebb393c17c1ff85c504b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 16:51:27 2014 -0400

    Just check database_type when guarding group

commit 6c8df1e05d414d094e7fb032ee87357b4aa4a86a
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 16:50:24 2014 -0400

    Revert "Ignore jdbc:fdbsql too"

    When fdbsql specifies the database_type, there's no need to
    have [:jdbc, :fdbsql]
    This reverts commit 33038f90281895d701ba354baa15de96dafadd68.

    Conflicts:
     spec/integration/plugin_test.rb

commit f3184bc00301e4922e943554823335f1a9a08aa0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 14:46:46 2014 -0400

    Fixed parentheses

commit 33038f90281895d701ba354baa15de96dafadd68
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 14:43:36 2014 -0400

    Ignore jdbc:fdbsql too

commit 95851cb81c8f505b389bb7c9d32f8777640e3f2d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 13:40:03 2014 -0400

    reset identifier mangling

    now it will correctly lowercase things for fdb on jdbc

commit 7d2c4f53676ec8cfe36e765c62148041a8246c33
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 13:01:12 2014 -0400

    Correctly rase disconnect errors in jdbc

commit 86f07a5de30f2f84114cb86b6ecbdb8f0916dd5c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Sep 11 11:23:21 2014 -0400

    Moved prepared statement code to PG specific file

    We don't need to do special handling of prepared statements (I think)
    for jdbc, so move that code to pg specific code

commit c472ca4a0751d800a3917f759728ee0a327fe12d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 17:19:52 2014 -0400

    Don't use Sequel.require on pg side either.

commit 87cd7529bcc42a6f66b4f4bceba8e1bdd9517680
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 17:10:24 2014 -0400

    Fully reference constants

    because those modules aren't included here

commit bfe06a3786c40ebb05586a65670881b71c4e1ff2
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 17:03:04 2014 -0400

    Moved execute_prepared_statement to pg code

    jdbc already handles this for us

commit c39dbd9463a5b0cd694b873ac14cfda7af676c7c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 17:01:33 2014 -0400

    removed puts statements

commit 28ec502186c66bf96ce2fbb180674f8f6119ce11
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 17:00:56 2014 -0400

    Moved fetch_rows methods to pg code

commit 375a7a9cb50d9bad100b6d7fb8b8deed75cdddf3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:53:26 2014 -0400

    Use CONVERTED_EXCEPTIONS constant

    so that it can be different on JDBC vs PG

commit b0050aadeaafe8428a767da5ea8d7bf1d87a25d3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:53:17 2014 -0400

    Only pg has to set in_transaction

commit 4dea3155fd263a56e5e58374cf99cc794b74569b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:52:25 2014 -0400

    Moved our exceptions to shared file

commit 516b1c5205d02ab9a0aef3d856e49a3a58b3bc97
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:48:26 2014 -0400

    require pg_types, so that it's there

commit 6a033afc7dbb314de99b44be900857bfe8f5dec5
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:48:17 2014 -0400

    initialize instance variables

commit 86e1a0c8a5605f42dffa47c64ed9f8018b0ae24c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:40:59 2014 -0400

    Moved connect & execute to pg specific code

commit 2d1855725275256d4f3ed2123b6804c358ed4c1f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:35:56 2014 -0400

    Fixed DatasetMethods module name

commit 71911740ca73139f3cb94ca607035ff8c8324d04
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:35:46 2014 -0400

    Moved set_adapter_scheme to pg specific code

commit 024ab21fefe9f80390b831d0dab6451c8812b980
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:31:59 2014 -0400

    Move PGError to pg specific code

commit 88ec5519db9674fb6b589906a43c4cdab66e40f3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 16:30:37 2014 -0400

    Moved code into shared

commit 658174833a25f0916e72f3ddbc5a41aa646ad8c9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 15:50:14 2014 -0400

    Moved Database methods to shared

commit 5c9d57726296c87a0576d3d5226e2ec4dedad213
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 15:44:30 2014 -0400

    Added section on running the unit tests with jdbc

    (in case I get hit by a bus)

commit 38bd5493e57f1c0f8c91d900524d11890ec799b6
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 15:31:03 2014 -0400

    Correctly reference jdbc driver

commit bb491913337063ae0f4ddef467d1059199628074
Merge: 1cd96d4 b45c386
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Wed Sep 10 15:18:37 2014 -0400

    Merge pull request #9 from ScottDugas/prep-for-upstream

    Prep for upstream

commit ea575a0ada072f3b6f46aa93916e64903bda7413
Merge: b45c386 a37503f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 15:03:40 2014 -0400

    Merge branch 'jdbc-support' into jdbc

    Conflicts:
     sequel-fdbsql-adapter.gemspec

commit b45c386955f4d2e3b7052da979f5740b56a5c1fa
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 13:15:41 2014 -0400

    Moved dataset_spec into fdbsql_spec

commit d64881f54554dc15412de1ccaad468d81006408b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 13:14:45 2014 -0400

    Moved database_spec into fdbsql_spec

commit a892f3cd94191fe4d68daf08bc78668aab0ba6f5
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 13:10:41 2014 -0400

    prepped connection_spec to hold all specs

commit 2560cd103ff757b5aa6dbdb827e673debea40d35
Merge: 9348918 f488158
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 12:57:02 2014 -0400

    Merge branch '4.13.0' into prep-for-upstream

    Conflicts:
     lib/sequel/adapters/fdbsql/dataset.rb
    There was one change in dataset.rb which is gone now, added that
    to fdbsql.rb

commit 93489187f91becd00ac1bc26fa1cf8910727709a
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 12:50:29 2014 -0400

    Correctly set DatasetClass

    Had to declare it first; it was using the Sequel::Dataset class

commit fd0a09a460c7814b8d59c174e1ab324a2edec061
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 12:38:39 2014 -0400

    Added necessary require that I missed earlier

commit 0ddd32b9ae8795c1da560042c61b670505d5a4d5
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 12:25:51 2014 -0400

    Moved schema_parsing.rb into fdbsql.rb

commit a37503f8f16cdb47a28900899728b95ad59356b6
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 12:20:12 2014 -0400

    Shell of a jdbc driver

commit d3307b80f4af6f730652ae99e450fee35ed4baa9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Sep 10 10:39:55 2014 -0400

    Allow jdbc SEQUEL_INTEGRATION_URL

commit f4868de2e67ce8bd7e16c769922f896d29ef5932
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 18:17:34 2014 -0400

    Skip pg dependency on jruby

commit aeaaf4fec5adb47a20599be684df2a0f6aa9bf48
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 17:57:27 2014 -0400

    Moved date_arithmetic.rb into fdbsql.rb

commit 7f86e242710bc21aa862a4a7a968540e69d7cbb0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 17:55:57 2014 -0400

    Removed old include calls

commit bc692346f393c2d8fe35b26f4a1de2f01bc9134f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 17:54:57 2014 -0400

    Moved prepared_statements.rb into fdbsql.rb

commit a9c2fec35ae1735ed6ae70b43dcd48bf52dfc70f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 17:52:22 2014 -0400

    Moved features.rb into fdbsql.rb

commit e7335c72bc914fcbab4cfaefd6d9f8392aaa02c3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 17:49:12 2014 -0400

    Moved dataset.rb into fdbsql.rb

commit 746065aae7edef5c505bfb881dd140d9920db0ca
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Sep 9 17:47:29 2014 -0400

    Moved connection.rb into fdbsql.rb

commit 1cd96d443a28d7291c0244b4942320458edac0b2
Merge: 3ae88a6 f488158
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Fri Aug 29 12:50:26 2014 -0400

    Merge pull request #8 from ScottDugas/4.13.0

    Support for sequel 4.13.0

commit f488158f1075cb7e1cae8c83c8188b5bdec0c8c1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Aug 29 12:41:30 2014 -0400

    Use tag for fdbsql-4.13.0

commit 009c978c97578e2f844db440a2d0c04d0d06aab4
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Aug 29 12:25:00 2014 -0400

    Updated README that we support 4.12 & 4.13

commit 91595d472d158b1e2810f44b1a32e51ca3629bd0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Aug 29 12:24:32 2014 -0400

    Added note about past_version potential

commit be427d76757128e3344166e09e36c637e469f472
Merge: 089ea2e 9e9472b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Aug 29 10:38:04 2014 -0400

    Merge branch 'master' into fdbsql

commit c6b1b96f8ba2fc75c9748c77f2cafbc0540c545b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Aug 29 10:31:41 2014 -0400

    Allow versions 4.12 and 4.13

commit 5b2eaa26bf0176284df13411b09060ef0bd43390
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Aug 29 10:07:23 2014 -0400

    Remove open ended rake requirement

commit 3ae88a623d28bfcb564cb441c9310a5f7ba27b97
Merge: 6c27953 4724792
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Thu Aug 28 18:50:14 2014 -0400

    Merge pull request #7 from ScottDugas/ignore-failing-tests

    Ignore failing tests

commit f0c08b259086e17fb3ac047296cc81fd76b394b0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 17:30:36 2014 -0400

    Added missing method

commit 21aad05bdec0c1ba3ef2a5afe81b931df3013a04
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 17:30:26 2014 -0400

    Changed dependencies to 4.13.0

commit 472479220efc0ab005163fdce1d2bffafe35056e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 17:17:28 2014 -0400

    Updated Sequel version in README

commit aa16a72cc0ff75323c5eeb6a266b1af688d2fcf3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 12:51:04 2014 -0400

    Added comment

commit 96fc6ce82e730c291423212a59c2cec0b58272ea
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 12:29:26 2014 -0400

    Updated RUNNING_UNIT_TESTS.md

commit 089ea2e54c8fb55f387f5e1d6625ac98968b823c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:59:55 2014 -0400

    Ignore test that has too many serial columns

    I created a different version that doesn't specify the primary key
    as Serial, so when you drop the constraint it won't conflict with
    the hidden primary key

commit c6dad3175bcf926d9bcd5deab90c9bfded576707
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:57:59 2014 -0400

    Added test skipped in Sequel proper

    the sequel test caused an error, but we can still do some of the
    test, so I added it here

commit 4090f42d6d30072a9e81bcc07f7ebeb7762203f9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:57:07 2014 -0400

    Update sequel dependency in bundle to fork

    this fork has patched the tests to ignore tests that don't work
    with fdbsql. Maybe it will get merged upstream and we won't have
    to point to a fork anymore

commit 18210f5c2adbdf266068fa3e2c10572bd49b9a99
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:45:29 2014 -0400

    Pending last test failing from check constraint

    This test does more, but when I tried to remove just that part
    it ended up with 3 unless calls

commit 80ad8c368fec0575bf7495ee8ad9b07bb5d2db9a
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:32:00 2014 -0400

    fdbsql does not support temporary tables

commit a85838a86239fd0cce0194b0a3e75fd29ae03695
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:29:27 2014 -0400

    Added a comment

commit b855f6ddb35689b0f9e6a557675e2eb689c0de43
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 11:27:21 2014 -0400

    Skip constraint tests for fdbsql

    Fdbsql does not support constraint checks, so skip the entire
    describe block. I wish there was a better way to do this, but it
    looks like there isn't until rspec 3

commit f970510f369ed86555d46837673e1fb1891b7273
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Aug 28 10:46:09 2014 -0400

    Ignore first check constraint spec

    fdbsql doesn't support check constraints yet.

commit 6c27953ba3f222933686b7d88e9f6c7fc10abcb9
Merge: c51bdeb efb87fb
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Thu Aug 28 09:32:01 2014 -0400

    Merge pull request #6 from nathanlws/no-more-strip-table-name-fk-name

    Do not modify constraint names from informatino_schema

commit efb87fbd02534292bde33b16e95afb32823b4c34
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Wed Aug 27 18:15:01 2014 -0400

    Constraint names in i_s are accurate and no longer need modified

commit c51bdeb47b1ca3c3aa4cb9606548ff5ad8ea3b6a
Merge: 92d3e18 d8bf0f7
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Jul 21 11:13:23 2014 -0400

    Merge pull request #5 from nathanlws/new-deferrable-spelling

    New deferrable spelling

commit d8bf0f713f25144b5b83ef5a87c605260120bd6d
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Jul 21 10:01:21 2014 -0400

    deferable is now deferrable

commit 906915e48d51bb81cfd76225171cd49482b85012
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Jul 21 09:54:33 2014 -0400

    Rake is a development dependency

commit 5dd17b2c5e726f7c2d6d9ca214451538f1863989
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Jul 21 09:40:02 2014 -0400

    Stale reference

commit 92d3e18f58fcf3b97d9c16c732acb733f3eaab61
Merge: 7270c25 65315a5
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Jul 7 12:30:38 2014 -0400

    Merge pull request #4 from ScottDugas/last-few-things

    Finishing up Sequel adapter for now

commit 65315a5640ed1e830fc22218ecb0d27f42d2ef44
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jul 7 12:22:34 2014 -0400

    default to localhost

    It seemed to work for me, but not for Nathan without a host provided
    Put a default host in just to be sure. When you use pg directly
    without a host, it will connect to the pg socket, which will, of course,
    not work.

commit 888989efd16ac57c00ab25d79d746e9406ae4380
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jul 7 09:56:56 2014 -0400

    Added closing quote

commit a57602a050f147c9a168500f7d500412e1b6240b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jul 7 09:35:05 2014 -0400

    Updated sql-layer version in gemspec

    should be 1.9.6

commit aeac84ab845d5460cc6dc6ed21c7cdbf7f615d6e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jul 7 09:30:57 2014 -0400

    Change example to use "schema_name"

    This is more consistent with the rest of the sql-layer docs

commit 55fd3d14e3fa5c7a75d827740875388479e51da0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jul 2 12:13:08 2014 -0400

    Handle connect options

commit dcb610a1e825a40de40f3dbc8505246bffbb72e9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jul 2 10:52:58 2014 -0400

    Added specialized adapter method

commit 7270c25cb65f63fa4d8f16df074a2e00de2fd692
Merge: 23e20e5 4ab4f60
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Wed Jul 2 09:25:39 2014 -0400

    Merge pull request #3 from ScottDugas/prepared-statements

    Prepared statements support

commit 969eba0f6c3fa8817af9354bd7cfb6735ead2c35
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 18:42:56 2014 -0400

    Apply notice_receiver option

commit b83b601eaff43c94d92c3fb17000103874b7681d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 17:52:19 2014 -0400

    Return max length for (var)chars in schema_parse

commit 6ed3655f224d952f3aa8fb75d01fe588412986f1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 17:49:38 2014 -0400

    Don't override existing returning options

commit 7fd821f1d07bfbdae7d18eff97ad43ea985c4266
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 17:41:14 2014 -0400

    Upgraded sequel dependency to 4.12.0

commit 4ab4f609ee7514125a69acece200c5ce7a139138
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 18:29:44 2014 -0400

    Added specs for checking the version

commit a70e77da87caf6d9f1bc9bb3bfa1781c38f55bee
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 18:20:36 2014 -0400

    updated connection_spec to handle new connect code

    now we set the reciever and grab the sql version

commit 78f810a69d0bc1044a3f137b4e89b564447acf46
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 18:07:43 2014 -0400

    updated connection specs for set_notice_receiver

commit f03c06356b84002294b1b7e36d8ca0d8cc74397c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 17:35:19 2014 -0400

    updated README / RUNNING_UNIT_TESTS

commit a2e1edb7a0ab78af660994ceddd1193dc5584a90
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 17:11:47 2014 -0400

    Removed old code for dealing with not null pk

    It used to be that you had to specify that the primary key would be
    not null, now the sql-layer implicitly sets primary keys to not null

commit 4f07a29f42dd356ffb178ca3c64ea4098bfbc13b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 16:44:01 2014 -0400

    Check that the version is 1.9.6 or greater

commit ee2b1c872d9c24e1adaae2495ac457f13a8a57b0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 16:37:26 2014 -0400

    Swallow warnings

    activerecord does this, and it makes the test output so much cleaner

commit 567dfbac6bac5fb8fee2fedd03ca1f102f8be16b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 16:37:09 2014 -0400

    FDBSQL does not support GROUP BY ROLLUP

    613 examples
    42 failures

commit b96caeeccff2de5c5f653e7ed7f2be83a91019d9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 16:30:59 2014 -0400

    We do not support two phase commit

commit 0deaa48cebd625baca6187588bcca85042bb2940
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 16:00:39 2014 -0400

    Fixed connection_spec for new initialize arg

    just throw a nil in there for the db

commit 288ad4114bbe492e6b9b2186f81648488b80c9bd
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 15:57:27 2014 -0400

    Format blob correctly for bound variable

commit 956bd14017a6c21dcf1e2f49d20dc27007ad5b9d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 15:33:16 2014 -0400

    Handle bound Time variables

commit 847ee758a2d07cba61620b368c7cfdb759cd26f1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 14:30:54 2014 -0400

    cleaned up prepared statement tests

commit 25ed6c5dab29381c67524aab25ce4cf41e235458
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 12:14:13 2014 -0400

    Fixed spec

commit 58d648d156f29a02ff7f8418025bad40c55ee77b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 12:11:32 2014 -0400

    Retry on stale statement error

commit 99f1c2ec40ceada2647bd7bd3d1e6d832e54722f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 12:02:51 2014 -0400

    Added some specs

commit 4f82fee95be124b34ffe18dfc65bd9e394fe0a61
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 11:00:17 2014 -0400

    Execute the prepared statements

commit 56f544a614fefde716c3e7ef0ec26c1bb63c7b36
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 10:54:50 2014 -0400

    prepare statements

commit 1e2bba6cbe55a64b8c68be58d49510d6d63d0d94
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 10:43:37 2014 -0400

    Remove module

    that's only included in one place, and now I don't need the terrible
    name

commit dc049ba8a9a67dec07f8c7548b40ba260e379326
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 10:30:46 2014 -0400

    Copied Basic PreparedStatementMethods from pg

commit 2bb19e0696d478392d02c440be2d76cbb66b8ca1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jul 1 10:02:09 2014 -0400

    Handle non-prepared bound arguments

    You don't have to call prepare, to use bound arguments, handle that

commit cb0fbda0c3783e16b88743f036d17a064af6729c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 16:57:14 2014 -0400

    copied postgres prepared statement code

    Will need to make this work well, and go through for sanity

commit 23e20e5e21337db4e8bba6f49d74f14459226cce
Merge: a59c694 79bef9b
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Mon Jun 30 16:31:21 2014 -0400

    Merge pull request #2 from ScottDugas/supports

    Methods that describe what the database/dataset supports

commit 79bef9b9697c9f3ee79557873660f1a1d325a067
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 16:17:09 2014 -0400

    FDBSQL does support quoted function names

    When I looked at this before I tried doing CURRENTTIMESTAMP which
    is actually a pseudo-column and can't have () or quotes. real functions
    like now() or rand() or concat() can be quoted

commit c801d78b1987465b63b949364c6436b67743c138
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 15:39:13 2014 -0400

    Updated comments on features where we align

commit 28fafc335fb310d19208192c3b9f81d3d80f26be
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 15:30:41 2014 -0400

    FDBSQL does support regexp, yay!

    614 examples
    43 failures

    The drop from before was that I updated to the latest sql-layer master

commit 27eeec0dfa604896da1b5819382563557134723d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 13:01:51 2014 -0400

    last of dataset supports_*? methods

    610 -> 611 examples
    61 -> 62 failures

    The new test/failure is that we support rollup, but there's a bug
    in it. I've added the bug to the trello board.

commit 78744dcfa6268ab69acfff071e9197e133ca6d30
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 12:30:28 2014 -0400

    Moved supports_* from dataset.rb to features.rb

commit c1487a9d99559acbb05658360508109f727351fb
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 12:25:53 2014 -0400

    A bunch of features where we align with super

commit 8877b2e05e16b1d6d56e7499371d7c036f39c771
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 11:48:16 2014 -0400

    We do support IS TRUE

commit c69a4f1af15ebb300fd6f950135b1f56389b86cf
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 11:20:15 2014 -0400

    We support INTERSECT ALL and EXCEPT ALL

commit 60f519583d85fd70193d0bc5e06a89a92591ba08
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 10:41:37 2014 -0400

    We do support GROUP BY ROLLUP but not CUBE

commit b5502eaa95682a18080bef80c0a2b8407cd2acc3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 30 10:41:25 2014 -0400

    We don't support distinct on

commit 5c9c4953f780898d15cd9430013099c8f3dcf2bf
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 17:09:54 2014 -0400

    A bunch of things we align with super

commit 1891191ed29fa12182ce82f6da421ecb8638bfd3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 17:09:41 2014 -0400

    Include DatasetFeatures in Dataset

    yeah, that would be helpful

commit 040b7f54b65c322fb44f325d279e12b7c1837d27
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 16:38:53 2014 -0400

    Started implementing Dataset features list

    The first ones align, but I wrote some specs to be sure

commit 1dc96000044bc76fcc5760b1d91d3bc3675e7300
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 16:36:18 2014 -0400

    Stop constant redefinition warnings

commit 0b5264020d1f2d6d4b20c363be166821e18dd0b0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 16:18:59 2014 -0400

    Renamed Features module to DatabaseFeatures

commit 29b24a04cc3b165d1bf0224bf11966aebe5e666c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 16:11:50 2014 -0400

    Finished with index parsing

commit 5101b4b2aaf5429f22d77e2eb2b39f3bcd9dbc28
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 15:52:54 2014 -0400

    Switch to USING construct on join

commit 91228a084da3534a29d90f1f622e3f1da1c74825
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 15:39:49 2014 -0400

    Removed TODO comment

commit ec5235df5eb640ad373405599e160745fd2e47a7
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 15:39:11 2014 -0400

    A little more cleanup on schema parsing

commit 4b5a4e9f3f3864d8067e175103747c430d078785
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 15:33:54 2014 -0400

    Extracted a couple helper methods in SchemaParsing

commit a69ddb59a82c6e35b3e64ac30bf24cb342a6b2af
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 15:19:35 2014 -0400

    Made method private

commit fd1d7952d0b4c6007bec8f49bc73679be2973218
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 15:01:11 2014 -0400

    Added index parsing

    608 -> 610 examples
    61 -> 61 failures

commit 95a1135548e36d88a5b56b9c9520a84cd3621586
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 12:54:41 2014 -0400

    Use row[:name] as foreign_keys key

    no need to compute constraint_name when calculating keys.
    This commit marks the end of the foreign_key parsing

    605 -> 608 examples
    61 -> 61 failures

commit 8576dd8fa0c5718596d94f0dab7282dc4548d5c4
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 12:48:28 2014 -0400

    Strip table name out of constraint name

    The tests are passing, but there's some puts calls to remove, and
    cleanup to do

commit 0918ce29e185a3d22115533a6cf68ed1451d903e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 12:41:23 2014 -0400

    Split foreign key search into two queries

    as one query it got the cross product for keys and columns, which
    isn't what we want, so do one query to get all the source columns
    and another query to get all the destination columns

commit 29ec8a38becb064c747541e39f8c5ea79a9d6008
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 27 10:49:54 2014 -0400

    Most of foreign key parsing

    I kind of just wanted to commit before going forward, it doesn't
    pass the specs yet.

commit e44ab400acb7f9a4b7a0460691fc35992e2b6cc8
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 16:49:44 2014 -0400

    Split out SchemaParsing module

    the main database file was getting awfully big with sql
    for parsing out the schema, so I split that out into it's own file

commit fc4263742791fd7fe194d3dd3886905cb8b179fe
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 16:40:47 2014 -0400

    More things FDBSQL doesn't support

commit f6d7a9e3493203916eee77dffb21dea7b6ad52fd
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 16:18:24 2014 -0400

    More things we don't support

commit 32f2708156569402ddf64e2e4e9015ffd9057639
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 16:08:22 2014 -0400

    No need to say we support schema_parsing

    It just falls back to whether the method is implemented, which it is

commit a8de5fde0433d6d11e8e1fc805c5391e1863c301
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 16:08:08 2014 -0400

    We don't support isolation levels

commit f62b90215c80eb88b09094af4656c6fa3d76a87b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 15:55:48 2014 -0400

    Correctly return complex pks when using insert

    605 -> 605 examples
    91 -> 91 failures (excluding that last revert)

commit 7344c439ced54098114ff359415be4c1aff924cf
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 15:51:29 2014 -0400

    Revert "Only return first primary key"

    This reverts commit 9957a0e5fcbf4a9b7df14a4e95be4c73dc4534bc.
    I think I can actually return the complicated primary key

commit 9957a0e5fcbf4a9b7df14a4e95be4c73dc4534bc
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 15:22:55 2014 -0400

    Only return first primary key

    It looks like this is what Sequel expects, although I don't like it

    605 -> 605 examples
    92 -> 61 failures

commit 1f71c8ded25aded7bd87d05f72243d66d58518ad
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 15:10:31 2014 -0400

    Implemented views method

    it just returns a list of the views in the schema

    It looks like I broke a bunch of things by changing primary_key,
    I will change it back, and then the failures should return to 61
    integration specs
    603 -> 605 examples
    61 -> 92 failures

commit eda3f295cd32e6f89812270ed11addd97fa42729
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 14:39:28 2014 -0400

    Fixed schema_parse_table for other schemas

commit 74c772d66143d4304273c321b909abe0317fe7a9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 14:32:36 2014 -0400

    Switched primary_key to use Sequel syntax

commit 85c3509fd6563794332f0c341ff1d083b908a630
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 13:53:14 2014 -0400

    Added a bunch of specs for primary_key

commit 1e0cfecd27712b304e8973453cc350c238cc1964
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 12:24:42 2014 -0400

    Updated spec to expect Sequel error on not commit

    We now wrap the exception, yay!

commit cf3cd49f373e15490b95fb5c21feb31f3f11c828
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 12:23:44 2014 -0400

    Redid schema_parse_table with Sequel syntax

commit 61494c6a90d61bc5219d301ae3fe210be51736f3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 11:44:57 2014 -0400

    Switch to using Sequel syntax for #tables

commit 6e7af92f6d8b22ee37a1cc8e667af8bccc697d14
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 11:01:37 2014 -0400

    Support getting the list of tables

    601 -> 603 examples
    61 -> 61 failures

commit 3f8ed6e8f0be888ec5cbde46c8e54dde5685565a
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 10:29:57 2014 -0400

    FDBSQL does not support savepoints

commit 47a06425647924d09e5c3ccac032c12944c52e6b
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 10:26:47 2014 -0400

    TODO later prepared transactions

commit 2a810a89af75ea4712b794eb6592af1b61f8cb0f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 26 10:23:32 2014 -0400

    We do not support partial indexes

    and a couple TODOs to go back to

commit 41de4e9eaa2d7f48acb683f79967e9468d205507
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 25 17:37:46 2014 -0400

    We support foreign key deferrable constraints

    Also transactions handle errors on commits correctly

    600 -> 601 examples
    61  -> 61  failures

commit e51eb237fe5abc64ea610d1f1fd01ff4a509d03c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 25 16:26:48 2014 -0400

    We don't support any kind of deferrable constraint

    At least the parser fails, it does list it in the schema table, but
    I found no evidence that we actually support making a constraint
    deferrable

commit f10948c66d70275ca9a41f61b5fc05de249969ec
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 25 16:01:16 2014 -0400

    Split Supports methods into Features module

commit dba55a09039fb00636941814c5dd946b97013e0d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 25 15:56:28 2014 -0400

    Explicitly don't support deferred constraints

commit f4d020f4b61f34a5de295f06f9421dd50772eca1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 25 15:53:11 2014 -0400

    fdbsql supports CREATE TABLE IF NOT EXISTS

commit 178f7f4f8c6bdd78b3d5ea29c73d2e6733c85a59
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 25 15:52:55 2014 -0400

    Fdbsql does not have a global index namespace

commit a59c694fd7a55fff4fb2c20916729de295ac9226
Merge: 3db5c12 57fc8d1
Author: Nathan Williams <nathanlws@gmail.com>
Date:   Tue Jun 17 17:17:05 2014 -0400

    Merge pull request #1 from ScottDugas/tests

    Mostly implemented foundationdb adapter

commit 57fc8d1be4ed670b8f390374c3c3131488c9111e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jun 17 10:47:20 2014 -0400

    Removed stale comment

commit a43262a8b82f350de8940e2173e04e19968d630f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jun 17 10:37:36 2014 -0400

    Cleaned up error class conversion code

    Some of the fallback regex's weren't correct or relevant

commit eec77bc0ee1f0706e83b211c17223e31740cb3e9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jun 17 09:28:47 2014 -0400

    Removed commented out code

commit 75a6b69612d3d725fad6de6e74821ddb3ab57f42
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 17:00:56 2014 -0400

    a bit of comment cleanup

    and whitespace

commit 5e42e9dc401ff05196d7886b4484612007731f53
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:58:52 2014 -0400

    descriptions in the Rakefile

commit 893b6c47da81aa3cf898f0c73f9e17855f9f6c87
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:57:55 2014 -0400

    doc isn't in the spec directory

commit 22280a7a797da2631908fc49a21787b4a2609675
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:57:09 2014 -0400

    Updated expected failures

    just in case someone comes along and runs the tests

commit d26150fda499097a1e805cc955262e9c83060976
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:55:59 2014 -0400

    There is no stable version yet

    thus I removed it from the readme

commit 55760cb4e56567efebdb93f4e6f12c9c71412d77
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:46:12 2014 -0400

    ADded specs for schema parsing

    these are the cases that I thought looked a bit risky

commit 6fc444dad53024d0f7df4d7973ce0266de567a01
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:09:09 2014 -0400

    Cleaned up spec a bit

commit ac6d6de18122c0a18d09262809d09ac8f1d5cb2c
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 16:06:54 2014 -0400

    Only need remove_transaction

    Due to some testing I discovered overriding commit_transaction
    and rollback_transaction were unnecessary

commit 04ff5a59321ea917c3468c4371e8a628498fa4f0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 15:52:53 2014 -0400

    Added regular spec step to unit test instructions

commit 2120bd4278a5b35273e641e92e3f4701bfbfa9a3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 15:50:30 2014 -0400

    Moved not committed retries to connection

    because transactions don't actually use the database, it doesn't
    really make sense for not committed errors to be on the db
    this makes it more consitent and a little clearer what's going on

commit 87ff1182f570971039257733f7bb2b4779b96fb7
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 11:35:11 2014 -0400

    Added quick start to README

commit 41ee5f3fe8d4dc9a091ebff38b87ce720dd23578
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 11:25:05 2014 -0400

    Bump require sql layer version

    there's a bunch of bugs that definitely won't be fixed until 1.9.6

commit 4ce9e6c4c797bbe3db8b34e0e856df426ba1c61a
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 11:17:44 2014 -0400

    append WITH DATA for create table as select

    We require WITH DATA or WITH NO DATA.

    600 -> 600 examples
    66 -> 66 failures

commit 013109fcd26b8623c95cbd91163b01d958174845
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 16 11:12:32 2014 -0400

    Retry not_committed autocommit statements

    transactions still have to be handled by the user, but if it's a
    single autocommit statement, we retry 10 times to get it to work

    600 -> 600 examples
    89 -> 66 failures

commit bd02684c65e27b0709ecebf84969883d050b1702
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 13 17:04:28 2014 -0400

    Override date arithmetic adding support for fdbsql

    We have to create our own extension, and make sure it's loaded after
    the builtin one.

    600 -> 600 examples
    91 -> 89 failures

commit 0783e130ccac7491a65e4f4d05c6e8a234aeb13f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 13 14:35:14 2014 -0400

    FDBSQL does not support usecs in the timestamps

    only whole seconds here.

    600 -> 600 examples
    94 -> 91 failures

commit 7eb99ec6b905c56bf38023ca1bd3b9cef3d9a646
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 13 14:29:51 2014 -0400

    Support for application timezone

    The application can have a timezone that's different from the db
    so we need to convert back into the application's timezone when
    reading out.

    600 -> 600 examples
    98  -> 94 failures

commit cfd056662aad088c23da5f3c862a2d67e8eb4a3e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 13 13:36:13 2014 -0400

    Override alter_table_op_sql for fdbsql

    this makes alter column work in a couple more instances

    600 -> 600 examples
    101 -> 98 failures

commit 79ff252a2af6bbec5383b2188ba62b5b94f18e49
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 13 12:04:38 2014 -0400

    More correct schema parsing

    It was having problems if there were multiple constraints on a column

    600 -> 600 examples
    104 -> 101 failures

commit 9ec916616422259fef17657cd30ae66db2cee7c0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 13 10:26:09 2014 -0400

    If a decimal has 0 scale, treat it as a ruby int

    0 scale means there's nothing after the decimal point
    600 -> 600 examples
    105 -> 104 failures

commit e26f186c6c331ea3853dfee240c1d3ce0ae199a6
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 17:33:21 2014 -0400

    Don't expect quotes on default string values

    fdbsql just returns the string value, not a quoted string value
    so we don't need to normalize like those other dbs

    600 -> 600 examples
    106 -> 105 failures

commit 403eb0b2b4c96f8fa6756c62fcf65c3ccb53dbf3
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 17:05:25 2014 -0400

    Support input/output identifier methods

    I'm not entirely sure why these exist, but the tests pass, and
    someone at sequel wanted them

    600 -> 600 examples
    108 -> 106 failures

commit 0e748dc46528343978ab822e5820c49479465ea2
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 16:39:42 2014 -0400

    convert is_nullable from YES/NO to boolean

    600 -> 600 examples
    110 -> 108 failures

commit 765ab00fe51994dad3f4e45bb745ba337a765e73
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 16:36:07 2014 -0400

    Encode blob literals as hex strings

    600 -> 600 examples
    112 -> 110 failures

commit 750f71b5cebd9dd42a41f83ef277e7cd3f334cd6
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 16:22:07 2014 -0400

    replace infix bitwise operators with functions

    Now the bitwise stuff in the dsl works.

    600 -> 600 examples
    117 -> 112

commit e1403b744926ce979afdac24e3861fa9a7eacb11
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 15:39:44 2014 -0400

    Return primary keys when parsing schema too

    Postgres does, and apparently it's expected.

    600 -> 600 examples
    123 -> 117 failures

commit 7f5cb5cab9d3d64bb84b599f6b7064b18d894242
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 13:32:02 2014 -0400

    Created custom table generator for not null PK

    FDBSQL doesn't automatically add NOT NULL to columns marked as a
    primary key; it just throws an error. FDBSQL should be changed, but
    in the meantime a custom generator is needed for composite primary
    keys.

    600 -> 600 examples
    173 -> 123 failures

commit 8d847c86588f3f5b7237d61fdc8c3aedbc4e0352
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 12 10:24:24 2014 -0400

    Set not null implicitly if primary key is set

    Every other db allows you to just say PRIMARY KEY without specifying
    NOT NULL. There's a trello card to make fdbsql do the same, but
    for now we need to explicitly set the NOT NULL. This is directly
    necessary to make the TimestampMigrator work.

    600 -> 600 examples
    206 -> 173 failures

commit f4d8636138c909cf14e2eed5b87f18e6b58d4590
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 11 16:40:57 2014 -0400

    Run specs in the sequel path

    We need to change to the sequel gem path before running the specs
    so that the migration specs can find the migration files

    600 -> 600 examples
    210 -> 206 failures

commit b8b2db1d267efafe27eeb5081a9256f22d2063c2
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 11 16:17:21 2014 -0400

    Consider "true" to be true, not "t"

    fdbsql uses "true" to represent true, but PG_TYPES uses "t"
    600 -> 600 examples
    214 -> 210 failures

commit 8a33c40a4068f495e3446caff113575688be6730
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 11 15:25:03 2014 -0400

    Added support for delete and update returning

    600 -> 600 examples
    215 -> 214 failures

commit d0cef73c252e5673d6b089013120a78b1a99dab1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 11 14:38:09 2014 -0400

    Changed FOR UPDATE to not be inserted

    FOR UPDATE doesn't apply to our transaction model, so it can just
    not be inserted; everything will still work.

    600 -> 600 examples
    217 -> 215 failures

commit 86eb2a15e06c2c3e7dfdde42dc39a7d615515c8e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 11 11:58:48 2014 -0400

    Moved dataset into it's own file

commit c5ad1ed02fcdea51dc9c28eb85b706d424fc1d09
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 11 11:41:28 2014 -0400

    return primary key on insertions

    This requires us to get and cache the primary keys.

    600 -> 600 examples
    223 -> 217 failures

commit 3b86683eebadf295ac79ef8c930be3f2af5d9b59
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jun 10 17:11:43 2014 -0400

    Removed outdated comment

commit 7e9aa78c1c9e00d9ecd8a2ab398a0f1fcc833b60
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jun 10 12:44:25 2014 -0400

    Use sql states for exception types

    the regexes are still there, but only as a weird backup.
    Postgres does both, so I followed suit.

    600 -> 600 examples
    224 -> 223 failures

commit e9d57562b0b24f7461daf71889e83562856e0514
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Tue Jun 10 12:44:25 2014 -0400

    use correct regex for foreign key constraint

    The failing tests were flopping between 225 and 224, hopefully they
    stopped, but I fixed a spec
    600 -> 600 examples
    224 -> 224 failures

commit 909737b690d649bdca8bbd0fdfce76be7a9032aa
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 16:22:34 2014 -0400

    Convert exception for constraint violations

    The list of regexps is copied from postgres; I only updated the
    one for the test I was dealing with to work with fdbsql's slightly
    different messages.

    600 -> 600 examples
    228 -> 224 failures

commit 482aea64e3a6a58aab9ed4dcecf404f9f0acf70d
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 16:22:34 2014 -0400

    Check disconnect errors at connection level

    Other db errors are still caught at the database level.
    This fixed the following test, but I guess broke something else,
    I don't have things set up for good tracking of regressions...
    Sequel::Database should provide ability to check connections for validity
    600 -> 600 examples
    228 -> 228 failures

commit 4020e65ba114233a26139480adcf79daab0b5700
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 16:22:34 2014 -0400

    Swallow exceptions in Connection.close

    This is what postgres does, and allows close to be called multiple times
    without throwing an exception
    600 -> 600 examples
    230 -> 228 failures

commit ab13edd2ead74767c8ba1547aadfdd5b96fe6458
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 16:22:34 2014 -0400

    Wrap exceptions in sequel exception type

    Wraps all PGError exceptions thrown from execute, just like postgres
    600 -> 600 examples
    238 -> 230 failures

commit 6b267391dbc16fd898becbca1040cfaac6d8d2c1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 16:22:34 2014 -0400

    Removed custom implementation of columns

    Now that we have a correct implementation of schema parsing, this
    is no longer needed, and we can just use the base implementation of
    columns

    600 -> 600 examples
    238 -> 238 failures

commit 8c0bef115e12104cc98b09ad6e385ca97a5e095e
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 15:47:05 2014 -0400

    Use correct schema in schema parsing

    It needs to default to "CURRENT_SCHEMA", not ""CURRENT_SCHEMA"" or
    "'CURRENT_SCHEMA'" or "`CURRENT_SCHEMA`". This is why one of the
    tests kept complaining about a 'tags.taggings_count' column which
    clearly didn't exist; it existed on a tags table in another schema.
    Good thing I've been using this db for other tests.

    600 -> 600 examples
    254 -> 238 failures

commit f1f54d43f11e42f036c08c57f5bc4845fa7b5e90
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 14:20:25 2014 -0400

    Fixed naming conflict with instance variable

    I don't know where, or what was setting @columns, but it was being
    set to more than the actual column names.
    This might have introduced a new problem, because some of the tests
    might be failing for not having all the column names they need...

    600 -> 600 examples
    273 -> 254 failures

commit 88924592acc8d7a10e3fd5a63412d43d80b17645
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 12:22:16 2014 -0400

    Convert result values to ruby types

    This uses the PG_TYPES list of converter methods to make various
    result values there actual ruby types (e.g. int)

    600 -> 600 examples
    458 -> 273 failures

commit e42bd2f11b1983541a324c70a6e6abb5f7251e68
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 11:05:57 2014 -0400

    Return res.tuples (count of updates)

    This brought one test forward, and fixed a buncgh of others
    the yield value is still the PG::Result

    600 -> 600 examples
    487 -> 458 failures

commit 5191b58313a724a86c6937e345d1400952413610
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 10:39:18 2014 -0400

    Added Connection.execute

    This causes the following test to pass
      Sequel::Model Simple Associations should handle eager loading
          limited associations for many objects
    600 -> 600 examples
    504 -> 487 failing

commit a321199da1767e65f16769adc35cd5f578a447d0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Mon Jun 9 10:31:54 2014 -0400

    Added support for Insert Returning

    598 -> 600 examples run
    535 -> 504 failures

commit a1d40863bd6a29dc1a1fa62502a7a4ba1052e3d1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 6 14:06:52 2014 -0400

    Use serial type instead of autoincrement

    good for creating primary keys

commit 792b7543983e3b51cd3ceb728998778750c36a65
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 6 12:42:56 2014 -0400

    Removed regex filtering out sql statements

commit 2d0ea1f34df4d08c7551ff27444658d4c466a432
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 6 11:20:03 2014 -0400

    Added WARN: DROP_TABLE IF EXISTS note

    People might get worried about all the WARN lines printed out in
    the test output

commit 7fe09b4737b142f2eef124ed91f0fe6aea3343a9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 6 10:51:41 2014 -0400

    Successfully create tables

    This passes the test:
    Database schema modifiers should create tables correctly
    and a bunch of others, so now 57 tests are passing
    was 5

commit 693162e8aa6f35db94db026afcce18c75e1f3695
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Fri Jun 6 09:45:17 2014 -0400

    Updated comment to be more relevant

commit 8eee2f5a3243df44173b9fcc4480a11349d33b55
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 16:56:54 2014 -0400

    Almost parse schema table, rows need to be symbols

commit 4598fd306d7337365348907aba4970546508d212
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 11:56:54 2014 -0400

    Restrict to not use 2.99.0

    it seems like that's basically 3.0.0, so I'm a bit cautious of using it

commit 3aa252dd9c50f1fb2cde0246e19a833378d16f84
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 10:20:51 2014 -0400

    DROP TABLE IF EXISTS works

commit e5305dbcd2027532e1ee8e525a0422a0fbd69bc9
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 08:59:37 2014 -0400

    Actually use a pg connection that's for real

    I checked, and it complained that the server wasn't running,
    and failed test, then passed the tests when I started the sql-layer

commit fffb30453c9ed0beec3b731a4cfb1c1e32a18f98
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 08:34:47 2014 -0400

    Added vacuous connection object

commit 873b8c53efdc05853d93092f2335d7d19c78c1d1
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 07:55:47 2014 -0400

    "Pass" drop_table :if_exists (but still not real)

    drop_table? just prints drop_table was called, meaning there should
    be substantially less errors

commit f0cd1335671df6e83214caeb8c2fe00efe4c3a20
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Thu Jun 5 07:55:01 2014 -0400

    Require the lib folder; don't use the gem

    so that you test the current code, not the last packaged code

commit c8fac55cf4f5d3f193fd4c80da7c59f5216379ce
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 17:52:55 2014 -0400

    Added initial docs for running tests

commit 4fb531b418309f4172e9a2e61f60f74274023eae
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 17:45:23 2014 -0400

    Fail if integration uri isn't fdbsql://

    Because that's not useful, you could just run the integration specs
    in sequel

commit a1136446e969b033ad6ee518b57a71f3d37f2cdc
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 17:41:54 2014 -0400

    rspec integration in rake file

    These run all the integration tests from sequel against fdbsql

commit 3db5c12a731f75989a85eb013a15b8935d2607a0
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 11:53:07 2014 -0400

    Vacuous execute method

    Apparently Sequel doesn't try to connect until you try to do something

commit 274f23b2d572f12d9b8121f03cf6794c267d829f
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:49:24 2014 -0400

    add fdbsql schema

    this adds it to the adapter map so that sequel doesn't throw an
    exception

commit 33af57ae951ac1f18884e8016878d03070330e14
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:47:13 2014 -0400

    Require sequel in main ruby file

    Just a little more robust, if you put require 'sql-fdbsql-adapter'
    before require 'sequel' it won't crash

commit a402bd65e972e4dc65d92cdf55e89ee01032a4a6
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:43:40 2014 -0400

    Renamed fdbsql_adapter to fdbsql

    Sequel expects the name to be the same as the protocol

commit 29b0ea16ae71fa90122402a43fdb5fbc0cd7f656
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:38:49 2014 -0400

    Use lowercase sequel gem name

commit 43b902ea2e48a8b9540d3dcdfd264d0a3da26308
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:37:12 2014 -0400

    Made sequel dependency less specific

    gem build gave a warning that it was overly strict

commit 54ec92ef952bedef4b4070804124b4999ad363ee
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:34:06 2014 -0400

    Added pointless adapter shell

commit 32896768d3e000800380e3b6aa3ab7cab1543550
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 10:05:59 2014 -0400

    Added Gemfile,gemspec, VERSION

    gemfile uses gemspec to get dependencies, gemspec uses VERSION for
    the version

commit d70e9b2e3c7936bc2d638d58cb4cea29337963f8
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 09:51:17 2014 -0400

    Initial pass of README.md

    mostly this was copied from activerecord. Quick Start needs lots of
    flushing out

commit 9f535546950a531ba4bc6f7f7bd2d9cea6047d47
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 09:41:07 2014 -0400

    Copied License from activerecord adapter

commit 7b4ea01776eef158638ed05bf92d44309fa36323
Author: Scott Dugas <scott.dugas@foundationdb.com>
Date:   Wed Jun 4 09:37:54 2014 -0400

    Initial commit with default ruby gitignore

    This is taken from github's suggested Ruby.gitignore

9 years agoHandle change to pending specs in RSpec 3
Jeremy Evans [Tue, 16 Sep 2014 17:35:37 +0000 (10:35 -0700)]
Handle change to pending specs in RSpec 3

In RSpec < 3, pending takes the block of pending code.  In RSpec >
3, pending does not take a block, the block should be called after
after the pending call.

9 years agoWork around bug in old versions of MySQL when schema dumping a table with multiple...
Jeremy Evans [Fri, 12 Sep 2014 20:34:28 +0000 (13:34 -0700)]
Work around bug in old versions of MySQL when schema dumping a table with multiple timestamp columns (Fixes #882)

On MySQL, old versions of MySQL complain if you create a table
with multiple timestamp columns unless NULL is explicitly specified
(usually not needed in SQL as it is the default).  On MySQL, when
schema dumping a timestamp column in :same_db mode, explicitly
set :null=>true.  This will be overridden later to be :null=>false
if the column is actually NOT NULL.

This is only done in :same_db mode, as other databases don't have
this issue.

Note that this problem doesn't affect MySQL 5.6, but does affect
MySQL 5.1 and MariaDB 10.0.13.

9 years agoSupport more array types by default in the pg_array extension, such as xml[] and...
Jeremy Evans [Thu, 11 Sep 2014 19:59:45 +0000 (12:59 -0700)]
Support more array types by default in the pg_array extension, such as xml[] and uuid[]

This isn't comprehensive support, but it supports the most common
simple array types that weren't supported.  The remaining unsupported
types probably don't make sense to support as the scalar types
aren't readily usable.  For example, the geometric array types
should really be supported in a geometric extension that
adds support for both the scalar and array types, similar to the
other pg_* types.

9 years agoAdd Sequel::Model.cache_associations accessor, which can be set to false to not cache...
Jeremy Evans [Fri, 5 Sep 2014 21:31:03 +0000 (14:31 -0700)]
Add Sequel::Model.cache_associations accessor, which can be set to false to not cache association metadata

This makes it easier to use Sequel in an environment where code
is being reloaded and classes are being unloaded.  By default,
if you do:

  Album.many_to_one :artist
  Album[1].artist

Sequel will cache certain information, such as the class is Artist.
Let's say you later unload the Artist class and reload it.  Sequel
will still use the reference to the previous class, missing any
changes added by the code reloading (for example if you changed
the default dataset for the Artist class).

With this change, you can do:

  Sequel::Model.cache_associations = false

and Sequel will not cache association metadata.  Instead, it will
recompute it every call.

To make sure this doesn't have negative effects on Sequel as a
whole, you can set the SEQUEL_NO_CACHE_ASSOCIATIONS environment
variable when testing, and it will automatically set
cache_associations to false when testing.

The only fallout from this change is that reciprocal_type for
many_to_one associations now needs access to the associated class
if not cached, so when caching is disabled, if there isn't a
single associated class (such as when using manually creating a
custom polymorphic association), you should manually set the
:reciprocal_type option.

9 years agoAdd split_values plugin, for moving noncolumn entries from the values hash into a...
Jeremy Evans [Fri, 5 Sep 2014 18:58:21 +0000 (11:58 -0700)]
Add split_values plugin, for moving noncolumn entries from the values hash into a separate hash (Fixes #868)

I don't recommend usage of this plugin by default, since it hurts
performance, but if you want to be able to add additional selected
expressions when retrieving model objects, and later save those
objects or compare them to other objects without the additional
expressions, this will allow you to do so.

9 years agoBump version to 4.14.0
Jeremy Evans [Fri, 29 Aug 2014 23:25:27 +0000 (16:25 -0700)]
Bump version to 4.14.0

9 years agoRaise original exception if there is an exception raised when rolling back transactio...
Jeremy Evans [Fri, 29 Aug 2014 15:05:56 +0000 (08:05 -0700)]
Raise original exception if there is an exception raised when rolling back transaction/savepoint

It doesn't make sense to swallow the original exception and raise
the exception raised by the rollback code, as the original
exception is the more important of the two.

9 years agoFix typo, from gferguson-gd
Jeremy Evans [Thu, 28 Aug 2014 19:41:55 +0000 (12:41 -0700)]
Fix typo, from gferguson-gd

9 years agoAllow delayed evaluation blocks to take dataset as an argument
Jeremy Evans [Thu, 28 Aug 2014 18:41:18 +0000 (11:41 -0700)]
Allow delayed evaluation blocks to take dataset as an argument

Previously, delayed evaluations could not take the dataset as an
argument, which means you couldn't have a delayed evaluation
that based its result on the dataset currently being literalized.

For example, if you wanted to have a dataset that had a column
reference that was always qualified to the dataset source, there
wasn't an easy way to do that.  Now you can do:

  d = Sequel.delay{|ds| Sequel.qualify(ds.first_source, :column)}
  ds = DB[:table].where(d)
  ds.sql # SELECT * FROM table WHERE table.column
  ds.from(:t) # SELECT * FROM t WHERE t.column

Note that this breaks backwards compatibility with
Dataset#delayed_evaluation_sql_append, which now takes the
DelayedEvaluation object instead of the underlying callable.

9 years agoAllow more types as filter expressions, only specifically disallow Numeric/String...
Jeremy Evans [Thu, 28 Aug 2014 17:38:57 +0000 (10:38 -0700)]
Allow more types as filter expressions, only specifically disallow Numeric/String expressions

Previously, if a type wasn't recognized, it wasn't allowed.  This
allows you to to use unrecognized types.  Now, such types may blow
up later during literalization if they can't be literalized, but
this allows you to create your own types and use them.

Previously, you could work around this issue by using a placeholder
string:

  where('?', object)

Now you can just use the object directly:

  where(object)

9 years agoUse labeled lists instead of plain lists in more places in the RDoc
Jeremy Evans [Thu, 28 Aug 2014 16:56:07 +0000 (09:56 -0700)]
Use labeled lists instead of plain lists in more places in the RDoc

9 years agoFix issues in RDoc example code
Jeremy Evans [Wed, 27 Aug 2014 23:48:02 +0000 (16:48 -0700)]
Fix issues in RDoc example code

This makes the example code valid ruby, so that it will be syntax
highlighted.

Some other minor RDoc issues fixed as well.

9 years agoRemove objects from cached association array at time of nested_attributes call instea...
Jeremy Evans [Wed, 27 Aug 2014 21:38:37 +0000 (14:38 -0700)]
Remove objects from cached association array at time of nested_attributes call instead of waiting until save

We add the objects to the cached association array at time of
call if we are creating them, so for consistency, we should delete
them from the cached association array at time of call if we are
deleting/removing them.  Issue pointed out by DaVinci on the Google
Group.

9 years agoHandle composite primary keys when working around validation issues for one_to_(one...
Jeremy Evans [Tue, 26 Aug 2014 19:57:28 +0000 (12:57 -0700)]
Handle composite primary keys when working around validation issues for one_to_(one|many) associations in nested_attributes plugin (Fixes #870)

When a model uses a composite primary key, pk is never nil.  The
previous code resulted in the foreign key in the associated object
getting set to an array, which could make validation of the
associated object fail.  This uses the 0 value temporarily in the
composite primary key case, just as it is used in the simple
primary key case.

9 years agoMerge branch 'patch-2' of https://github.com/Luiji/sequel
Jeremy Evans [Tue, 26 Aug 2014 18:51:52 +0000 (11:51 -0700)]
Merge branch 'patch-2' of https://github.com/Luiji/sequel

9 years agoFix some grammar issues in association basics guide (Fixes #867)
Jeremy Evans [Tue, 26 Aug 2014 18:50:24 +0000 (11:50 -0700)]
Fix some grammar issues in association basics guide (Fixes #867)

This is a squashed commit from gferguson-gd.

9 years agoRecognize additional disconnect error in jdbc/jtds adapter
Jeremy Evans [Tue, 26 Aug 2014 18:50:01 +0000 (11:50 -0700)]
Recognize additional disconnect error in jdbc/jtds adapter

9 years agoDon't associate extension rdoc with Sequel module
Jeremy Evans [Tue, 26 Aug 2014 18:38:51 +0000 (11:38 -0700)]
Don't associate extension rdoc with Sequel module

RDoc doesn't differentiate file-level RDoc from RDoc for the first
module, so if you only have one RDoc comment block at the top
of the file, and then a class or module after it, the RDoc comment
will be used for both the file itself and the module.

Add empty comment above Sequel module so that the file level
comment isn't used for the Sequel module.

9 years agoFix error in documentation (two=>to)
Luiji Maryo [Tue, 26 Aug 2014 02:14:01 +0000 (22:14 -0400)]
Fix error in documentation (two=>to)

Documentation had "two" instead of "to".

9 years agoAdd documentation note about using symbols for column names on MySQL for certain...
Jeremy Evans [Tue, 19 Aug 2014 19:26:42 +0000 (12:26 -0700)]
Add documentation note about using symbols for column names on MySQL for certain schema changes

MySQL doesn't have the ability to change the column type, default,
or NULL/NOT NULL setting indepdently, it just has a CHANGE COLUMN
syntax that combines all three settings.  Sequel attempts to parse
the existing values from the schema, but that isn't going to work
unless the column is given as a symbol, since the schema hash is
keyed with a symbol.

9 years agoAdd note about using Model#refresh to get all values in class_table_inheritance plugin
Jeremy Evans [Tue, 19 Aug 2014 19:22:51 +0000 (12:22 -0700)]
Add note about using Model#refresh to get all values in class_table_inheritance plugin

Also add a spec to ensure it doesn't break.