1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00
Files
sqlite/ext/misc/datacopy.c
drh 9c620c0e4e Add the datacopy extension, used for testing only.
FossilOrigin-Name: 06735507ae28fbcd0d43715434ddd74c5dfa4609cd9cb4d1994ca125b9d8dd68
2025-07-25 20:37:56 +00:00

63 lines
1.5 KiB
C

/*
** 2025-07-25
**
** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing:
**
** May you do good and not evil.
** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give.
**
******************************************************************************
**
** This SQLite extension implements the DATACOPY collating sequence
** which always returns zero.
**
** Hints for compiling:
**
** Linux: gcc -shared -fPIC -o datacopy.so datacopy.c
** OSX: gcc -dynamiclib -fPIC -o datacopy.dylib datacopy.c
** Windows: cl datacopy.c -link -dll -out:datacopy.dll
*/
#include "sqlite3ext.h"
SQLITE_EXTENSION_INIT1
#include <assert.h>
#include <string.h>
/*
** Implement the DATACOPY collating sequence so that if
**
** x=y COLLATE DATACOPY
**
** always returns zero (meaning that x is always equal to y).
*/
static int datacopyCollFunc(
void *notUsed,
int nKey1, const void *pKey1,
int nKey2, const void *pKey2
){
(void)notUsed;
(void)nKey1;
(void)pKey1;
(void)nKey2;
(void)pKey2;
return 0;
}
#ifdef _WIN32
__declspec(dllexport)
#endif
int sqlite3_datacopy_init(
sqlite3 *db,
char **pzErrMsg,
const sqlite3_api_routines *pApi
){
int rc = SQLITE_OK;
SQLITE_EXTENSION_INIT2(pApi);
(void)pzErrMsg; /* Unused parameter */
rc = sqlite3_create_collation(db, "DATACOPY", SQLITE_UTF8,
0, datacopyCollFunc);
return rc;
}