Initial commit to add Sybase SqlAnywhere Adapter.

Notes:

Sequel will default the SqlAnywhere adapter to default smallint datatypes to boolean
since SqlAnywhere does not have a boolean native type.  This can be overridden either
at the database level or at the dataset level with the method convert_smallint_to_bool=:

Database override:
Sequel::SqlAnywhere.convert_smallint_to_bool = false
or
db.convert_smallint_to_bool = false

Dataset ovverride:
ds.convert_smallint_to_bool = false

* Added Adapter specific test for this.

Integration Tests Notes:
SqlAnywhere does not implicitly set uniqueness or not null when adding foreign keys or
allow you to drop columns that are foreign keys or part of a constraint without dropping
the constraint first.  So, the following schema_test tests were changed:

spec/integration/schema_test.rb:208
It "should parse foreign key information into an array of hashes"
-    @db.create_table!(:a, :engine=>:InnoDB){primary_key :c; Integer :d; index :d, :unique=>true}
+    @db.create_table!(:a, :engine=>:InnoDB){primary_key :c; Integer :d, :null => false, :unique => true ; index :d, :unique=>true}
needed to make sure foreign key or uniqueness constraint is not violated.

+    @db.alter_table(:a){add_unique_constraint [:d, :c]}
needed to make sure a uniqueness contrainst is added before a composite foreign key is added to
make sure a foreign key or uniqueness constraint exists and not violated.

spec/integration/schema_test.rb:548
It "should add unnamed unique constraints and foreign key table constraints correctly"
-    @db.create_table!(:items, :engine=>:InnoDB){Integer :id; Integer :item_id}
+    @db.create_table!(:items, :engine=>:InnoDB){Integer :id, :null => false; Integer :item_id, :null => false}
needed to make sure foreign key or uniqueness constraint is not violated.

spec/integration/schema_test.rb:611
It "should remove foreign key columns from table correctly"
-    @db.drop_column(:items, :item_id)
+    @db.alter_table(:items){drop_foreign_key :item_id}
Since drop column will only drop a column and drop foreign_key will drop both the fk and column. SqlAnywhere
will not allow a column to be drop if it is part of a fk or constraint unless the fk or constraint
is dropped first.
Initial commit to add Sybase SqlAnywhere Adapter.

Notes:

Sequel will default the SqlAnywhere adapter to default smallint datatypes to boolean
since SqlAnywhere does not have a boolean native type.  This can be overridden either
at the database level or at the dataset level with the method convert_smallint_to_bool=:

Database override:
Sequel::SqlAnywhere.convert_smallint_to_bool = false
or
db.convert_smallint_to_bool = false

Dataset ovverride:
ds.convert_smallint_to_bool = false

* Added Adapter specific test for this.

Integration Tests Notes:
SqlAnywhere does not implicitly set uniqueness or not null when adding foreign keys or
allow you to drop columns that are foreign keys or part of a constraint without dropping
the constraint first.  So, the following schema_test tests were changed:

spec/integration/schema_test.rb:208
It "should parse foreign key information into an array of hashes"
-    @db.create_table!(:a, :engine=>:InnoDB){primary_key :c; Integer :d; index :d, :unique=>true}
+    @db.create_table!(:a, :engine=>:InnoDB){primary_key :c; Integer :d, :null => false, :unique => true ; index :d, :unique=>true}
needed to make sure foreign key or uniqueness constraint is not violated.

+    @db.alter_table(:a){add_unique_constraint [:d, :c]}
needed to make sure a uniqueness contrainst is added before a composite foreign key is added to
make sure a foreign key or uniqueness constraint exists and not violated.

spec/integration/schema_test.rb:548
It "should add unnamed unique constraints and foreign key table constraints correctly"
-    @db.create_table!(:items, :engine=>:InnoDB){Integer :id; Integer :item_id}
+    @db.create_table!(:items, :engine=>:InnoDB){Integer :id, :null => false; Integer :item_id, :null => false}
needed to make sure foreign key or uniqueness constraint is not violated.

spec/integration/schema_test.rb:611
It "should remove foreign key columns from table correctly"
-    @db.drop_column(:items, :item_id)
+    @db.alter_table(:items){drop_foreign_key :item_id}
Since drop column will only drop a column and drop foreign_key will drop both the fk and column. SqlAnywhere
will not allow a column to be drop if it is part of a fk or constraint unless the fk or constraint
is dropped first.
Added smallint to bool for jdbc:sqlanywhere adapter.  Can be overridden at database or dataset level.
Removed require pp from jdbc.rb
Merge remote-tracking branch 'gditrick/sqlanywhere'
Initial improvements to sqlanywhere support

Recognize CURRENT_DATE defaults correctly.

Make sqlanywhere adapter work on ruby 1.8.7.

Speed up fetching large result sets by over 3x.

Fix mode on a couple adapter files (755 -> 644).
Remove unnecessary conditional in sqlanywhere conversion procs

These procs are not called if the value is nil.
Refactor Database#connect in sqlanywhere adapter
Refactor sqlanywhere adapter Database#execute_* methods

Remove some duplicated code.

Make sure that execute_insert actually returns the correct answer, by
using the same connection for the identity select that was used for
the insert.

Make sure log_connection_execute actually executes the code on the
given connection.

Make sure that autocommit is handled correctly even if there is an
exception.  I don't like how autocommit is handled manually with
an in_transaction? check, but I'll worry about that later.
Remove uri require from sqlanywhere adapter

Sequel already requires uri.
Refactor loading of jdbc/sqlanywhere adapter

Like other jdbc subadapters that don't provide jars, the .jar file
needs to be required manually before calling the method.

Use an array instead of a hash for consistent ordering when running
jruby in ruby 1.8 mode.
Minor refactoring to jdbc/sqlanywhere adapter
Merge remote-tracking branch 'gditrick/jdbc_smallint_to_bool'
Fix jdbc/sqlserver adapter after jdbc process_result_set_convert change
Support Database#tables and #views on sqlanywhere
Minor refactoring to shared sqlanywhere adapter

Most of this is whitespace/style related.
Remove default lateral support in sqlanywhere

Just like for Microsoft SQL Server, this should should be loaded
manually via the (now poorly named) mssql_emulate_lateral_with_apply
extension.
Make sqlanywhere adapter use typical Sequel connection strings

This unifies the uri/options hash cases, and supports things like
connecting to a database on a different host/port, in addition
to being more similar to other Sequel adapters.
Fix sqlanywhere adapter insert on ruby 1.8

This actually caused a segfault on ruby 1.8, due to a bug in the
sqlanywhere driver.
Final loose ends of integrating the SQLAnywhere support