more OPEN consts as mode argument
we do not only want to create databases
This commit is contained in:
parent
e727b98d1d
commit
9d0c7708fb
2 changed files with 51 additions and 30 deletions
|
@ -185,14 +185,14 @@ UnQLite - Perl bindings for UnQLite
|
||||||
|
|
||||||
use UnQLite;
|
use UnQLite;
|
||||||
|
|
||||||
my $db = UnQLite->open('foo.db');
|
my $db = UnQLite->open('foo.db', UNQLITE_OPEN_READWRITE|UNQLITE_OPEN_CREATE);
|
||||||
$db->kv_store('foo', 'bar');
|
$db->kv_store('foo', 'bar');
|
||||||
say $db->kv_fetch('foo'); # => bar
|
say $db->kv_fetch('foo'); # => bar
|
||||||
$db->kv_delete('foo');
|
$db->kv_delete('foo');
|
||||||
undef $db; # close database
|
undef $db; # close database
|
||||||
|
|
||||||
# tie interface
|
# tie interface
|
||||||
tie my %hash, 'UnQLite', 'foo.db';
|
tie my %hash, 'UnQLite', 'foo.db', UNQLITE_OPEN_READWRITE;
|
||||||
$hash{foo} = 'bar';
|
$hash{foo} = 'bar';
|
||||||
say $hash{foo}; # => bar
|
say $hash{foo}; # => bar
|
||||||
|
|
||||||
|
@ -216,6 +216,17 @@ B<You can use UnQLite.pm as DBM>.
|
||||||
|
|
||||||
Open the database.
|
Open the database.
|
||||||
|
|
||||||
|
Modes:
|
||||||
|
|
||||||
|
UNQLITE_OPEN_CREATE (Default)
|
||||||
|
UNQLITE_OPEN_READONLY
|
||||||
|
UNQLITE_OPEN_READWRITE
|
||||||
|
UNQLITE_OPEN_EXCLUSIVE
|
||||||
|
UNQLITE_OPEN_TEMP_DB
|
||||||
|
UNQLITE_OPEN_OMIT_JOURNALING
|
||||||
|
UNQLITE_OPEN_IN_MEMORY
|
||||||
|
UNQLITE_OPEN_MMAP
|
||||||
|
|
||||||
=item C<< $db->kv_store($key, $value); >>
|
=item C<< $db->kv_store($key, $value); >>
|
||||||
|
|
||||||
Store the entry to database.
|
Store the entry to database.
|
||||||
|
|
|
@ -42,34 +42,44 @@ PROTOTYPES: DISABLE
|
||||||
|
|
||||||
BOOT:
|
BOOT:
|
||||||
HV* stash = gv_stashpvn("UnQLite", strlen("UnQLite"), TRUE);
|
HV* stash = gv_stashpvn("UnQLite", strlen("UnQLite"), TRUE);
|
||||||
newCONSTSUB(stash, "UNQLITE_OK", newSViv(UNQLITE_OK));
|
#define _XSTR(s) _STR(s)
|
||||||
newCONSTSUB(stash, "UNQLITE_NOMEM", newSViv(UNQLITE_NOMEM));
|
#define _STR(s) #s
|
||||||
newCONSTSUB(stash, "UNQLITE_ABORT", newSViv(UNQLITE_ABORT));
|
#define UnConst(c) newCONSTSUB(stash, "UNQ"_XSTR(c), newSViv(UNQ##c))
|
||||||
newCONSTSUB(stash, "UNQLITE_IOERR", newSViv(UNQLITE_IOERR));
|
UnConst(LITE_OK);
|
||||||
newCONSTSUB(stash, "UNQLITE_CORRUPT", newSViv(UNQLITE_CORRUPT));
|
UnConst(LITE_NOMEM);
|
||||||
newCONSTSUB(stash, "UNQLITE_LOCKED", newSViv(UNQLITE_LOCKED));
|
UnConst(LITE_ABORT);
|
||||||
newCONSTSUB(stash, "UNQLITE_BUSY", newSViv(UNQLITE_BUSY));
|
UnConst(LITE_IOERR);
|
||||||
newCONSTSUB(stash, "UNQLITE_DONE", newSViv(UNQLITE_DONE));
|
UnConst(LITE_CORRUPT);
|
||||||
newCONSTSUB(stash, "UNQLITE_PERM", newSViv(UNQLITE_PERM));
|
UnConst(LITE_LOCKED);
|
||||||
newCONSTSUB(stash, "UNQLITE_NOTIMPLEMENTED", newSViv(UNQLITE_NOTIMPLEMENTED));
|
UnConst(LITE_BUSY);
|
||||||
newCONSTSUB(stash, "UNQLITE_NOTFOUND", newSViv(UNQLITE_NOTFOUND));
|
UnConst(LITE_DONE);
|
||||||
newCONSTSUB(stash, "UNQLITE_NOOP", newSViv(UNQLITE_NOOP));
|
UnConst(LITE_PERM);
|
||||||
newCONSTSUB(stash, "UNQLITE_INVALID", newSViv(UNQLITE_INVALID));
|
UnConst(LITE_NOTIMPLEMENTED);
|
||||||
newCONSTSUB(stash, "UNQLITE_EOF", newSViv(UNQLITE_EOF));
|
UnConst(LITE_NOTFOUND);
|
||||||
newCONSTSUB(stash, "UNQLITE_UNKNOWN", newSViv(UNQLITE_UNKNOWN));
|
UnConst(LITE_NOOP);
|
||||||
newCONSTSUB(stash, "UNQLITE_LIMIT", newSViv(UNQLITE_LIMIT));
|
UnConst(LITE_INVALID);
|
||||||
newCONSTSUB(stash, "UNQLITE_EXISTS", newSViv(UNQLITE_EXISTS));
|
UnConst(LITE_EOF);
|
||||||
newCONSTSUB(stash, "UNQLITE_EMPTY", newSViv(UNQLITE_EMPTY));
|
UnConst(LITE_UNKNOWN);
|
||||||
newCONSTSUB(stash, "UNQLITE_COMPILE_ERR", newSViv(UNQLITE_COMPILE_ERR));
|
UnConst(LITE_LIMIT);
|
||||||
newCONSTSUB(stash, "UNQLITE_VM_ERR", newSViv(UNQLITE_VM_ERR));
|
UnConst(LITE_EXISTS);
|
||||||
newCONSTSUB(stash, "UNQLITE_FULL", newSViv(UNQLITE_FULL));
|
UnConst(LITE_EMPTY);
|
||||||
newCONSTSUB(stash, "UNQLITE_CANTOPEN", newSViv(UNQLITE_CANTOPEN));
|
UnConst(LITE_COMPILE_ERR);
|
||||||
newCONSTSUB(stash, "UNQLITE_READ_ONLY", newSViv(UNQLITE_READ_ONLY));
|
UnConst(LITE_VM_ERR);
|
||||||
newCONSTSUB(stash, "UNQLITE_LOCKERR", newSViv(UNQLITE_LOCKERR));
|
UnConst(LITE_FULL);
|
||||||
|
UnConst(LITE_CANTOPEN);
|
||||||
newCONSTSUB(stash, "UNQLITE_CURSOR_MATCH_EXACT", newSViv(UNQLITE_CURSOR_MATCH_EXACT));
|
UnConst(LITE_READ_ONLY);
|
||||||
newCONSTSUB(stash, "UNQLITE_CURSOR_MATCH_LE", newSViv(UNQLITE_CURSOR_MATCH_LE));
|
UnConst(LITE_LOCKERR);
|
||||||
newCONSTSUB(stash, "UNQLITE_CURSOR_MATCH_GE", newSViv(UNQLITE_CURSOR_MATCH_GE));
|
UnConst(LITE_OPEN_READONLY);
|
||||||
|
UnConst(LITE_OPEN_READWRITE);
|
||||||
|
UnConst(LITE_OPEN_CREATE);
|
||||||
|
UnConst(LITE_OPEN_EXCLUSIVE);
|
||||||
|
UnConst(LITE_OPEN_TEMP_DB);
|
||||||
|
UnConst(LITE_OPEN_OMIT_JOURNALING);
|
||||||
|
UnConst(LITE_OPEN_IN_MEMORY);
|
||||||
|
UnConst(LITE_OPEN_MMAP);
|
||||||
|
UnConst(LITE_CURSOR_MATCH_EXACT);
|
||||||
|
UnConst(LITE_CURSOR_MATCH_LE);
|
||||||
|
UnConst(LITE_CURSOR_MATCH_GE);
|
||||||
|
|
||||||
SV*
|
SV*
|
||||||
open(klass, filename, mode=UNQLITE_OPEN_CREATE)
|
open(klass, filename, mode=UNQLITE_OPEN_CREATE)
|
||||||
|
|
Loading…
Add table
Reference in a new issue