Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix for ticket #111: Update the documentation to explain that you may not start a transaction in one thread and complete it in another thread under Linux Threads where each thread has its own process ID. (CVS 695) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
0b0c0492cc1e55c1c4feba6e92765ea0 |
User & Date: | drh 2002-07-30 17:42:10.000 |
Context
2002-07-30
| ||
18:43 | Fix for ticket #114: Correctly handle SQLITE_BUSY if it occurs during database initialization. (CVS 696) (check-in: 5b814b5df6 user: drh tags: trunk) | |
17:42 | Fix for ticket #111: Update the documentation to explain that you may not start a transaction in one thread and complete it in another thread under Linux Threads where each thread has its own process ID. (CVS 695) (check-in: 0b0c0492cc user: drh tags: trunk) | |
17:20 | Fix for ticket #71: Correctly handle CR and CRLF line terminators in the input files for the COPY command. (CVS 694) (check-in: be1315755e user: drh tags: trunk) | |
Changes
Changes to www/c_interface.tcl.
1 2 3 | # # Run this Tcl script to generate the sqlite.html file. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the sqlite.html file. # set rcsid {$Id: c_interface.tcl,v 1.32 2002/07/30 17:42:10 drh Exp $} puts {<html> <head> <title>The C language interface to the SQLite library</title> </head> <body bgcolor=white> <h1 align=center> |
︙ | ︙ | |||
297 298 299 300 301 302 303 304 305 306 307 308 309 310 | </p></dd> <dt>SQLITE_MISUSE</dt> <dd><p>This error might occur if one or more of the SQLite API routines is used incorrectly. Examples of incorrect usage include calling <b>sqlite_exec()</b> after the database has been closed using <b>sqlite_close()</b> or calling <b>sqlite_exec()</b> with the same database pointer simultaneously from two separate threads. </p></dd> </dl> </blockquote> <h2>The Extended API</h2> <p>Only the three core routines shown above are required to use | > > > | 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 | </p></dd> <dt>SQLITE_MISUSE</dt> <dd><p>This error might occur if one or more of the SQLite API routines is used incorrectly. Examples of incorrect usage include calling <b>sqlite_exec()</b> after the database has been closed using <b>sqlite_close()</b> or calling <b>sqlite_exec()</b> with the same database pointer simultaneously from two separate threads. This error code will also be returned under Unix if <b>sqlite_exec()</b> is called while a transaction is pending that was started in another process or thread that has a different process ID. </p></dd> </dl> </blockquote> <h2>The Extended API</h2> <p>Only the three core routines shown above are required to use |
︙ | ︙ | |||
787 788 789 790 791 792 793 794 795 796 797 798 799 800 | <p> SQLite now implements all of its built-in functions using this interface. For additional information and examples on how to create new SQL functions, review the SQLite source code in the file <b>func.c</b>. </p> <h2>Usage Examples</h2> <p>For examples of how the SQLite C/C++ interface can be used, refer to the source code for the <b>sqlite</b> program in the file <b>src/shell.c</b> of the source tree. Additional information about sqlite is available at | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 | <p> SQLite now implements all of its built-in functions using this interface. For additional information and examples on how to create new SQL functions, review the SQLite source code in the file <b>func.c</b>. </p> <h2>Multi-Threading And SQLite</h2> <p> If SQLite is compiled with the THREADSAFE preprocessor macro set to 1, then it is safe to use SQLite from two or more threads of the same process at the same time. But each thread should have its own <b>sqlite*</b> pointer returned from <b>sqlite_open()</b>. It is never safe for two or more threads to access the same <b>sqlite*</b> pointer at the same time. </p> <p> In precompiled SQLite libraries available on the website, the Unix versions are compiled with THREADSAFE turned off but the windows versions are compiled with THREADSAFE turned on. If you need something different that this you will have to recompile. </p> <p> Under Unix, an <b>sqlite*</b> pointer should not be carried across a <b>fork()</b> system call into the child process. The child process should open its own copy of the database after the <b>fork()</b>. </p> <p> When using LinuxThreads (where each thread has its own process ID) it is illegal to start a transaction in one thread and then attempt to read or write the database from a different thread. This restriction does not apply to Posix threads where all threads share the same process ID. </p> <h2>Usage Examples</h2> <p>For examples of how the SQLite C/C++ interface can be used, refer to the source code for the <b>sqlite</b> program in the file <b>src/shell.c</b> of the source tree. Additional information about sqlite is available at |
︙ | ︙ |
Changes to www/faq.tcl.
1 2 3 | # # Run this script to generated a faq.html output file # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this script to generated a faq.html output file # set rcsid {$Id: faq.tcl,v 1.12 2002/07/30 17:42:10 drh Exp $} puts {<html> <head> <title>SQLite Frequently Asked Questions</title> </head> <body bgcolor="white"> <h1 align="center">Frequently Asked Questions</h1> |
︙ | ︙ | |||
227 228 229 230 231 232 233 234 235 236 237 238 239 240 | or more threads.</p> <p>Note that if two or more threads have the same database open and one thread creates a new table or index, the other threads might not be able to see the new table right away. You might have to get the other threads to close and reopen their connection to the database before they will be able to see the new table.</p> } faq { How do I list all tables/indices contained in an SQLite database } { <p>If you are running the <b>sqlite</b> command-line access program you can type "<b>.tables</b>" to get a list of all tables. Or you | > > > > > > | 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 | or more threads.</p> <p>Note that if two or more threads have the same database open and one thread creates a new table or index, the other threads might not be able to see the new table right away. You might have to get the other threads to close and reopen their connection to the database before they will be able to see the new table.</p> <p>Under UNIX, you should not carry an open SQLite database across a fork() system call into the child process. Problems will result if you do. Under LinuxThreads, because each thread has its own process ID, you may not start a transaction in one thread and attempt to complete it in another.</p> } faq { How do I list all tables/indices contained in an SQLite database } { <p>If you are running the <b>sqlite</b> command-line access program you can type "<b>.tables</b>" to get a list of all tables. Or you |
︙ | ︙ |