do_sqlite3 0.10.3 → 0.10.4.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +1 -1
- data/README.markdown +2 -9
- data/Rakefile +12 -45
- data/ext/do_sqlite3/do_common.c +526 -0
- data/ext/do_sqlite3/do_common.h +170 -0
- data/ext/do_sqlite3/do_sqlite3.c +171 -537
- data/ext/do_sqlite3/do_sqlite3.h +3 -49
- data/ext/do_sqlite3/do_sqlite3_extension.c +28 -29
- data/ext/do_sqlite3/error.h +30 -56
- data/lib/do_sqlite3.rb +8 -3
- data/lib/do_sqlite3/version.rb +1 -1
- data/spec/command_spec.rb +2 -2
- data/spec/connection_spec.rb +9 -9
- data/spec/encoding_spec.rb +3 -3
- data/spec/error/sql_error_spec.rb +2 -2
- data/spec/reader_spec.rb +2 -2
- data/spec/result_spec.rb +4 -4
- data/spec/spec_helper.rb +14 -11
- data/spec/typecast/array_spec.rb +2 -2
- data/spec/typecast/bigdecimal_spec.rb +2 -2
- data/spec/typecast/boolean_spec.rb +2 -2
- data/spec/typecast/byte_array_spec.rb +2 -2
- data/spec/typecast/class_spec.rb +2 -2
- data/spec/typecast/date_spec.rb +2 -2
- data/spec/typecast/datetime_spec.rb +2 -2
- data/spec/typecast/float_spec.rb +3 -3
- data/spec/typecast/integer_spec.rb +2 -2
- data/spec/typecast/nil_spec.rb +5 -5
- data/spec/typecast/other_spec.rb +2 -2
- data/spec/typecast/range_spec.rb +2 -2
- data/spec/typecast/string_spec.rb +2 -2
- data/spec/typecast/time_spec.rb +2 -2
- data/tasks/compile.rake +28 -29
- data/tasks/spec.rake +8 -19
- metadata +23 -20
data/spec/typecast/array_spec.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/array_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/array_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with Array' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting Array'
|
|
8
8
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/bigdecimal_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/bigdecimal_spec'
|
|
5
5
|
|
|
6
6
|
# Sqlite3 doesn't support decimals natively, so autocasting is not available:
|
|
7
7
|
# http://www.sqlite.org/datatype3.html
|
|
8
8
|
|
|
9
9
|
describe 'DataObjects::Sqlite3 with BigDecimal' do
|
|
10
|
-
|
|
10
|
+
it_should_behave_like 'supporting BigDecimal'
|
|
11
11
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/boolean_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/boolean_spec'
|
|
5
5
|
|
|
6
6
|
# Sqlite3 doesn't support booleans natively, so autocasting is not available:
|
|
7
7
|
# http://www.sqlite.org/datatype3.html
|
|
8
8
|
|
|
9
9
|
describe 'DataObjects::Sqlite3 with Boolean' do
|
|
10
|
-
|
|
10
|
+
it_should_behave_like 'supporting Boolean'
|
|
11
11
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/byte_array_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/byte_array_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with ByteArray' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting ByteArray'
|
|
8
8
|
end
|
data/spec/typecast/class_spec.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/class_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/class_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with Class' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting Class'
|
|
8
8
|
end
|
data/spec/typecast/date_spec.rb
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/date_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/date_spec'
|
|
5
5
|
|
|
6
6
|
# Sqlite3 doesn't support dates natively, so autocasting is not available:
|
|
7
7
|
# http://www.sqlite.org/datatype3.html
|
|
8
8
|
|
|
9
9
|
describe 'DataObjects::Sqlite3 with Date' do
|
|
10
|
-
|
|
10
|
+
it_should_behave_like 'supporting Date'
|
|
11
11
|
end
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/datetime_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/datetime_spec'
|
|
5
5
|
|
|
6
6
|
# Sqlite3 doesn't support datetimes natively, so autocasting is not available:
|
|
7
7
|
# http://www.sqlite.org/datatype3.html
|
|
8
8
|
|
|
9
9
|
describe 'DataObjects::Sqlite3 with DateTime' do
|
|
10
|
-
|
|
10
|
+
it_should_behave_like 'supporting DateTime'
|
|
11
11
|
end
|
data/spec/typecast/float_spec.rb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/float_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/float_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with Float' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting Float'
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
describe 'DataObjects::Sqlite3 with Float' do
|
|
11
|
-
|
|
11
|
+
it_should_behave_like 'supporting Float autocasting'
|
|
12
12
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/integer_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/integer_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with Integer' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting Integer'
|
|
8
8
|
end
|
data/spec/typecast/nil_spec.rb
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/nil_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/nil_spec'
|
|
5
5
|
|
|
6
6
|
# splitting the descibe into two separate declaration avoids
|
|
7
|
-
# concurrent execution of the "
|
|
7
|
+
# concurrent execution of the "it_should_behave_like ....." calls
|
|
8
8
|
# which would lock the database
|
|
9
9
|
|
|
10
10
|
describe 'DataObjects::Sqlite3 with Nil' do
|
|
11
|
-
|
|
11
|
+
it_should_behave_like 'supporting Nil'
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
describe 'DataObjects::Sqlite3 with Nil' do
|
|
15
|
-
|
|
15
|
+
it_should_behave_like 'supporting writing an Nil'
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
describe 'DataObjects::Sqlite3 with Nil' do
|
|
19
|
-
|
|
19
|
+
it_should_behave_like 'supporting Nil autocasting'
|
|
20
20
|
end
|
data/spec/typecast/other_spec.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/other_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/other_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::H2 with other (unknown) type' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting other (unknown) type'
|
|
8
8
|
end
|
data/spec/typecast/range_spec.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/range_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/range_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with Range' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting Range'
|
|
8
8
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/string_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/string_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with String' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting String'
|
|
8
8
|
end
|
data/spec/typecast/time_spec.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# encoding: utf-8
|
|
2
2
|
|
|
3
3
|
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'spec_helper'))
|
|
4
|
-
require 'data_objects/spec/typecast/time_spec'
|
|
4
|
+
require 'data_objects/spec/shared/typecast/time_spec'
|
|
5
5
|
|
|
6
6
|
describe 'DataObjects::Sqlite3 with Time' do
|
|
7
|
-
|
|
7
|
+
it_should_behave_like 'supporting Time'
|
|
8
8
|
end
|
data/tasks/compile.rake
CHANGED
|
@@ -3,50 +3,49 @@ begin
|
|
|
3
3
|
require 'rake/extensiontask'
|
|
4
4
|
require 'rake/javaextensiontask'
|
|
5
5
|
|
|
6
|
-
# Hack to avoid "allocator undefined for Proc" issue when unpacking Gems:
|
|
7
|
-
# gemspec provided by Jeweler uses Rake::FileList for files, test_files and
|
|
8
|
-
# extra_rdoc_files, and procs cannot be marshalled.
|
|
9
6
|
def gemspec
|
|
10
|
-
@clean_gemspec ||=
|
|
7
|
+
@clean_gemspec ||= Gem::Specification::load(File.expand_path('../../do_sqlite3.gemspec', __FILE__))
|
|
11
8
|
end
|
|
12
9
|
|
|
13
|
-
|
|
10
|
+
unless JRUBY
|
|
11
|
+
Rake::ExtensionTask.new('do_sqlite3', gemspec) do |ext|
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
sqlite3_lib = File.expand_path(File.join(File.dirname(__FILE__), '..', 'vendor', 'sqlite3'))
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
ext.lib_dir = "lib/#{gemspec.name}"
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
ext.cross_compile = true
|
|
18
|
+
ext.cross_platform = ['x86-mingw32', 'x86-mswin32-60']
|
|
19
|
+
ext.cross_config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
ext.cross_compiling do |gemspec|
|
|
22
|
+
gemspec.post_install_message = <<-POST_INSTALL_MESSAGE
|
|
25
23
|
|
|
26
|
-
=============================================================================
|
|
24
|
+
=============================================================================
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
You've installed the binary version of #{gemspec.name}.
|
|
27
|
+
It was built using Sqlite3 version #{BINARY_VERSION}.
|
|
28
|
+
It's recommended to use the exact same version to avoid potential issues.
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
At the time of building this gem, the necessary DLL files where available
|
|
31
|
+
in the following download:
|
|
34
32
|
|
|
35
|
-
|
|
33
|
+
http://www.sqlite.org/sqlitedll-#{BINARY_VERSION}.zip
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
You can put the sqlite3.dll available in this package in your Ruby bin
|
|
36
|
+
directory, for example C:\\Ruby\\bin
|
|
39
37
|
|
|
40
|
-
=============================================================================
|
|
38
|
+
=============================================================================
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
POST_INSTALL_MESSAGE
|
|
41
|
+
end
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
# automatically add build options to avoid need of manual input
|
|
44
|
+
if RUBY_PLATFORM =~ /mswin|mingw/ then
|
|
45
|
+
ext.config_options << "--with-sqlite3-dir=#{sqlite3_lib}"
|
|
46
|
+
end
|
|
49
47
|
|
|
48
|
+
end
|
|
50
49
|
end
|
|
51
50
|
|
|
52
51
|
Rake::JavaExtensionTask.new('do_sqlite3', gemspec) do |ext|
|
|
@@ -56,7 +55,7 @@ begin
|
|
|
56
55
|
ext.classpath = '../do_jdbc/lib/do_jdbc_internal.jar'
|
|
57
56
|
ext.java_compiling do |gem|
|
|
58
57
|
gem.add_dependency 'jdbc-sqlite3', '>=3.5.8'
|
|
59
|
-
gem.add_dependency 'do_jdbc', '0.10.
|
|
58
|
+
gem.add_dependency 'do_jdbc', '0.10.4.rc1'
|
|
60
59
|
end
|
|
61
60
|
end
|
|
62
61
|
rescue LoadError
|
data/tasks/spec.rake
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'rspec/core/rake_task'
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
spec.
|
|
5
|
-
spec.
|
|
6
|
-
spec.verbose = true
|
|
3
|
+
RSpec::Core::RakeTask.new(:spec => [:clean, :compile]) do |spec|
|
|
4
|
+
spec.pattern = './spec/**/*_spec.rb'
|
|
5
|
+
spec.skip_bundler = true
|
|
7
6
|
end
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
require 'rcov/rcovtask'
|
|
14
|
-
Rcov::RcovTask.new do |spec|
|
|
15
|
-
spec.libs << 'spec'
|
|
16
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
|
17
|
-
spec.verbose = true
|
|
18
|
-
end
|
|
19
|
-
rescue LoadError
|
|
20
|
-
task :rcov do
|
|
21
|
-
abort 'RCov is not available. In order to run rcov, you must: gem install rcov'
|
|
22
|
-
end
|
|
8
|
+
RSpec::Core::RakeTask.new(:rcov => [:clean, :compile]) do |rcov|
|
|
9
|
+
rcov.pattern = "./spec/**/*_spec.rb"
|
|
10
|
+
rcov.rcov = true
|
|
11
|
+
rcov.rcov_opts = File.read('spec/rcov.opts').split(/\s+/)
|
|
23
12
|
end
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: do_sqlite3
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
5
|
-
prerelease:
|
|
4
|
+
hash: 977940494
|
|
5
|
+
prerelease: true
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 10
|
|
9
|
-
-
|
|
10
|
-
|
|
9
|
+
- 4
|
|
10
|
+
- rc1
|
|
11
|
+
version: 0.10.4.rc1
|
|
11
12
|
platform: ruby
|
|
12
13
|
authors:
|
|
13
14
|
- Dirkjan Bussink
|
|
@@ -15,7 +16,7 @@ autorequire:
|
|
|
15
16
|
bindir: bin
|
|
16
17
|
cert_chain: []
|
|
17
18
|
|
|
18
|
-
date: 2011-
|
|
19
|
+
date: 2011-03-29 00:00:00 +02:00
|
|
19
20
|
default_executable:
|
|
20
21
|
dependencies:
|
|
21
22
|
- !ruby/object:Gem::Dependency
|
|
@@ -26,27 +27,28 @@ dependencies:
|
|
|
26
27
|
requirements:
|
|
27
28
|
- - "="
|
|
28
29
|
- !ruby/object:Gem::Version
|
|
29
|
-
hash:
|
|
30
|
+
hash: 977940494
|
|
30
31
|
segments:
|
|
31
32
|
- 0
|
|
32
33
|
- 10
|
|
33
|
-
-
|
|
34
|
-
|
|
34
|
+
- 4
|
|
35
|
+
- rc1
|
|
36
|
+
version: 0.10.4.rc1
|
|
35
37
|
type: :runtime
|
|
36
38
|
version_requirements: *id001
|
|
37
39
|
- !ruby/object:Gem::Dependency
|
|
38
|
-
name:
|
|
40
|
+
name: rspec
|
|
39
41
|
prerelease: false
|
|
40
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
|
41
43
|
none: false
|
|
42
44
|
requirements:
|
|
43
45
|
- - ~>
|
|
44
46
|
- !ruby/object:Gem::Version
|
|
45
|
-
hash:
|
|
47
|
+
hash: 9
|
|
46
48
|
segments:
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
version: "
|
|
49
|
+
- 2
|
|
50
|
+
- 5
|
|
51
|
+
version: "2.5"
|
|
50
52
|
type: :development
|
|
51
53
|
version_requirements: *id002
|
|
52
54
|
- !ruby/object:Gem::Dependency
|
|
@@ -55,14 +57,13 @@ dependencies:
|
|
|
55
57
|
requirement: &id003 !ruby/object:Gem::Requirement
|
|
56
58
|
none: false
|
|
57
59
|
requirements:
|
|
58
|
-
- -
|
|
60
|
+
- - ~>
|
|
59
61
|
- !ruby/object:Gem::Version
|
|
60
|
-
hash:
|
|
62
|
+
hash: 5
|
|
61
63
|
segments:
|
|
62
64
|
- 0
|
|
63
65
|
- 7
|
|
64
|
-
|
|
65
|
-
version: 0.7.0
|
|
66
|
+
version: "0.7"
|
|
66
67
|
type: :development
|
|
67
68
|
version_requirements: *id003
|
|
68
69
|
description: Implements the DataObjects API for Sqlite3
|
|
@@ -81,6 +82,8 @@ files:
|
|
|
81
82
|
- README.markdown
|
|
82
83
|
- Rakefile
|
|
83
84
|
- ext/do_sqlite3/compat.h
|
|
85
|
+
- ext/do_sqlite3/do_common.c
|
|
86
|
+
- ext/do_sqlite3/do_common.h
|
|
84
87
|
- ext/do_sqlite3/do_sqlite3.c
|
|
85
88
|
- ext/do_sqlite3/do_sqlite3.h
|
|
86
89
|
- ext/do_sqlite3/do_sqlite3_extension.c
|
|
@@ -114,13 +117,13 @@ files:
|
|
|
114
117
|
- tasks/release.rake
|
|
115
118
|
- tasks/retrieve.rake
|
|
116
119
|
- tasks/spec.rake
|
|
117
|
-
has_rdoc:
|
|
120
|
+
has_rdoc: true
|
|
118
121
|
homepage:
|
|
119
122
|
licenses: []
|
|
120
123
|
|
|
121
124
|
post_install_message:
|
|
122
|
-
rdoc_options:
|
|
123
|
-
|
|
125
|
+
rdoc_options: []
|
|
126
|
+
|
|
124
127
|
require_paths:
|
|
125
128
|
- lib
|
|
126
129
|
required_ruby_version: !ruby/object:Gem::Requirement
|