📄 get_auxdata.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Function Auxiliary Data</title><style type="text/css">body { margin: auto; font-family: "Verdana" "sans-serif"; padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline { float:right; text-align:right; font-style:italic; width:240px; margin:12px; margin-top:58px;}.toolbar { font-variant: small-caps; text-align: center; line-height: 1.6em; margin: 0; padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se { background: url(../images/se.png) 100% 100% no-repeat #80a796}.sw { background: url(../images/sw.png) 0% 100% no-repeat }.ne { background: url(../images/ne.png) 100% 0% no-repeat }.nw { background: url(../images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body><div><!-- container div to satisfy validator --><a href="../index.html"><img class="logo" src="../images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td> <div class="se"><div class="sw"><div class="ne"><div class="nw"> <div class="toolbar"> <a href="../about.html">About</a> <a href="../sitemap.html">Sitemap</a> <a href="../docs.html">Documentation</a> <a href="../download.html">Download</a> <a href="../copyright.html">License</a> <a href="../news.html">News</a> <a href="http://www.sqlite.org/cvstrac/index">Developers</a> <a href="../support.html">Support</a> </div></div></div></div></div></td></tr></table> <a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Function Auxiliary Data</h2><blockquote><pre>void *sqlite3_get_auxdata(sqlite3_context*, int N);void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*));</pre></blockquote><p>The following two functions may be used by scalar SQL functions toassociate meta-data with argument values. If the same value is passed tomultiple invocations of the same SQL function during query execution, undersome circumstances the associated meta-data may be preserved. This maybe used, for example, to add a regular-expression matching scalarfunction. The compiled version of the regular expression is stored asmeta-data associated with the SQL value passed as the regular expressionpattern. The compiled regular expression can be reused on multipleinvocations of the same function so that the original pattern stringdoes not need to be recompiled on each invocation.</p><p>The sqlite3_get_auxdata() interface returns a pointer to the meta-dataassociated by the sqlite3_set_auxdata() function with the Nth argumentvalue to the application-defined function.If no meta-data has been ever been set for the Nthargument of the function, or if the cooresponding function parameterhas changed since the meta-data was set, then sqlite3_get_auxdata()returns a NULL pointer.</p><p>The sqlite3_set_auxdata() interface saves the meta-datapointed to by its 3rd parameter as the meta-data for the N-thargument of the application-defined function. Subsequentcalls to sqlite3_get_auxdata() might return this data, if it hasnot been destroyed.If it is not NULL, SQLite will invoke the destructorfunction given by the 4th parameter to sqlite3_set_auxdata() onthe meta-data when the corresponding function parameter changesor when the SQL statement completes, whichever comes first.</p><p>SQLite is free to call the destructor and drop meta-data onany parameter of any function at any time. The only guaranteeis that the destructor will be called before the metadata isdropped.</p><p>In practice, meta-data is preserved between function calls forexpressions that are constant at compile time. This includes literalvalues and SQL variables.</p><p>These routines must be called from the same thread in whichthe SQL function is running.</p><p><h3>Invariants:</h3><table border="0" cellpadding="5" cellspacing="0"><tr><td valign="top">F16272</td> <td valign="top">The <a href="../c3ref/get_auxdata.html">sqlite3_get_auxdata(C,N)</a> interface returns a pointerto metadata associated with the Nth parameter of the SQL functionwhose context is C, or NULL if there is no metadata associatedwith that parameter.</td></tr><tr><td valign="top">F16274</td> <td valign="top">The <a href="../c3ref/get_auxdata.html">sqlite3_set_auxdata(C,N,P,D)</a> interface assigns a metadatapointer P to the Nth parameter of the SQL function with contextC.</td></tr><tr><td valign="top">F16276</td> <td valign="top">SQLite will invoke the destructor D with a single argumentwhich is the metadata pointer P following a call to<a href="../c3ref/get_auxdata.html">sqlite3_set_auxdata(C,N,P,D)</a> when SQLite ceases to holdthe metadata.</td></tr><tr><td valign="top">F16277</td> <td valign="top">SQLite ceases to hold metadata for an SQL function parameterwhen the value of that parameter changes.</td></tr><tr><td valign="top">F16278</td> <td valign="top">When <a href="../c3ref/get_auxdata.html">sqlite3_set_auxdata(C,N,P,D)</a> is invoked, the destructoris called for any prior metadata associated with the same functioncontext C and parameter N.</td></tr><tr><td valign="top">F16279</td> <td valign="top">SQLite will call destructors for any metadata it is holdingin a particular <a href="../c3ref/stmt.html">prepared statement</a> S when either<a href="../c3ref/reset.html">sqlite3_reset(S)</a> or <a href="../c3ref/finalize.html">sqlite3_finalize(S)</a> is called.</td></tr></table></p><p>See also lists of <a href="objlist.html">Objects</a>, <a href="constlist.html">Constants</a>, and <a href="funclist.html">Functions</a>.</p><hr><small><i>This page last modified 2008/05/12 13:08:44 UTC</i></small></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -