kopia lustrzana https://github.com/simonw/datasette
				
				
				
			
		
			
				
	
	
		
			49 wiersze
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			49 wiersze
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
| /*
 | |
| ** This file implements a SQLite extension with multiple entrypoints.
 | |
| **
 | |
| ** The default entrypoint, sqlite3_ext_init, has a single function "a".
 | |
| ** The 1st alternate entrypoint, sqlite3_ext_b_init, has a single function "b".
 | |
| ** The 2nd alternate entrypoint, sqlite3_ext_c_init, has a single function "c".
 | |
| **
 | |
| ** Compiling instructions: 
 | |
| **     https://www.sqlite.org/loadext.html#compiling_a_loadable_extension
 | |
| **
 | |
| */
 | |
| 
 | |
| #include "sqlite3ext.h"
 | |
| 
 | |
| SQLITE_EXTENSION_INIT1
 | |
| 
 | |
| // SQL function that returns back the value supplied during sqlite3_create_function()
 | |
| static void func(sqlite3_context *context, int argc, sqlite3_value **argv) {
 | |
|   sqlite3_result_text(context, (char *) sqlite3_user_data(context), -1, SQLITE_STATIC);
 | |
| }
 | |
| 
 | |
| 
 | |
| // The default entrypoint, since it matches the "ext.dylib"/"ext.so" name
 | |
| #ifdef _WIN32
 | |
| __declspec(dllexport)
 | |
| #endif
 | |
| int sqlite3_ext_init(sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi) {
 | |
|   SQLITE_EXTENSION_INIT2(pApi);
 | |
|   return sqlite3_create_function(db, "a", 0, 0, "a", func, 0, 0);
 | |
| }
 | |
| 
 | |
| // Alternate entrypoint #1
 | |
| #ifdef _WIN32
 | |
| __declspec(dllexport)
 | |
| #endif
 | |
| int sqlite3_ext_b_init(sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi) {
 | |
|   SQLITE_EXTENSION_INIT2(pApi);
 | |
|   return sqlite3_create_function(db, "b", 0, 0, "b", func, 0, 0);
 | |
| }
 | |
| 
 | |
| // Alternate entrypoint #2
 | |
| #ifdef _WIN32
 | |
| __declspec(dllexport)
 | |
| #endif
 | |
| int sqlite3_ext_c_init(sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi) {
 | |
|   SQLITE_EXTENSION_INIT2(pApi);
 | |
|   return sqlite3_create_function(db, "c", 0, 0, "c", func, 0, 0);
 | |
| }
 |