2008-07-06  Sebastien Pouliot  <sebastien@ximian.com> 

	* SqliteDataSourceEnumerator.cs: Replace a few Type.GetType by typeof
	[Found using Gendarme AvoidTypeGetTypeForConstantStringsRule]

2008-06-20  Veerapuram Varadhan  <vvaradhan@novell.com>

	* SqliteDataReader.cs: Use case-insensitive comparer for the
	case-insensitive column names hashtable
	
2007-01-26  Miguel de Icaza  <miguel@novell.com>

	* SqliteParameterCollection.cs: If the parameter is prefixed,
	ignore the prefix when we do the lookup.   Replicates the behavior
	in GetParameter 

	The code paths changed recently with the 2.0-ification of
	Mono.Data.SqliteClient 

2007-01-16  Marek Habersack  <grendello@gmail.com>

	* SqliteCommandBuilder.cs: Nothing-to-do implementation of the
	ApplyParameterInfo method.

	* SqliteDataReader.cs: Implemented the GetChars, GetData, GetGuid
	methods.

	* SqliteConnection.cs: Support the DataSource in addition to Uri
	field in the connection string for 2.0.
	Use non-variant, case insensitive Uri/DataSource value
	comparisons.
	Implemented the ChangeDatabase method.

	* SqliteConnectionStringBuilder.cs: Implementation

	* SqliteClientFactory.cs: Added the CreateConnectionStringBuilder
	method.

2007-01-15  Marek Habersack  <grendello@gmail.com>

	* SqliteCommandBuilder.cs: new file, ADO.NET 2.0 command builder
	for generic Db* support

	* SqliteTransaction.cs: ADO.NET 2.0 support

	* SqliteParameter.cs: ADO.NET 2.0 support
	Implement SourceColumnNullMapping.
	Implement ResetDbType.

	* SqliteCommand.cs: ADO.NET 2.0 support
	Implement the ICloneable interface.
	Implement parameterless ExecuteReader.
	Implement the DesignTimeVisible property.

	* SqliteDataAdapter.cs: ADO.NET 2.0 support

	* SqliteConnection.cs: ADO.NET 2.0 support
	Implement ServerVersion.
	Implement the ICloneable interface.

	* SqliteDataReader.cs: ADO.NET 2.0 support
	Add a few interfaces to the class signature.

	* SqliteParameterCollection.cs: ADO.NET 2.0 support
	Implement AddRange.

	* SqliteDataSourceEnumerator.cs: ADO.NET 2.0 data support.

	* SqliteClientFactory.cs: new file, ADO.NET 2.0 factory for
	generic Db* support.

2007-01-07  Miguel de Icaza  <miguel@novell.com>

	* SqliteConnection.cs: Automatically try version 3 if this fails.

2006-09-14  Mart Roosmaa <roosmaa@gmail.com> 

	* SqliteCommand.cs: Handle enums by their underliying type.

2006-09-13  Mart Roosmaa <roosmaa@gmail.com> 

	* SqliteDataReader.cs: Implemented GetBytes ().
	* SqliteCommand.cs: Automatically convert enums to Int32.

2006-08-20  Joshua Tauberer  <jt@occams.info>

	* SqliteConnection.cs: Changed Version property (which is
	  read-only) from internal to public so users can know
	  which version of Sqlite was actually connected to.

2006-05-25  Joshua Tauberer  <tauberer@for.net>

	* SqliteCommand.cs: Unnamed parameters by index weren't
	  implemented.

2006-05-13  Joshua Tauberer  <tauberer@for.net>

	Reported by Sebastian Dröge <slomo@ubuntu.com>.
	* Sqlite.cs: The binding for sqlite3_last_insert_rowid had
	  the wrong type for the return (int vs long).
	* SqliteConnection: LastInsertRowId: I didn't want to break
	  the public API, so it casts the long return from that
	  to an int.
	* SqliteCommand: LastInsertRowID(): Wrap the above property.

2006-03-14  Kamil Skalski  <nazgul@nemerle.org>

	* SqliteConnection.cs, Sqlite.cs: Add option for specifying busy
	timeout in underlying sqlite structure. It allows enabling
	automatic waiting for lock cleanup in multithreaded usage.
	

2006-03-11  Joshua Tauberer  <tauberer@for.net>

	* Use HGlobal rather than CoTaskMem String-To-Ptr functions in
	  Marshal class.  StringToCoTaskMemAnsi is broken (pending it
	  being fixed): it actually uses Ansi, instead of UTF-8.  Now,
	  Sqlite2 with no encoding parameter uses UTF-8 encoding.  Any
	  Sqlite2 DB since Jan. 20 was encoded in ANSI but unreadable
	  back.

2006-03-07  Kamil Skalski  <nazgul@nemerle.org>

	* SqliteDataReader.cs: Handle null values in result as having
	string type

2006-02-10  Joshua Tauberer  <tauberer@for.net>

	* SqliteDataReader: Made 64bit clean.  Patch from
	  Joe Shaw <joeshaw@novell.com>.

