System.Data.SQLite

Check-in [4e485e3e31]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add preliminary support for the SQLITE_DBCONFIG_RESET_DATABASE control.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4e485e3e316e4433403a46ee8bb430bcc01146ef
User & Date: mistachkin 2018-04-28 15:59:31.897
Context
2018-04-29
06:02
Modify the 'compileCSharpWith' test suite helper procedure to prevent leaking the previous PID value when running tests on .NET Core. check-in: a65ec30361 user: mistachkin tags: trunk
2018-04-28
15:59
Add preliminary support for the SQLITE_DBCONFIG_RESET_DATABASE control. check-in: 4e485e3e31 user: mistachkin tags: trunk
2018-04-26
13:57
Pickup changes to Eagle script library in externals. check-in: 6a82b4b74b user: mistachkin tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to System.Data.SQLite/SQLite3.cs.
3049
3050
3051
3052
3053
3054
3055

3056
3057
3058
3059
3060
3061
3062
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_FKEY: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_TRIGGER: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_QPSG: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_TRIGGER_EQP: // int int*

                {
                    if (!(value is bool))
                    {
                        throw new SQLiteException(HelperMethods.StringFormat(
                            CultureInfo.CurrentCulture,
                            "configuration value type mismatch, must be of type {0}",
                            typeof(bool)));







>







3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_FKEY: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_TRIGGER: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_ENABLE_QPSG: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_TRIGGER_EQP: // int int*
            case SQLiteConfigDbOpsEnum.SQLITE_DBCONFIG_RESET_DATABASE: // int int*
                {
                    if (!(value is bool))
                    {
                        throw new SQLiteException(HelperMethods.StringFormat(
                            CultureInfo.CurrentCulture,
                            "configuration value type mismatch, must be of type {0}",
                            typeof(bool)));
Changes to System.Data.SQLite/SQLiteBase.cs.
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573








1574
1575
1576
1577
1578
1579
1580
  /// <summary>
  /// These are the supported configuration verbs for use with the native
  /// SQLite library.  They are used with the
  /// <see cref="SQLiteConnection.SetConfigurationOption" /> method.
  /// </summary>
  public enum SQLiteConfigDbOpsEnum
  {
    /// <summary>
    /// This value represents an unknown (or invalid) option, do not use it.
    /// </summary>
    SQLITE_DBCONFIG_NONE = 0, // nil

    /// <summary>
    /// This option is used to change the name of the "main" database
    /// schema.  The sole argument is a pointer to a constant UTF8 string
    /// which will become the new schema name in place of "main".
    /// </summary>
    SQLITE_DBCONFIG_MAINDBNAME = 1000, // char*

    /// <summary>
    /// This option is used to configure the lookaside memory allocator.
    /// The value must be an array with three elements.  The second element
    /// must be an <see cref="Int32" /> containing the size of each buffer
    /// slot.  The third element must be an <see cref="Int32" /> containing
    /// the number of slots.  The first element must be an <see cref="IntPtr" />
    /// that points to a native memory buffer of bytes equal to or greater
    /// than the product of the second and third element values.
    /// </summary>
    SQLITE_DBCONFIG_LOOKASIDE = 1001, // void* int int

    /// <summary>
    /// This option is used to enable or disable the enforcement of
    /// foreign key constraints.
    /// </summary>
    SQLITE_DBCONFIG_ENABLE_FKEY = 1002, // int int*

    /// <summary>
    /// This option is used to enable or disable triggers.
    /// </summary>
    SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003, // int int*

    /// <summary>
    /// This option is used to enable or disable the two-argument version
    /// of the fts3_tokenizer() function which is part of the FTS3 full-text
    /// search engine extension.
    /// </summary>
    SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004, // int int*

    /// <summary>
    /// This option is used to enable or disable the loading of extensions.
    /// </summary>
    SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005, // int int*

    /// <summary>
    /// This option is used to enable or disable the automatic checkpointing
    /// when a WAL database is closed.
    /// </summary>
    SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006, // int int*

    /// <summary>
    /// This option is used to enable or disable the query planner stability
    /// guarantee (QPSG).
    /// </summary>
    SQLITE_DBCONFIG_ENABLE_QPSG = 1007, // int int*

    /// <summary>
    /// This option is used to enable or disable the extra EXPLAIN QUERY PLAN
    /// output for trigger programs.
    /// </summary>
    SQLITE_DBCONFIG_TRIGGER_EQP = 1008 // int int*








  }

  // These are the options to the internal sqlite3_config call.
  internal enum SQLiteConfigOpsEnum
  {
    SQLITE_CONFIG_NONE = 0, // nil
    SQLITE_CONFIG_SINGLETHREAD = 1, // nil







|
|
|
|

|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|
|
|
|

|
|
|
|

|
|
|
|
|
|

|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|
>
>
>
>
>
>
>
>







1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
  /// <summary>
  /// These are the supported configuration verbs for use with the native
  /// SQLite library.  They are used with the
  /// <see cref="SQLiteConnection.SetConfigurationOption" /> method.
  /// </summary>
  public enum SQLiteConfigDbOpsEnum
  {
      /// <summary>
      /// This value represents an unknown (or invalid) option, do not use it.
      /// </summary>
      SQLITE_DBCONFIG_NONE = 0, // nil

      /// <summary>
      /// This option is used to change the name of the "main" database
      /// schema.  The sole argument is a pointer to a constant UTF8 string
      /// which will become the new schema name in place of "main".
      /// </summary>
      SQLITE_DBCONFIG_MAINDBNAME = 1000, // char*

      /// <summary>
      /// This option is used to configure the lookaside memory allocator.
      /// The value must be an array with three elements.  The second element
      /// must be an <see cref="Int32" /> containing the size of each buffer
      /// slot.  The third element must be an <see cref="Int32" /> containing
      /// the number of slots.  The first element must be an <see cref="IntPtr" />
      /// that points to a native memory buffer of bytes equal to or greater
      /// than the product of the second and third element values.
      /// </summary>
      SQLITE_DBCONFIG_LOOKASIDE = 1001, // void* int int

      /// <summary>
      /// This option is used to enable or disable the enforcement of
      /// foreign key constraints.
      /// </summary>
      SQLITE_DBCONFIG_ENABLE_FKEY = 1002, // int int*

      /// <summary>
      /// This option is used to enable or disable triggers.
      /// </summary>
      SQLITE_DBCONFIG_ENABLE_TRIGGER = 1003, // int int*

      /// <summary>
      /// This option is used to enable or disable the two-argument version
      /// of the fts3_tokenizer() function which is part of the FTS3 full-text
      /// search engine extension.
      /// </summary>
      SQLITE_DBCONFIG_ENABLE_FTS3_TOKENIZER = 1004, // int int*

      /// <summary>
      /// This option is used to enable or disable the loading of extensions.
      /// </summary>
      SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION = 1005, // int int*

      /// <summary>
      /// This option is used to enable or disable the automatic checkpointing
      /// when a WAL database is closed.
      /// </summary>
      SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE = 1006, // int int*

      /// <summary>
      /// This option is used to enable or disable the query planner stability
      /// guarantee (QPSG).
      /// </summary>
      SQLITE_DBCONFIG_ENABLE_QPSG = 1007, // int int*

      /// <summary>
      /// This option is used to enable or disable the extra EXPLAIN QUERY PLAN
      /// output for trigger programs.
      /// </summary>
      SQLITE_DBCONFIG_TRIGGER_EQP = 1008, // int int*

      /// <summary>
      /// This option is used as part of the process to reset a database back
      /// to an empty state.  Because resetting a database is destructive and
      /// irreversible, the process requires the use of this obscure flag and
      /// multiple steps to help ensure that it does not happen by accident.
      /// </summary>
      SQLITE_DBCONFIG_RESET_DATABASE = 1009 // int int*
  }

  // These are the options to the internal sqlite3_config call.
  internal enum SQLiteConfigOpsEnum
  {
    SQLITE_CONFIG_NONE = 0, // nil
    SQLITE_CONFIG_SINGLETHREAD = 1, // nil