summaryrefslogtreecommitdiff
path: root/ext/sqlite/libsqlite/src/pager.h
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2003-04-17 11:27:30 +0000
committerWez Furlong <wez@php.net>2003-04-17 11:27:30 +0000
commit05d5a35c9b9c9d8504ac7c1ced1f79450915939e (patch)
treeab631aba94d4cc44679419afa7ad00875de2817a /ext/sqlite/libsqlite/src/pager.h
parent826583dc91b0089422aa1ac3ef75c71fdb788099 (diff)
downloadphp-git-05d5a35c9b9c9d8504ac7c1ced1f79450915939e.tar.gz
Bundle relevant parts of sqlite 2.8.0.
# sqlite has a completely non-restrictive license
Diffstat (limited to 'ext/sqlite/libsqlite/src/pager.h')
-rw-r--r--ext/sqlite/libsqlite/src/pager.h79
1 files changed, 79 insertions, 0 deletions
diff --git a/ext/sqlite/libsqlite/src/pager.h b/ext/sqlite/libsqlite/src/pager.h
new file mode 100644
index 0000000000..a2f08d3ac9
--- /dev/null
+++ b/ext/sqlite/libsqlite/src/pager.h
@@ -0,0 +1,79 @@
+/*
+** 2001 September 15
+**
+** 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 header file defines the interface that the sqlite page cache
+** subsystem. The page cache subsystem reads and writes a file a page
+** at a time and provides a journal for rollback.
+**
+** @(#) $Id$
+*/
+
+/*
+** The size of one page
+**
+** You can change this value to another (reasonable) power of two
+** such as 512, 2048, 4096, or 8192 and things will still work. But
+** experiments show that a page size of 1024 gives the best speed.
+** (The speed differences are minimal.)
+*/
+#define SQLITE_PAGE_SIZE 1024
+
+/*
+** Maximum number of pages in one database. (This is a limitation of
+** imposed by 4GB files size limits.)
+*/
+#define SQLITE_MAX_PAGE 1073741823
+
+/*
+** The type used to represent a page number. The first page in a file
+** is called page 1. 0 is used to represent "not a page".
+*/
+typedef unsigned int Pgno;
+
+/*
+** Each open file is managed by a separate instance of the "Pager" structure.
+*/
+typedef struct Pager Pager;
+
+/*
+** See source code comments for a detailed description of the following
+** routines:
+*/
+int sqlitepager_open(Pager **ppPager, const char *zFilename,
+ int nPage, int nExtra, int useJournal);
+void sqlitepager_set_destructor(Pager*, void(*)(void*));
+void sqlitepager_set_cachesize(Pager*, int);
+int sqlitepager_close(Pager *pPager);
+int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage);
+void *sqlitepager_lookup(Pager *pPager, Pgno pgno);
+int sqlitepager_ref(void*);
+int sqlitepager_unref(void*);
+Pgno sqlitepager_pagenumber(void*);
+int sqlitepager_write(void*);
+int sqlitepager_iswriteable(void*);
+int sqlitepager_pagecount(Pager*);
+int sqlitepager_begin(void*);
+int sqlitepager_commit(Pager*);
+int sqlitepager_rollback(Pager*);
+int sqlitepager_isreadonly(Pager*);
+int sqlitepager_ckpt_begin(Pager*);
+int sqlitepager_ckpt_commit(Pager*);
+int sqlitepager_ckpt_rollback(Pager*);
+void sqlitepager_dont_rollback(void*);
+void sqlitepager_dont_write(Pager*, Pgno);
+int *sqlitepager_stats(Pager*);
+void sqlitepager_set_safety_level(Pager*,int);
+
+#ifdef SQLITE_TEST
+void sqlitepager_refdump(Pager*);
+int pager_refinfo_enable;
+int journal_format;
+#endif