2008-07-01 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / Mono.Data.Sqlite / Mono.Data.Sqlite / ChangeLog
1 2007-02-03  Marek Habersack  <grendello@gmail.com>
2
3         * SqliteTransaction.cs: Use in the 1.x profile only.
4
5         * SqliteParameter.cs: Use in the 1.x profile only.
6
7         * SqliteParameterCollection.cs: Use in the 1.x profile only.
8
9         * SqliteDataReader.cs: Use in the 1.x profile only.
10
11         * SqliteDataAdapter.cs: Use in the 1.x profile only.
12
13         * Sqlite.cs: Use in the 1.x profile only.
14
15         * SqliteConnection.cs: Use in the 1.x profile only.
16
17         * SqliteCommand.cs: Use in the 1.x profile only.
18         
19
20 2007-01-26  Miguel de Icaza  <miguel@novell.com>
21
22         * SqliteParameterCollection.cs: If the parameter is prefixed,
23         ignore the prefix when we do the lookup.   Replicates the behavior
24         in GetParameter 
25
26         The code paths changed recently with the 2.0-ification of
27         Mono.Data.SqliteClient 
28
29 2007-01-16  Marek Habersack  <grendello@gmail.com>
30
31         * SqliteCommandBuilder.cs: Nothing-to-do implementation of the
32         ApplyParameterInfo method.
33
34         * SqliteDataReader.cs: Implemented the GetChars, GetData, GetGuid
35         methods.
36
37         * SqliteConnection.cs: Support the DataSource in addition to Uri
38         field in the connection string for 2.0.
39         Use non-variant, case insensitive Uri/DataSource value
40         comparisons.
41         Implemented the ChangeDatabase method.
42
43         * SqliteConnectionStringBuilder.cs: Implementation
44
45         * SqliteClientFactory.cs: Added the CreateConnectionStringBuilder
46         method.
47
48 2007-01-15  Marek Habersack  <grendello@gmail.com>
49
50         * SqliteCommandBuilder.cs: new file, ADO.NET 2.0 command builder
51         for generic Db* support
52
53         * SqliteTransaction.cs: ADO.NET 2.0 support
54
55         * SqliteParameter.cs: ADO.NET 2.0 support
56         Implement SourceColumnNullMapping.
57         Implement ResetDbType.
58
59         * SqliteCommand.cs: ADO.NET 2.0 support
60         Implement the ICloneable interface.
61         Implement parameterless ExecuteReader.
62         Implement the DesignTimeVisible property.
63
64         * SqliteDataAdapter.cs: ADO.NET 2.0 support
65
66         * SqliteConnection.cs: ADO.NET 2.0 support
67         Implement ServerVersion.
68         Implement the ICloneable interface.
69
70         * SqliteDataReader.cs: ADO.NET 2.0 support
71         Add a few interfaces to the class signature.
72
73         * SqliteParameterCollection.cs: ADO.NET 2.0 support
74         Implement AddRange.
75
76         * SqliteDataSourceEnumerator.cs: ADO.NET 2.0 data support.
77
78         * SqliteClientFactory.cs: new file, ADO.NET 2.0 factory for
79         generic Db* support.
80
81 2007-01-07  Miguel de Icaza  <miguel@novell.com>
82
83         * SqliteConnection.cs: Automatically try version 3 if this fails.
84
85 2006-09-14  Mart Roosmaa <roosmaa@gmail.com> 
86
87         * SqliteCommand.cs: Handle enums by their underliying type.
88
89 2006-09-13  Mart Roosmaa <roosmaa@gmail.com> 
90
91         * SqliteDataReader.cs: Implemented GetBytes ().
92         * SqliteCommand.cs: Automatically convert enums to Int32.
93
94 2006-08-20  Joshua Tauberer  <jt@occams.info>
95
96         * SqliteConnection.cs: Changed Version property (which is
97           read-only) from internal to public so users can know
98           which version of Sqlite was actually connected to.
99
100 2006-05-25  Joshua Tauberer  <tauberer@for.net>
101
102         * SqliteCommand.cs: Unnamed parameters by index weren't
103           implemented.
104
105 2006-05-13  Joshua Tauberer  <tauberer@for.net>
106
107         Reported by Sebastian Dröge <slomo@ubuntu.com>.
108         * Sqlite.cs: The binding for sqlite3_last_insert_rowid had
109           the wrong type for the return (int vs long).
110         * SqliteConnection: LastInsertRowId: I didn't want to break
111           the public API, so it casts the long return from that
112           to an int.
113         * SqliteCommand: LastInsertRowID(): Wrap the above property.
114
115 2006-03-14  Kamil Skalski  <nazgul@nemerle.org>
116
117         * SqliteConnection.cs, Sqlite.cs: Add option for specifying busy
118         timeout in underlying sqlite structure. It allows enabling
119         automatic waiting for lock cleanup in multithreaded usage.
120         
121
122 2006-03-11  Joshua Tauberer  <tauberer@for.net>
123
124         * Use HGlobal rather than CoTaskMem String-To-Ptr functions in
125           Marshal class.  StringToCoTaskMemAnsi is broken (pending it
126           being fixed): it actually uses Ansi, instead of UTF-8.  Now,
127           Sqlite2 with no encoding parameter uses UTF-8 encoding.  Any
128           Sqlite2 DB since Jan. 20 was encoded in ANSI but unreadable
129           back.
130
131 2006-03-07  Kamil Skalski  <nazgul@nemerle.org>
132
133         * SqliteDataReader.cs: Handle null values in result as having
134         string type
135
136 2006-02-10  Joshua Tauberer  <tauberer@for.net>
137
138         * SqliteDataReader: Made 64bit clean.  Patch from
139           Joe Shaw <joeshaw@novell.com>.
140
141 2006-01-22  Joshua Tauberer  <tauberer@for.net>
142
143         Most of the below fixes (in previous changes too) are thanks
144         to Thomas Zoechling and Tom Surace, and the byte[]->blob
145         parameter binding is thanks to <pablosantosluac@terra.es>.
146         
147         * SqliteCommand.cs:
148           - Don't use a regex for finding parameters in v2.
149           It didn't work when there were no parameters in
150           the query (infinite loop of some sort -- should be filed
151           as a Mono bug I guess).  Just scan for parameters names
152           that aren't within quotes.
153           - That wasn't even being called.  Now it is.
154           - Marshaling for sqlite3_bind_parameter_name was wrong, as
155           was the unicode call to bind_text16 which was looking for
156           byte length of string while we were providing char length.
157           - Bind byte[] parameters as blobs.
158           - Trim the SQL string.  Trailing spaces makes it think
159           another statement is coming along.
160         * SqliteDataReader.cs: When DATE/DATETIME columns come
161           back as Int64s, return them using DateTime.FromFileTime.
162           And don't return Int64s as ints if they aren't in the
163           range of an int.
164           - Check column names case-insensitively (bug 77272).
165         * SqliteParameter.cs: Public parameter names made nicer.
166         * SqliteParameterCollection.cs: Allow users to set parameter
167           names with or without the : prefix that Sqlite wants.
168         * Sqlite.cs: Supporting changes.
169         * SqliteDataReader, SqliteConnection: ToLower with the
170           invariant culture (bug 77372).
171
172 2006-01-20  Joshua Tauberer  <tauberer@for.net>
173
174         * Sqlite3 calls now use unicode encoding.  Sqlite2
175           calls use ANSI encoding (a superset of the default
176           expected encoding ISO8859-1), unless the new
177           encoding= connection string argument is used,
178           in which case that encoding is used.  But that encoding
179           must use a single-byte null terminator, so only
180           UTF-8 is recommended.  This removes the dependency
181           on Mono.Posix.  If UTF-8 encoding is used, Sqlite2's
182           LIKE, GLOB, LENGTH, and SUBSTR aren't going to respect
183           multibyte chars unless Sqlite was specifically compiled
184           to do so.
185         * SqliteDataReader.this[] is fixed to wrap GetValue.
186
187 2006-01-06  Joshua Tauberer  <tauberer@for.net>
188
189         * SqliteDataReader.cs: GetFieldType can be called
190           before the reader is positioned on a row.  In that
191           case, return the types for the first row.
192
193 2006-01-02  Joshua Tauberer  <tauberer@for.net>
194
195         * SqliteCommand.cs: It was revealed that preparing
196           statements ahead of time was not possible as table
197           schema changes lead to errors.  This needed serious
198           reorganization.  SQL syntax errors and BUSY errors
199           are now raised in nice exceptions.
200         * SqliteDataReader.cs:
201                 * Use object[] in place of ArrayList for each row.
202                 * For Sqlite3, which remembers whether a value was
203                   an integer, text, real, or blob, actually return
204                   longs, strings, doubles, and byte[]s.
205                 * GetDataTypeName() works where possible (Sqlite3).
206                 * INT/INTEGER columns are now returned as ints,
207                   rather than longs, for Sqlite3.  Similarly for
208                   DATE and DATETIME columns, now returning DateTimes.
209         * SqliteConnection.cs.cs: BeginTransaction(IsolationLevel)
210           throws InvalidOperationException per the MS docs.
211         * SqliteExceptions.cs: New file with SqliteSyntaxException,
212           SqliteExecutionException, and its subclass SqliteBusyException.
213
214 2005-12-27  Jonathan Pryor  <jonpryor@vt.edu>
215
216         * SqliteCommand.cs: Use non-obsolete UnixMarshal members.
217
218 2005-10-06  Chris Lahey  <clahey@localhost.localdomain>
219
220         * SqliteCommand.cs (Prepare): Use UnixMarshal here to get proper
221         utf8 behavior.
222
223 2005-07-28  Joshua Tauberer <tauberer@for.net>
224
225         * Sqlite.cs, SqliteCommand.cs: Report string error messages
226         in prepare, for version 3.
227
228 2005-07-26  Joshua Tauberer <tauberer@for.net>
229
230         SQL commands can have multiple statements within them (i.e.
231         separated by semicolons).  Sqlite has to be instructed to
232         process each command.
233         
234         * Sqlite.cs: Pass the sql command as an IntPtr so we can
235           see where pzTail takes us.
236         * SqliteCommand.cs: Lazily load sql_params for good measure.
237           Iterate compile/prepare until each statement in the string
238           has been processed, and retain pointers to each compiled
239           statement.  When executing, run all of the statements.
240
241 2005-06-14  Thomas Zoechling <thomas.zoechling@gmx.at>
242
243         * Sqlite.cs:
244         - Added sqlite3_bind_* for native Sqlite3 Parameters
245         * SqliteCommand.cs
246         - Added methods for parameter processing/binding (sqlite3 uses bind / sqlite2 uses regEx to extract parameters)
247         - Sqlite uses ':' as delimeter!
248         * SqliteParameterCollection.cs
249         - Chris Turchin fixed a problem in the Parameter Hashmap
250         * SqliteTransaction.cs
251         - The CommandText for the Rollback Command was "COMMIT" ! ->changed :)
252
253 2005-05-20  Sureshkumar T  <tsureshkumar@novell.com>
254
255         * SqliteConnection.cs:
256         - SetConnectionString: trim white spaces, ignore empty connection
257         string options.
258         - SetConnectionString: if file://,db_file starts from pos 7 not 6.
259
260