⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 最新的sqlite3.6.2源代码
💻
字号:
This directory contains an SQLite extension that implements a virtual table type that allows users to create, query and manipulate r-tree[1] data structures inside of SQLite databases. Users create, populate and query r-tree structures using ordinary SQL statements.    1.  SQL Interface        1.1  Table Creation        1.2  Data Manipulation        1.3  Data Querying        1.4  Introspection and Analysis    2.  Compilation and Deployment    3.  References1. SQL INTERFACE  1.1 Table Creation.    All r-tree virtual tables have an odd number of columns between    3 and 11. Unlike regular SQLite tables, r-tree tables are strongly     typed.     The leftmost column is always the pimary key and contains 64-bit     integer values. Each subsequent column contains a 32-bit real    value. For each pair of real values, the first (leftmost) must be     less than or equal to the second. R-tree tables may be     constructed using the following syntax:      CREATE VIRTUAL TABLE <name> USING rtree(<column-names>)    For example:      CREATE VIRTUAL TABLE boxes USING rtree(boxno, xmin, xmax, ymin, ymax);      INSERT INTO boxes VALUES(1, 1.0, 3.0, 2.0, 4.0);    Constructing a virtual r-tree table <name> creates the following three    real tables in the database to store the data structure:      <name>_node      <name>_rowid      <name>_parent    Dropping or modifying the contents of these tables directly will    corrupt the r-tree structure. To delete an r-tree from a database,    use a regular DROP TABLE statement:      DROP TABLE <name>;    Dropping the main r-tree table automatically drops the automatically    created tables.   1.2 Data Manipulation (INSERT, UPDATE, DELETE).    The usual INSERT, UPDATE or DELETE syntax is used to manipulate data    stored in an r-tree table. Please note the following:      * Inserting a NULL value into the primary key column has the        same effect as inserting a NULL into an INTEGER PRIMARY KEY        column of a regular table. The system automatically assigns        an unused integer key value to the new record. Usually, this        is one greater than the largest primary key value currently        present in the table.      * Attempting to insert a duplicate primary key value fails with        an SQLITE_CONSTRAINT error.      * Attempting to insert or modify a record such that the value        stored in the (N*2)th column is greater than that stored in        the (N*2+1)th column fails with an SQLITE_CONSTRAINT error.      * When a record is inserted, values are always converted to         the required type (64-bit integer or 32-bit real) as if they        were part of an SQL CAST expression. Non-numeric strings are        converted to zero.  1.3 Queries.    R-tree tables may be queried using all of the same SQL syntax supported    by regular tables. However, some query patterns are more efficient    than others.    R-trees support fast lookup by primary key value (O(logN), like     regular tables).    Any combination of equality and range (<, <=, >, >=) constraints    on spatial data columns may be used to optimize other queries. This    is the key advantage to using r-tree tables instead of creating     indices on regular tables.  1.4 Introspection and Analysis.    TODO: Describe rtreenode() and rtreedepth() functions.2. COMPILATION AND USAGE  The easiest way to compile and use the RTREE extension is to build  and use it as a dynamically loadable SQLite extension. To do this  using gcc on *nix:    gcc -shared rtree.c -o libSqliteRtree.so  You may need to add "-I" flags so that gcc can find sqlite3ext.h  and sqlite3.h. The resulting shared lib, libSqliteRtree.so, may be  loaded into sqlite in the same way as any other dynamicly loadable  extension.3. REFERENCES  [1]  Atonin Guttman, "R-trees - A Dynamic Index Structure For Spatial        Searching", University of California Berkeley, 1984.  [2]  Norbert Beckmann, Hans-Peter Kriegel, Ralf Schneider, Bernhard Seeger,       "The R*-tree: An Efficient and Robust Access Method for Points and       Rectangles", Universitaet Bremen, 1990.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -