Sqlite参考手册
C界面 | C Interface
Obtain Aggregate Function Context
void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
聚合 SQL 函数的实现使用这个例程来分配内存来存储它们的状态。
第一次为特定的聚集函数调用 sqlite3_aggregate_context(C,N)例程时,SQLite 分配 N 个内存,清零该内存,并返回一个指向新内存的指针。对同一个聚合函数实例调用 sqlite3_aggregate_context()时,返回相同的缓冲区。每次调用 xStep 回调函数时,通常会调用 Sqlite3_aggregate_context(),然后最后一次调用 xFinal 回调函数时调用该函数。当没有行匹配聚合查询时,聚合函数实现的 xStep()回调将永远不会被调用,并且只会调用一次 xFinal()。在这些情况下,sqlite3_aggregate_context()可能会在 xFinal()中第一次被调用。
如果 N 小于或等于零,或者发生内存分配错误,sqlite3_aggregate_context(C,N)例程会在第一次调用时返 回 NULL 指针。
sqlite3_aggregate_context(C,N)分配的空间量由第一次成功调用时的 N 参数决定。在相同的聚合函数实例内对 sqlite3_aggregate_context()的后续调用中更改 N 的值不会调整内存分配的大小。在 xFinal 回调中,通常在调用 sqlite3_aggregate_context(C,N)时设置 N = 0,以便不发生无意义的内存分配。
当聚合查询结束时,SQLite 会自动释放由 sqlite3_aggregate_context()分配的内存。
第一个参数必须是 SQL 函数上下文的副本,它是实现聚合函数的 xStep 或 xFinal 回调例程的第一个参数。
此例程必须从运行集合 SQL 函数的同一线程调用。
C界面 | C Interface相关
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来
主页 | https://sqlite.org/ |
源码 | https://www.sqlite.org/src/ |
发布版本 | 3.21.0 |