sqlite3-ruby 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sqlite3-ruby might be problematic. Click here for more details.
- data/doc/faq/faq.html +28 -28
- data/lib/sqlite3/database.rb +9 -7
- data/lib/sqlite3/driver/dl/api.rb +3 -1
- data/lib/sqlite3/driver/dl/api.rb~ +182 -0
- data/lib/sqlite3/version.rb +1 -1
- metadata +3 -2
data/doc/faq/faq.html
CHANGED
@@ -62,25 +62,25 @@
|
|
62
62
|
<ul>
|
63
63
|
<li>How do I do a database query?
|
64
64
|
<ul>
|
65
|
-
<li><a href='#
|
66
|
-
<li><a href='#
|
67
|
-
<li><a href='#
|
68
|
-
<li><a href='#
|
69
|
-
<li><a href='#
|
65
|
+
<li><a href='#538646076'>I just want an array of the rows…</a></li>
|
66
|
+
<li><a href='#538646036'>I’d like to use a block to iterate through the rows…</a></li>
|
67
|
+
<li><a href='#538645996'>I need to get the column names as well as the rows…</a></li>
|
68
|
+
<li><a href='#538645956'>I just want the first row of the result set…</a></li>
|
69
|
+
<li><a href='#538645916'>I just want the first value of the first row of the result set…</a></li>
|
70
70
|
</ul>
|
71
71
|
</li>
|
72
|
-
<li><a href='#
|
73
|
-
<li><a href='#
|
74
|
-
<li><a href='#
|
75
|
-
<li><a href='#
|
76
|
-
<li><a href='#
|
77
|
-
<li><a href='#
|
78
|
-
<li><a href='#
|
79
|
-
<li><a href='#
|
80
|
-
<li><a href='#
|
72
|
+
<li><a href='#538645846'>How do I prepare a statement for repeated execution?</a></li>
|
73
|
+
<li><a href='#538645806'>How do I use placeholders in an <span class="caps">SQL</span> statement?</a></li>
|
74
|
+
<li><a href='#538645766'>How do I discover metadata about a query?</a></li>
|
75
|
+
<li><a href='#538645726'>I’d like the rows to be indexible by column name.</a></li>
|
76
|
+
<li><a href='#538645686'>I’d like the values from a query to be the correct types, instead of String.</a></li>
|
77
|
+
<li><a href='#538645646'>How do insert binary data into the database?</a></li>
|
78
|
+
<li><a href='#538645606'>How do I do a <span class="caps">DDL </span>(insert, update, delete) statement?</a></li>
|
79
|
+
<li><a href='#538645566'>How do I execute multiple statements in a single string?</a></li>
|
80
|
+
<li><a href='#538645526'>How do I begin/end a transaction?</a></li>
|
81
81
|
</ul>
|
82
82
|
</div>
|
83
|
-
<a name='
|
83
|
+
<a name='538646076'></a>
|
84
84
|
<div class='faq-title'>How do I do a database query? I just want an array of the rows…</div>
|
85
85
|
<div class='faq-answer'><p>Use the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a> method. If you don’t give it a block, it will return an array of all the rows:</p>
|
86
86
|
|
@@ -91,7 +91,7 @@
|
|
91
91
|
db = SQLite3::<a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database</a>.new( "test.db" )
|
92
92
|
rows = db.execute( "select * from test" )
|
93
93
|
</pre></div>
|
94
|
-
<a name='
|
94
|
+
<a name='538646036'></a>
|
95
95
|
<div class='faq-title'>How do I do a database query? I’d like to use a block to iterate through the rows…</div>
|
96
96
|
<div class='faq-answer'><p>Use the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a> method. If you give it a block, each row of the result will be yielded to the block:</p>
|
97
97
|
|
@@ -104,7 +104,7 @@
|
|
104
104
|
...
|
105
105
|
end
|
106
106
|
</pre></div>
|
107
|
-
<a name='
|
107
|
+
<a name='538645996'></a>
|
108
108
|
<div class='faq-title'>How do I do a database query? I need to get the column names as well as the rows…</div>
|
109
109
|
<div class='faq-answer'><p>Use the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute2</a> method. This works just like <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a>; if you don’t give it a block, it returns an array of rows; otherwise, it will yield each row to the block. <em>However</em>, the first row returned is always an array of the column names from the query:</p>
|
110
110
|
|
@@ -126,7 +126,7 @@
|
|
126
126
|
end
|
127
127
|
end
|
128
128
|
</pre></div>
|
129
|
-
<a name='
|
129
|
+
<a name='538645956'></a>
|
130
130
|
<div class='faq-title'>How do I do a database query? I just want the first row of the result set…</div>
|
131
131
|
<div class='faq-answer'><p>Easy. Just call <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#get_first_row</a>:</p>
|
132
132
|
|
@@ -135,7 +135,7 @@
|
|
135
135
|
row = db.get_first_row( "select * from table" )
|
136
136
|
</pre>
|
137
137
|
<p>This also supports bind variables, just like <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a> and friends.</p></div>
|
138
|
-
<a name='
|
138
|
+
<a name='538645916'></a>
|
139
139
|
<div class='faq-title'>How do I do a database query? I just want the first value of the first row of the result set…</div>
|
140
140
|
<div class='faq-answer'><p>Also easy. Just call <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#get_first_value</a>:</p>
|
141
141
|
|
@@ -144,7 +144,7 @@
|
|
144
144
|
count = db.get_first_value( "select count(*) from table" )
|
145
145
|
</pre>
|
146
146
|
<p>This also supports bind variables, just like <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a> and friends.</p></div>
|
147
|
-
<a name='
|
147
|
+
<a name='538645846'></a>
|
148
148
|
<div class='faq-title'>How do I prepare a statement for repeated execution?</div>
|
149
149
|
<div class='faq-answer'><p>If the same statement is going to be executed repeatedly, you can speed things up a bit by <em>preparing</em> the statement. You do this via the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#prepare</a> method. It returns a <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Statement.html'>Statement</a> object, and you can then invoke #execute on that to get the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/ResultSet.html'>ResultSet</a>:</p>
|
150
150
|
|
@@ -171,7 +171,7 @@
|
|
171
171
|
end
|
172
172
|
</pre>
|
173
173
|
<p>This is made more useful by the ability to bind variables to placeholders via the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Statement.html'>Statement#bind_param</a> and <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Statement.html'>Statement#bind_params</a> methods. (See the next <span class="caps">FAQ</span> for details.)</p></div>
|
174
|
-
<a name='
|
174
|
+
<a name='538645806'></a>
|
175
175
|
<div class='faq-title'>How do I use placeholders in an <span class="caps">SQL</span> statement?</div>
|
176
176
|
<div class='faq-answer'><p>Placeholders in an <span class="caps">SQL</span> statement take any of the following formats:</p>
|
177
177
|
<ul>
|
@@ -235,7 +235,7 @@
|
|
235
235
|
|
236
236
|
stmt.bind_params( "value", "name" => "bob" )
|
237
237
|
</pre></div>
|
238
|
-
<a name='
|
238
|
+
<a name='538645766'></a>
|
239
239
|
<div class='faq-title'>How do I discover metadata about a query?</div>
|
240
240
|
<div class='faq-answer'><p>If you ever want to know the names or types of the columns in a result set, you can do it in several ways.</p>
|
241
241
|
|
@@ -265,7 +265,7 @@
|
|
265
265
|
p stmt.columns
|
266
266
|
p stmt.types
|
267
267
|
</pre></div>
|
268
|
-
<a name='
|
268
|
+
<a name='538645726'></a>
|
269
269
|
<div class='faq-title'>I’d like the rows to be indexible by column name.</div>
|
270
270
|
<div class='faq-answer'><p>By default, each row from a query is returned as an Array of values. This means that you can only obtain values by their index. Sometimes, however, you would like to obtain values by their column name.</p>
|
271
271
|
|
@@ -291,7 +291,7 @@
|
|
291
291
|
p row[1] == row['column2']
|
292
292
|
end
|
293
293
|
</pre></div>
|
294
|
-
<a name='
|
294
|
+
<a name='538645686'></a>
|
295
295
|
<div class='faq-title'>I’d like the values from a query to be the correct types, instead of String.</div>
|
296
296
|
<div class='faq-answer'><p>You can turn on “type translation” by setting <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#type_translation</a> to true:</p>
|
297
297
|
|
@@ -327,7 +327,7 @@
|
|
327
327
|
obj = db.get_first_value( "select thing from objects where name='bob'" )
|
328
328
|
p obj == h
|
329
329
|
</pre></div>
|
330
|
-
<a name='
|
330
|
+
<a name='538645646'></a>
|
331
331
|
<div class='faq-title'>How do insert binary data into the database?</div>
|
332
332
|
<div class='faq-answer'><p>Use blobs. Blobs are new features of SQLite3. You have to use bind variables to make it work:</p>
|
333
333
|
|
@@ -338,7 +338,7 @@
|
|
338
338
|
SQLite3::Blob.new( "a\0b\0c\0d ) )
|
339
339
|
</pre>
|
340
340
|
<p>The blob values must be indicated explicitly by binding each parameter to a value of type SQLite3::Blob.</p></div>
|
341
|
-
<a name='
|
341
|
+
<a name='538645606'></a>
|
342
342
|
<div class='faq-title'>How do I do a <span class="caps">DDL </span>(insert, update, delete) statement?</div>
|
343
343
|
<div class='faq-answer'><p>You can actually do inserts, updates, and deletes in exactly the same way as selects, but in general the <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a> method will be most convenient:</p>
|
344
344
|
|
@@ -346,7 +346,7 @@
|
|
346
346
|
<pre>
|
347
347
|
db.execute( "insert into table values ( ?, ? )", *bind_vars )
|
348
348
|
</pre></div>
|
349
|
-
<a name='
|
349
|
+
<a name='538645566'></a>
|
350
350
|
<div class='faq-title'>How do I execute multiple statements in a single string?</div>
|
351
351
|
<div class='faq-answer'><p>The standard query methods (<a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute</a>, <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute2</a>, <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#query</a>, and <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Statement.html'>Statement#execute</a>) will only execute the first statement in the string that is given to them. Thus, if you have a string with multiple <span class="caps">SQL</span> statements, each separated by a string, you can’t use those methods to execute them all at once.</p>
|
352
352
|
|
@@ -368,7 +368,7 @@
|
|
368
368
|
db.execute_batch( sql )
|
369
369
|
</pre>
|
370
370
|
<p>Unlike the other query methods, <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#execute_batch</a> accepts no block. It will also only ever return <ins>nil</ins>. Thus, it is really only suitable for batch processing of <span class="caps">DDL</span> statements.</p></div>
|
371
|
-
<a name='
|
371
|
+
<a name='538645526'></a>
|
372
372
|
<div class='faq-title'>How do I begin/end a transaction?</div>
|
373
373
|
<div class='faq-answer'><p>Use <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#transaction</a> to start a transaction. If you give it a block, the block will be automatically committed at the end of the block, unless an exception was raised, in which case the transaction will be rolled back. (Never explicitly call <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#commit</a> or <a href='http://sqlite-ruby.rubyforge.org/classes/SQLite/Database.html'>Database#rollback</a> inside of a transaction block—you’ll get errors when the block terminates!)</p>
|
374
374
|
|
data/lib/sqlite3/database.rb
CHANGED
@@ -71,7 +71,16 @@ module SQLite3
|
|
71
71
|
include Pragmas
|
72
72
|
|
73
73
|
class <<self
|
74
|
+
|
74
75
|
alias :open :new
|
76
|
+
|
77
|
+
# Quotes the given string, making it safe to use in an SQL statement.
|
78
|
+
# It replaces all instances of the single-quote character with two
|
79
|
+
# single-quote characters. The modified string is returned.
|
80
|
+
def quote( string )
|
81
|
+
string.gsub( /'/, "''" )
|
82
|
+
end
|
83
|
+
|
75
84
|
end
|
76
85
|
|
77
86
|
# The low-level opaque database handle that this object wraps.
|
@@ -108,13 +117,6 @@ module SQLite3
|
|
108
117
|
@translator = nil
|
109
118
|
end
|
110
119
|
|
111
|
-
# Quotes the given string, making it safe to use in an SQL statement.
|
112
|
-
# It replaces all instances of the single-quote character with two
|
113
|
-
# single-quote characters. The modified string is returned.
|
114
|
-
def quote( string )
|
115
|
-
string.gsub( /'/, "''" )
|
116
|
-
end
|
117
|
-
|
118
120
|
# Return +true+ if the string is a valid (ie, parsable) SQL statement, and
|
119
121
|
# +false+ otherwise. If +utf16+ is +true+, then the string is a UTF-16
|
120
122
|
# character string.
|
@@ -38,6 +38,8 @@ module SQLite3 ; module Driver; module DL;
|
|
38
38
|
extend ::DL::Importable
|
39
39
|
|
40
40
|
library_name = case RUBY_PLATFORM.downcase
|
41
|
+
when /darwin/
|
42
|
+
"libsqlite3.dylib"
|
41
43
|
when /linux/
|
42
44
|
"libsqlite3.so"
|
43
45
|
when /win32/
|
@@ -49,7 +51,7 @@ The platform '#{RUBY_PLATFORM}' is unsupported. Please help the author by
|
|
49
51
|
editing the following file to allow your sqlite3 library to be found, and
|
50
52
|
submitting a patch to jamis_buck@byu.edu. Thanks!
|
51
53
|
|
52
|
-
#{
|
54
|
+
#{__FILE__}
|
53
55
|
=========================================================================== * ==
|
54
56
|
EOF
|
55
57
|
end
|
@@ -0,0 +1,182 @@
|
|
1
|
+
#--
|
2
|
+
# =============================================================================
|
3
|
+
# Copyright (c) 2004, Jamis Buck (jgb3@email.byu.edu)
|
4
|
+
# All rights reserved.
|
5
|
+
#
|
6
|
+
# Redistribution and use in source and binary forms, with or without
|
7
|
+
# modification, are permitted provided that the following conditions are met:
|
8
|
+
#
|
9
|
+
# * Redistributions of source code must retain the above copyright notice,
|
10
|
+
# this list of conditions and the following disclaimer.
|
11
|
+
#
|
12
|
+
# * Redistributions in binary form must reproduce the above copyright
|
13
|
+
# notice, this list of conditions and the following disclaimer in the
|
14
|
+
# documentation and/or other materials provided with the distribution.
|
15
|
+
#
|
16
|
+
# * The names of its contributors may not be used to endorse or promote
|
17
|
+
# products derived from this software without specific prior written
|
18
|
+
# permission.
|
19
|
+
#
|
20
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
24
|
+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
+
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
30
|
+
# =============================================================================
|
31
|
+
#++
|
32
|
+
|
33
|
+
require 'dl/import'
|
34
|
+
|
35
|
+
module SQLite3 ; module Driver; module DL;
|
36
|
+
|
37
|
+
module API
|
38
|
+
extend ::DL::Importable
|
39
|
+
|
40
|
+
library_name = case RUBY_PLATFORM.downcase
|
41
|
+
when /linux/
|
42
|
+
"libsqlite3.so"
|
43
|
+
when /win32/
|
44
|
+
"sqlite3.dll"
|
45
|
+
else
|
46
|
+
abort <<-EOF
|
47
|
+
== * UNSUPPORTED PLATFORM ======================================================
|
48
|
+
The platform '#{RUBY_PLATFORM}' is unsupported. Please help the author by
|
49
|
+
editing the following file to allow your sqlite3 library to be found, and
|
50
|
+
submitting a patch to jamis_buck@byu.edu. Thanks!
|
51
|
+
|
52
|
+
#{' '*((74-__FILE__.length)/2)}-> #{__FILE__} <-
|
53
|
+
=========================================================================== * ==
|
54
|
+
EOF
|
55
|
+
end
|
56
|
+
|
57
|
+
if defined? SQLITE3_LIB_PATH
|
58
|
+
library_name = File.join( SQLITE3_LIB_PATH, library_name )
|
59
|
+
end
|
60
|
+
|
61
|
+
dlload library_name
|
62
|
+
|
63
|
+
typealias "db", "void*"
|
64
|
+
typealias "stmt", "void*"
|
65
|
+
typealias "value", "void*"
|
66
|
+
typealias "context", "void*"
|
67
|
+
|
68
|
+
# until Ruby/DL supports 64-bit ints, we'll just treat them as 32-bit ints
|
69
|
+
typealias "int64", "unsigned long"
|
70
|
+
|
71
|
+
extern "const char *sqlite3_libversion()"
|
72
|
+
|
73
|
+
extern "int sqlite3_open(const char*,db*)"
|
74
|
+
extern "int sqlite3_open16(const void*,db*)"
|
75
|
+
extern "int sqlite3_close(db)"
|
76
|
+
extern "const char* sqlite3_errmsg(db)"
|
77
|
+
extern "void* sqlite3_errmsg16(db)"
|
78
|
+
extern "int sqlite3_errcode(db)"
|
79
|
+
|
80
|
+
extern "int sqlite3_prepare(db,const char*,int,stmt*,const char**)"
|
81
|
+
extern "int sqlite3_prepare16(db,const void*,int,stmt*,const void**)"
|
82
|
+
extern "int sqlite3_finalize(stmt)"
|
83
|
+
extern "int sqlite3_reset(stmt)"
|
84
|
+
extern "int sqlite3_step(stmt)"
|
85
|
+
|
86
|
+
extern "int64 sqlite3_last_insert_rowid(db)"
|
87
|
+
extern "int sqlite3_changes(db)"
|
88
|
+
extern "int sqlite3_total_changes(db)"
|
89
|
+
extern "void sqlite3_interrupt(db)"
|
90
|
+
extern "ibool sqlite3_complete(const char*)"
|
91
|
+
extern "ibool sqlite3_complete16(const void*)"
|
92
|
+
|
93
|
+
extern "int sqlite3_busy_handler(db,void*,void*)"
|
94
|
+
extern "int sqlite3_busy_timeout(db,int)"
|
95
|
+
|
96
|
+
extern "int sqlite3_set_authorizer(db,void*,void*)"
|
97
|
+
extern "void* sqlite3_trace(db,void*,void*)"
|
98
|
+
|
99
|
+
extern "int sqlite3_bind_blob(stmt,int,const void*,int,void*)"
|
100
|
+
extern "int sqlite3_bind_double(stmt,int,double)"
|
101
|
+
extern "int sqlite3_bind_int(stmt,int,int)"
|
102
|
+
extern "int sqlite3_bind_int64(stmt,int,int64)"
|
103
|
+
extern "int sqlite3_bind_null(stmt,int)"
|
104
|
+
extern "int sqlite3_bind_text(stmt,int,const char*,int,void*)"
|
105
|
+
extern "int sqlite3_bind_text16(stmt,int,const void*,int,void*)"
|
106
|
+
#extern "int sqlite3_bind_value(stmt,int,value)"
|
107
|
+
|
108
|
+
extern "int sqlite3_bind_parameter_count(stmt)"
|
109
|
+
extern "const char* sqlite3_bind_parameter_name(stmt,int)"
|
110
|
+
extern "int sqlite3_bind_parameter_index(stmt,const char*)"
|
111
|
+
|
112
|
+
extern "int sqlite3_column_count(stmt)"
|
113
|
+
extern "int sqlite3_data_count(stmt)"
|
114
|
+
|
115
|
+
extern "const void *sqlite3_column_blob(stmt,int)"
|
116
|
+
extern "int sqlite3_column_bytes(stmt,int)"
|
117
|
+
extern "int sqlite3_column_bytes16(stmt,int)"
|
118
|
+
extern "const char *sqlite3_column_decltype(stmt,int)"
|
119
|
+
extern "void *sqlite3_column_decltype16(stmt,int)"
|
120
|
+
extern "double sqlite3_column_double(stmt,int)"
|
121
|
+
extern "int sqlite3_column_int(stmt,int)"
|
122
|
+
extern "int64 sqlite3_column_int64(stmt,int)"
|
123
|
+
extern "const char *sqlite3_column_name(stmt,int)"
|
124
|
+
extern "const void *sqlite3_column_name16(stmt,int)"
|
125
|
+
extern "const char *sqlite3_column_text(stmt,int)"
|
126
|
+
extern "const void *sqlite3_column_text16(stmt,int)"
|
127
|
+
extern "int sqlite3_column_type(stmt,int)"
|
128
|
+
|
129
|
+
extern "int sqlite3_create_function(db,const char*,int,int,void*,void*,void*,void*)"
|
130
|
+
extern "int sqlite3_create_function16(db,const void*,int,int,void*,void*,void*,void*)"
|
131
|
+
extern "int sqlite3_aggregate_count(context)"
|
132
|
+
|
133
|
+
extern "const void *sqlite3_value_blob(value)"
|
134
|
+
extern "int sqlite3_value_bytes(value)"
|
135
|
+
extern "int sqlite3_value_bytes16(value)"
|
136
|
+
extern "double sqlite3_value_double(value)"
|
137
|
+
extern "int sqlite3_value_int(value)"
|
138
|
+
extern "int64 sqlite3_value_int64(value)"
|
139
|
+
extern "const char* sqlite3_value_text(value)"
|
140
|
+
extern "const void* sqlite3_value_text16(value)"
|
141
|
+
extern "const void* sqlite3_value_text16le(value)"
|
142
|
+
extern "const void* sqlite3_value_text16be(value)"
|
143
|
+
extern "int sqlite3_value_type(value)"
|
144
|
+
|
145
|
+
extern "void *sqlite3_aggregate_context(context,int)"
|
146
|
+
extern "void *sqlite3_user_data(context)"
|
147
|
+
extern "void *sqlite3_get_auxdata(context,int)"
|
148
|
+
extern "void sqlite3_set_auxdata(context,int,void*,void*)"
|
149
|
+
|
150
|
+
extern "void sqlite3_result_blob(context,const void*,int,void*)"
|
151
|
+
extern "void sqlite3_result_double(context,double)"
|
152
|
+
extern "void sqlite3_result_error(context,const char*,int)"
|
153
|
+
extern "void sqlite3_result_error16(context,const void*,int)"
|
154
|
+
extern "void sqlite3_result_int(context,int)"
|
155
|
+
extern "void sqlite3_result_int64(context,int64)"
|
156
|
+
extern "void sqlite3_result_null(context)"
|
157
|
+
extern "void sqlite3_result_text(context,const char*,int,void*)"
|
158
|
+
extern "void sqlite3_result_text16(context,const void*,int,void*)"
|
159
|
+
extern "void sqlite3_result_text16le(context,const void*,int,void*)"
|
160
|
+
extern "void sqlite3_result_text16be(context,const void*,int,void*)"
|
161
|
+
extern "void sqlite3_result_value(context,value)"
|
162
|
+
|
163
|
+
extern "int sqlite3_create_collation(db,const char*,int,void*,void*)"
|
164
|
+
extern "int sqlite3_create_collation16(db,const char*,int,void*,void*)"
|
165
|
+
extern "int sqlite3_collation_needed(db,void*,void*)"
|
166
|
+
extern "int sqlite3_collation_needed16(db,void*,void*)"
|
167
|
+
|
168
|
+
# ==== CRYPTO (NOT IN PUBLIC RELEASE) ====
|
169
|
+
if defined?( CRYPTO_API ) && CRYPTO_API
|
170
|
+
extern "int sqlite3_key(db,void*,int)"
|
171
|
+
extern "int sqlite3_rekey(db,void*,int)"
|
172
|
+
end
|
173
|
+
|
174
|
+
# ==== EXPERIMENTAL ====
|
175
|
+
if defined?( EXPERIMENTAL_API ) && EXPERIMENTAL_API
|
176
|
+
extern "int sqlite3_progress_handler(db,int,void*,void*)"
|
177
|
+
extern "int sqlite3_commit_hook(db,void*,void*)"
|
178
|
+
end
|
179
|
+
|
180
|
+
end
|
181
|
+
|
182
|
+
end ; end ; end
|
data/lib/sqlite3/version.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.3
|
|
3
3
|
specification_version: 1
|
4
4
|
name: sqlite3-ruby
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2004-12-
|
6
|
+
version: 0.6.0
|
7
|
+
date: 2004-12-29
|
8
8
|
summary: SQLite3/Ruby is a module to allow Ruby scripts to interface with a SQLite3 database.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- lib/sqlite3/driver/dl
|
47
47
|
- lib/sqlite3/driver/dl/driver.rb
|
48
48
|
- lib/sqlite3/driver/dl/api.rb
|
49
|
+
- lib/sqlite3/driver/dl/api.rb~
|
49
50
|
- test/bm.rb
|
50
51
|
- test/mocks.rb
|
51
52
|
- test/tests.rb
|