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