Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: third_party/sqlite/sqlite-src-3080704/src/test_autoext.c

Issue 2363173002: [sqlite] Remove obsolete reference version 3.8.7.4. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 ** 2006 August 23
3 **
4 ** The author disclaims copyright to this source code. In place of
5 ** a legal notice, here is a blessing:
6 **
7 ** May you do good and not evil.
8 ** May you find forgiveness for yourself and forgive others.
9 ** May you share freely, never taking more than you give.
10 **
11 *************************************************************************
12 ** Test extension for testing the sqlite3_auto_extension() function.
13 */
14 #include "tcl.h"
15 #include "sqlite3ext.h"
16
17 #ifndef SQLITE_OMIT_LOAD_EXTENSION
18 SQLITE_EXTENSION_INIT1
19
20 /*
21 ** The sqr() SQL function returns the square of its input value.
22 */
23 static void sqrFunc(
24 sqlite3_context *context,
25 int argc,
26 sqlite3_value **argv
27 ){
28 double r = sqlite3_value_double(argv[0]);
29 sqlite3_result_double(context, r*r);
30 }
31
32 /*
33 ** This is the entry point to register the extension for the sqr() function.
34 */
35 static int sqr_init(
36 sqlite3 *db,
37 char **pzErrMsg,
38 const sqlite3_api_routines *pApi
39 ){
40 SQLITE_EXTENSION_INIT2(pApi);
41 sqlite3_create_function(db, "sqr", 1, SQLITE_ANY, 0, sqrFunc, 0, 0);
42 return 0;
43 }
44
45 /*
46 ** The cube() SQL function returns the cube of its input value.
47 */
48 static void cubeFunc(
49 sqlite3_context *context,
50 int argc,
51 sqlite3_value **argv
52 ){
53 double r = sqlite3_value_double(argv[0]);
54 sqlite3_result_double(context, r*r*r);
55 }
56
57 /*
58 ** This is the entry point to register the extension for the cube() function.
59 */
60 static int cube_init(
61 sqlite3 *db,
62 char **pzErrMsg,
63 const sqlite3_api_routines *pApi
64 ){
65 SQLITE_EXTENSION_INIT2(pApi);
66 sqlite3_create_function(db, "cube", 1, SQLITE_ANY, 0, cubeFunc, 0, 0);
67 return 0;
68 }
69
70 /*
71 ** This is a broken extension entry point
72 */
73 static int broken_init(
74 sqlite3 *db,
75 char **pzErrMsg,
76 const sqlite3_api_routines *pApi
77 ){
78 char *zErr;
79 SQLITE_EXTENSION_INIT2(pApi);
80 zErr = sqlite3_mprintf("broken autoext!");
81 *pzErrMsg = zErr;
82 return 1;
83 }
84
85 /*
86 ** tclcmd: sqlite3_auto_extension_sqr
87 **
88 ** Register the "sqr" extension to be loaded automatically.
89 */
90 static int autoExtSqrObjCmd(
91 void * clientData,
92 Tcl_Interp *interp,
93 int objc,
94 Tcl_Obj *CONST objv[]
95 ){
96 int rc = sqlite3_auto_extension((void*)sqr_init);
97 Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
98 return SQLITE_OK;
99 }
100
101 /*
102 ** tclcmd: sqlite3_cancel_auto_extension_sqr
103 **
104 ** Unregister the "sqr" extension.
105 */
106 static int cancelAutoExtSqrObjCmd(
107 void * clientData,
108 Tcl_Interp *interp,
109 int objc,
110 Tcl_Obj *CONST objv[]
111 ){
112 int rc = sqlite3_cancel_auto_extension((void*)sqr_init);
113 Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
114 return SQLITE_OK;
115 }
116
117 /*
118 ** tclcmd: sqlite3_auto_extension_cube
119 **
120 ** Register the "cube" extension to be loaded automatically.
121 */
122 static int autoExtCubeObjCmd(
123 void * clientData,
124 Tcl_Interp *interp,
125 int objc,
126 Tcl_Obj *CONST objv[]
127 ){
128 int rc = sqlite3_auto_extension((void*)cube_init);
129 Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
130 return SQLITE_OK;
131 }
132
133 /*
134 ** tclcmd: sqlite3_cancel_auto_extension_cube
135 **
136 ** Unregister the "cube" extension.
137 */
138 static int cancelAutoExtCubeObjCmd(
139 void * clientData,
140 Tcl_Interp *interp,
141 int objc,
142 Tcl_Obj *CONST objv[]
143 ){
144 int rc = sqlite3_cancel_auto_extension((void*)cube_init);
145 Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
146 return SQLITE_OK;
147 }
148
149 /*
150 ** tclcmd: sqlite3_auto_extension_broken
151 **
152 ** Register the broken extension to be loaded automatically.
153 */
154 static int autoExtBrokenObjCmd(
155 void * clientData,
156 Tcl_Interp *interp,
157 int objc,
158 Tcl_Obj *CONST objv[]
159 ){
160 int rc = sqlite3_auto_extension((void*)broken_init);
161 Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
162 return SQLITE_OK;
163 }
164
165 /*
166 ** tclcmd: sqlite3_cancel_auto_extension_broken
167 **
168 ** Unregister the broken extension.
169 */
170 static int cancelAutoExtBrokenObjCmd(
171 void * clientData,
172 Tcl_Interp *interp,
173 int objc,
174 Tcl_Obj *CONST objv[]
175 ){
176 int rc = sqlite3_cancel_auto_extension((void*)broken_init);
177 Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
178 return SQLITE_OK;
179 }
180
181 #endif /* SQLITE_OMIT_LOAD_EXTENSION */
182
183
184 /*
185 ** tclcmd: sqlite3_reset_auto_extension
186 **
187 ** Reset all auto-extensions
188 */
189 static int resetAutoExtObjCmd(
190 void * clientData,
191 Tcl_Interp *interp,
192 int objc,
193 Tcl_Obj *CONST objv[]
194 ){
195 sqlite3_reset_auto_extension();
196 return SQLITE_OK;
197 }
198
199
200 /*
201 ** This procedure registers the TCL procs defined in this file.
202 */
203 int Sqlitetest_autoext_Init(Tcl_Interp *interp){
204 #ifndef SQLITE_OMIT_LOAD_EXTENSION
205 Tcl_CreateObjCommand(interp, "sqlite3_auto_extension_sqr",
206 autoExtSqrObjCmd, 0, 0);
207 Tcl_CreateObjCommand(interp, "sqlite3_auto_extension_cube",
208 autoExtCubeObjCmd, 0, 0);
209 Tcl_CreateObjCommand(interp, "sqlite3_auto_extension_broken",
210 autoExtBrokenObjCmd, 0, 0);
211 Tcl_CreateObjCommand(interp, "sqlite3_cancel_auto_extension_sqr",
212 cancelAutoExtSqrObjCmd, 0, 0);
213 Tcl_CreateObjCommand(interp, "sqlite3_cancel_auto_extension_cube",
214 cancelAutoExtCubeObjCmd, 0, 0);
215 Tcl_CreateObjCommand(interp, "sqlite3_cancel_auto_extension_broken",
216 cancelAutoExtBrokenObjCmd, 0, 0);
217 #endif
218 Tcl_CreateObjCommand(interp, "sqlite3_reset_auto_extension",
219 resetAutoExtObjCmd, 0, 0);
220 return TCL_OK;
221 }
OLDNEW
« no previous file with comments | « third_party/sqlite/sqlite-src-3080704/src/test_async.c ('k') | third_party/sqlite/sqlite-src-3080704/src/test_backup.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698