123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /*
- ** 2010 August 30
- **
- ** 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.
- **
- *************************************************************************
- */
- #ifndef _SQLITE3RTREE_H_
- #define _SQLITE3RTREE_H_
- #include <sqlite3.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry;
- /*
- ** Register a geometry callback named zGeom that can be used as part of an
- ** R-Tree geometry query as follows:
- **
- ** SELECT ... FROM <rtree> WHERE <rtree col> MATCH $zGeom(... params ...)
- */
- int sqlite3_rtree_geometry_callback(
- sqlite3 *db,
- const char *zGeom,
- #ifdef SQLITE_RTREE_INT_ONLY
- int (*xGeom)(sqlite3_rtree_geometry*, int n, sqlite3_int64 *a, int *pRes),
- #else
- int (*xGeom)(sqlite3_rtree_geometry*, int n, double *a, int *pRes),
- #endif
- void *pContext
- );
- /*
- ** A pointer to a structure of the following type is passed as the first
- ** argument to callbacks registered using rtree_geometry_callback().
- */
- struct sqlite3_rtree_geometry {
- void *pContext; /* Copy of pContext passed to s_r_g_c() */
- int nParam; /* Size of array aParam[] */
- double *aParam; /* Parameters passed to SQL geom function */
- void *pUser; /* Callback implementation user data */
- void (*xDelUser)(void *); /* Called by SQLite to clean up pUser */
- };
- #ifdef __cplusplus
- } /* end of the 'extern "C"' block */
- #endif
- #endif /* ifndef _SQLITE3RTREE_H_ */
|