Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add GetSqlForDeclareTable method to the SQLiteModuleEnumerable class to allow derived classes to override the SQL statement used to declare the virtual table schema. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
a3798d45f42c533593bf12db766b3859 |
User & Date: | mistachkin 2013-07-11 15:49:54.187 |
Context
2013-07-15
| ||
07:08 | Fix several issues with the managed virtual table support. Use the correct methods overloads for Marshal.PtrToStructure. Correct handling of native structure padding when running on 64-bit operating systems. Make sure connections released to the pool do not hold onto modules. Call sqlite3_dispose_module with the correct native module pointer. Modify all classes implementing the IDisposable pattern to set the disposed flag after their base classes have been disposed. Add LogExceptionsNoThrow and LogErrorsNoThrow to avoid throwing ObjectDisposedException when logging during derived class disposal. check-in: d60eb09374 user: mistachkin tags: trunk | |
03:57 | Virtual table marshalling fixes. check-in: e7b11da35f user: mistachkin tags: marshalFixes | |
2013-07-11
| ||
15:49 | Add GetSqlForDeclareTable method to the SQLiteModuleEnumerable class to allow derived classes to override the SQL statement used to declare the virtual table schema. check-in: a3798d45f4 user: mistachkin tags: trunk | |
2013-07-10
| ||
02:51 | Add another test for the SQLiteConvert.TypeNameToDbType method. check-in: 0654be8b4b user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite/SQLiteModule.cs.
︙ | ︙ | |||
6316 6317 6318 6319 6320 6321 6322 | #region Table Declaration Helper Methods /// <summary> /// Attempts to declare the schema for the virtual table using the /// specified database connection. /// </summary> /// <param name="connection"> /// The <see cref="SQLiteConnection" /> object instance to use when | | > | > | 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 | #region Table Declaration Helper Methods /// <summary> /// Attempts to declare the schema for the virtual table using the /// specified database connection. /// </summary> /// <param name="connection"> /// The <see cref="SQLiteConnection" /> object instance to use when /// declaring the schema of the virtual table. This parameter may not /// be null. /// </param> /// <param name="sql"> /// The string containing the CREATE TABLE statement that completely /// describes the schema for the virtual table. This parameter may not /// be null. /// </param> /// <param name="error"> /// Upon failure, this parameter must be modified to contain an error /// message. /// </param> /// <returns> /// A standard SQLite return code. |
︙ | ︙ | |||
6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 | SQLiteBase sqliteBase = connection._sql; if (sqliteBase == null) { error = "connection has invalid handle"; return SQLiteErrorCode.Error; } return sqliteBase.DeclareVirtualTable(this, sql, ref error); } #endregion /////////////////////////////////////////////////////////////////////// | > > > > > > | 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 | SQLiteBase sqliteBase = connection._sql; if (sqliteBase == null) { error = "connection has invalid handle"; return SQLiteErrorCode.Error; } if (sql == null) { error = "invalid SQL statement"; return SQLiteErrorCode.Error; } return sqliteBase.DeclareVirtualTable(this, sql, ref error); } #endregion /////////////////////////////////////////////////////////////////////// |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteModuleEnumerable.cs.
︙ | ︙ | |||
336 337 338 339 340 341 342 343 344 345 346 347 348 349 | this.enumerable = enumerable; } #endregion /////////////////////////////////////////////////////////////////////// #region Protected Methods /// <summary> /// Sets the table error message to one that indicates the virtual /// table cursor is of the wrong type. /// </summary> /// <param name="cursor"> /// The <see cref="SQLiteVirtualTableCursor" /> object instance. /// </param> | > > > > > > > > > > > > > > > > | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 | this.enumerable = enumerable; } #endregion /////////////////////////////////////////////////////////////////////// #region Protected Methods /// <summary> /// Determines the SQL statement used to declare the virtual table. /// This method should be overridden in derived classes if they require /// a custom virtual table schema. /// </summary> /// <returns> /// The SQL statement used to declare the virtual table -OR- null if it /// cannot be determined. /// </returns> protected virtual string GetSqlForDeclareTable() { return declareSql; } /////////////////////////////////////////////////////////////////////// /// <summary> /// Sets the table error message to one that indicates the virtual /// table cursor is of the wrong type. /// </summary> /// <param name="cursor"> /// The <see cref="SQLiteVirtualTableCursor" /> object instance. /// </param> |
︙ | ︙ | |||
457 458 459 460 461 462 463 | ref SQLiteVirtualTable table, ref string error ) { CheckDisposed(); if (DeclareTable( | | | 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 | ref SQLiteVirtualTable table, ref string error ) { CheckDisposed(); if (DeclareTable( connection, GetSqlForDeclareTable(), ref error) == SQLiteErrorCode.Ok) { table = new SQLiteVirtualTable(arguments); return SQLiteErrorCode.Ok; } return SQLiteErrorCode.Error; |
︙ | ︙ | |||
501 502 503 504 505 506 507 | ref SQLiteVirtualTable table, ref string error ) { CheckDisposed(); if (DeclareTable( | | | 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 | ref SQLiteVirtualTable table, ref string error ) { CheckDisposed(); if (DeclareTable( connection, GetSqlForDeclareTable(), ref error) == SQLiteErrorCode.Ok) { table = new SQLiteVirtualTable(arguments); return SQLiteErrorCode.Ok; } return SQLiteErrorCode.Error; |
︙ | ︙ |