Well, seems that the new mechanism doesnt work for composite primary keys ?!
The primary key index for this table
CREATE TABLE OrderDetails (
OrderId INTEGER,
ProductId INTEGER,
UnitPrice DECIMAL,
Qunatity TINYINT,
DISCOUNT FLOAT,
CONSTRAINT PK_OrderDetails PRIMARY KEY ( OrderId, ProductId )
);
queried using the following:
string pkIndex = String.Empty;
DataTable idxes = GetSchema("Indexes",
new string[]{"Main",null,"OrderDetails"});
foreach(DataRow row in idxes.Rows) {
if (row["PRIMARY_KEY"] != DBNull.Value && Convert.ToBoolean(row["PRIMARY_KEY"])) {
pkIndex = row["INDEX_NAME"].ToString();
break;
}
}
DateTable idxCols = GetSchema("IndexColumns",
new string[] {"Main",null,"OrderDetails", idxes });
returns an index named "sqlite_master_PK_OrderDetails" with only 1 row (OrderId).
By design ;) or i'm doing something wrong ?