System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation
2016-01-19
05:55 Ticket [dbd65441a5] BOOLEAN fields with value "t" or "f" cause status still Closed with 3 other changes artifact: cbc68458c5 user: mistachkin
2016-01-13
00:09 Closed ticket [dbd65441a5]. artifact: 9bd717f8f4 user: mistachkin
00:06
For column types that resolve to boolean, recognize case-insensitive prefixes of 'True' and 'False'. Fix for [dbd65441a5]. Add NoVerifyTextAffinity connection flag to skip type affinity checking when fetching a column value as a string. Pursuant to [dbd65441a5]. check-in: ecf9a72b79 user: mistachkin tags: trunk
2016-01-12
23:38 Ticket [dbd65441a5] BOOLEAN fields with value "t" or "f" cause status still Pending with 3 other changes artifact: ac866f7978 user: mistachkin
23:38 Ticket [dbd65441a5]: 3 changes artifact: 531f785ce5 user: mistachkin
23:19
Mark a 'Potentially Incompatible Change' in the 1.0.99.0 release, per ticket [dbd65441a5]. check-in: b45629dfee user: mistachkin tags: trunk
20:18 Ticket [dbd65441a5] BOOLEAN fields with value "t" or "f" cause status still Pending with 3 other changes artifact: 17331906d8 user: mistachkin
04:52 Pending ticket [dbd65441a5]. artifact: ed7192a51a user: mistachkin
2016-01-11
22:50 New ticket [dbd65441a5]. artifact: d500e3a2f4 user: anonymous

Ticket Hash: dbd65441a533ba9360d581028b04e90140f2a7a6
Title: BOOLEAN fields with value "t" or "f" cause
Status: Closed Type: Feature_Request
Severity: Important Priority: Medium
Subsystem: Convert Resolution: Fixed
Last Modified: 2016-01-19 05:55:17
Version Found In: 1.0.99.0
User Comments:
anonymous added on 2016-01-11 22:50:29:
The field type is BOOLEAN, the value of the field is "t" or "f".  When calling System.Data.SQLite.SQLiteConvert.ToBoolean("f"), a System.ArgumentException is called.  This is called when utilizing a SQLiteDataReader class to access the field.

relevant stack:

System.ArgumentException was unhandled
  HResult=-2147024809
  Message=source
  Source=System.Data.SQLite
  StackTrace:
       at System.Data.SQLite.SQLiteConvert.ToBoolean(String source)
       at System.Data.SQLite.SQLiteConvert.ToBoolean(Object obj, IFormatProvider provider, Boolean viaFramework)
       at System.Data.SQLite.SQLite3.GetBoolean(SQLiteStatement stmt, Int32 index)
       at System.Data.SQLite.SQLite3.GetValue(SQLiteStatement stmt, SQLiteConnectionFlags flags, Int32 index, SQLiteType typ)
       at System.Data.SQLite.SQLiteDataReader.GetValue(Int32 i)
       at System.Data.SQLite.SQLiteDataReader.get_Item(String name)

mistachkin added on 2016-01-12 04:52:13:
Normally, the BOOLEAN type requires the string to be "true" or "false", not just
"t" or "f".  Did a previous version of System.Data.SQLite used to support using
just the strings "t" or "f" in this context?

mistachkin added on 2016-01-12 20:18:12:
Apparently, the previous versions silently treated all invalid BOOLEAN values as
"false" and now an exception is thrown instead.

mistachkin added on 2016-01-12 23:38:03:
The values "t" and "f" were never really supported as "BOOLEAN", per se;
however, the exception behavior was changed (inadvertently) in release
1.0.99.0.

That being said, I think the new behavior is more correct.

mistachkin added on 2016-01-12 23:38:18:
I'm adding code to trunk that will allow BOOLEAN values to be recognized if
they are any valid case-insensitive prefix of "True" and "False", including
"t" and "f".

mistachkin added on 2016-01-13 00:09:12:
This has been "fixed" on trunk via check-in [ecf9a72b79755c26].