2006-01-22  Joshua Tauberer  <tauberer@for.net>

	Most of the below fixes (in previous changes too) are thanks
	to Thomas Zoechling and Tom Surace, and the byte[]->blob
	parameter binding is thanks to <pablosantosluac@terra.es>.
	
	* SqliteCommand.cs:
	  - Don't use a regex for finding parameters in v2.
	  It didn't work when there were no parameters in
	  the query (infinite loop of some sort -- should be filed
	  as a Mono bug I guess).  Just scan for parameters names
	  that aren't within quotes.
	  - That wasn't even being called.  Now it is.
	  - Marshaling for sqlite3_bind_parameter_name was wrong, as
	  was the unicode call to bind_text16 which was looking for
	  byte length of string while we were providing char length.
	  - Bind byte[] parameters as blobs.
	  - Trim the SQL string.  Trailing spaces makes it think
	  another statement is coming along.
	* SqliteDataReader.cs: When DATE/DATETIME columns come
	  back as Int64s, return them using DateTime.FromFileTime.
	  And don't return Int64s as ints if they aren't in the
	  range of an int.
	  - Check column names case-insensitively (bug 77272).
	* SqliteParameter.cs: Public parameter names made nicer.
	* SqliteParameterCollection.cs: Allow users to set parameter
	  names with or without the : prefix that Sqlite wants.
	* Sqlite.cs: Supporting changes.
	* SqliteDataReader, SqliteConnection: ToLower with the
	  invariant culture (bug 77372).

2006-01-20  Joshua Tauberer  <tauberer@for.net>

	* Sqlite3 calls now use unicode encoding.  Sqlite2
	  calls use ANSI encoding (a superset of the default
	  expected encoding ISO8859-1), unless the new
	  encoding= connection string argument is used,
	  in which case that encoding is used.  But that encoding
	  must use a single-byte null terminator, so only
	  UTF-8 is recommended.  This removes the dependency
	  on Mono.Posix.  If UTF-8 encoding is used, Sqlite2's
	  LIKE, GLOB, LENGTH, and SUBSTR aren't going to respect
	  multibyte chars unless Sqlite was specifically compiled
	  to do so.
	* SqliteDataReader.this[] is fixed to wrap GetValue.

2006-01-06  Joshua Tauberer  <tauberer@for.net>

	* SqliteDataReader.cs: GetFieldType can be called
	  before the reader is positioned on a row.  In that
	  case, return the types for the first row.

2006-01-02  Joshua Tauberer  <tauberer@for.net>

	* SqliteCommand.cs: It was revealed that preparing
	  statements ahead of time was not possible as table
	  schema changes lead to errors.  This needed serious
	  reorganization.  SQL syntax errors and BUSY errors
	  are now raised in nice exceptions.
	* SqliteDataReader.cs:
		* Use object[] in place of ArrayList for each row.
		* For Sqlite3, which remembers whether a value was
		  an integer, text, real, or blob, actually return
		  longs, strings, doubles, and byte[]s.
		* GetDataTypeName() works where possible (Sqlite3).
		* INT/INTEGER columns are now returned as ints,
		  rather than longs, for Sqlite3.  Similarly for
		  DATE and DATETIME columns, now returning DateTimes.
	* SqliteConnection.cs.cs: BeginTransaction(IsolationLevel)
	  throws InvalidOperationException per the MS docs.
	* SqliteExceptions.cs: New file with SqliteSyntaxException,
	  SqliteExecutionException, and its subclass SqliteBusyException.

2005-12-27  Jonathan Pryor  <jonpryor@vt.edu>

	* SqliteCommand.cs: Use non-obsolete UnixMarshal members.

2005-10-06  Chris Lahey  <clahey@localhost.localdomain>

	* SqliteCommand.cs (Prepare): Use UnixMarshal here to get proper
	utf8 behavior.

2005-07-28  Joshua Tauberer <tauberer@for.net>

	* Sqlite.cs, SqliteCommand.cs: Report string error messages
	in prepare, for version 3.

2005-07-26  Joshua Tauberer <tauberer@for.net>

	SQL commands can have multiple statements within them (i.e.
	separated by semicolons).  Sqlite has to be instructed to
	process each command.
	
	* Sqlite.cs: Pass the sql command as an IntPtr so we can
	  see where pzTail takes us.
	* SqliteCommand.cs: Lazily load sql_params for good measure.
	  Iterate compile/prepare until each statement in the string
	  has been processed, and retain pointers to each compiled
	  statement.  When executing, run all of the statements.

2005-06-14  Thomas Zoechling <thomas.zoechling@gmx.at>

	* Sqlite.cs:
	- Added sqlite3_bind_* for native Sqlite3 Parameters
	* SqliteCommand.cs
	- Added methods for parameter processing/binding (sqlite3 uses bind / sqlite2 uses regEx to extract parameters)
	- Sqlite uses ':' as delimeter!
	* SqliteParameterCollection.cs
	- Chris Turchin fixed a problem in the Parameter Hashmap
	* SqliteTransaction.cs
	- The CommandText for the Rollback Command was "COMMIT" ! ->changed :)

2005-05-20  Sureshkumar T  <tsureshkumar@novell.com>

	* SqliteConnection.cs:
	- SetConnectionString: trim white spaces, ignore empty connection
	string options.
	- SetConnectionString: if file://,db_file starts from pos 7 not 6.


