swift-db-postgres 0.3.0 → 0.3.1
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.
- checksums.yaml +7 -0
- data/CHANGELOG +4 -0
- data/README.md +12 -0
- data/ext/swift/db/postgres/common.c +4 -3
- data/ext/swift/db/postgres/datetime.c +5 -0
- data/ext/swift/db/postgres/datetime.h +8 -5
- data/test/test_async.rb +10 -9
- metadata +27 -30
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cc766e16cbc7b9e12a4d7d2b4279ab7367abd1fb
|
4
|
+
data.tar.gz: 93df7185b55a780878477a44188c103ff4be7a83
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 04e72c8d3cd07ba18bcd643566819e2fcf44e63aded792b365a48f607c69243d534dd3292b27ed4985013a653433aa264ee2124e4a5311e0d7ca4819f9fe5214
|
7
|
+
data.tar.gz: 596140d12a9a7b8de1ba2361cee3ef1c660926a640ca89d6010810fa0d16bab18f004012077c194e721098a72ee84a288bac56b7b9848b7b8b56c02f36f56f30
|
data/CHANGELOG
CHANGED
data/README.md
CHANGED
@@ -10,6 +10,18 @@ MRI adapter for PostgreSQL
|
|
10
10
|
* Asynchronous support using PQsendQuery family of functions
|
11
11
|
* Nested transactions
|
12
12
|
|
13
|
+
## Requirements
|
14
|
+
|
15
|
+
* postgresql client deveopment libraries (libpq-dev)
|
16
|
+
* uuid development libraries (uuid-dev)
|
17
|
+
|
18
|
+
## Building
|
19
|
+
|
20
|
+
```
|
21
|
+
git submodule update --init
|
22
|
+
rake
|
23
|
+
```
|
24
|
+
|
13
25
|
## API
|
14
26
|
|
15
27
|
```
|
@@ -12,11 +12,12 @@ VALUE rb_uuid_string() {
|
|
12
12
|
char uuid_hex[sizeof(uuid_t) * 2 + 1];
|
13
13
|
|
14
14
|
uuid_generate(uuid);
|
15
|
+
|
16
|
+
memset(uuid_hex, 0, sizeof(uuid_hex));
|
15
17
|
for (n = 0; n < sizeof(uuid_t); n++)
|
16
|
-
sprintf(uuid_hex + n * 2
|
18
|
+
sprintf(uuid_hex + n * 2, "%02x", uuid[n]);
|
17
19
|
|
18
|
-
uuid_hex
|
19
|
-
return rb_str_new(uuid_hex, sizeof(uuid_t) * 2 + 1);
|
20
|
+
return rb_str_new(uuid_hex, sizeof(uuid_t) * 2);
|
20
21
|
}
|
21
22
|
|
22
23
|
/* NOTE: very naive, no regex etc. */
|
@@ -1,6 +1,11 @@
|
|
1
1
|
#include "datetime.h"
|
2
|
+
#include <time.h>
|
2
3
|
#include <ctype.h>
|
3
4
|
|
5
|
+
#define CONST_GET(scope, constant) rb_funcall(scope, rb_intern("const_get"), 1, rb_str_new2(constant))
|
6
|
+
#define TO_S(v) rb_funcall(v, rb_intern("to_s"), 0)
|
7
|
+
#define CSTRING(v) RSTRING_PTR(TO_S(v))
|
8
|
+
|
4
9
|
extern VALUE dtformat;
|
5
10
|
|
6
11
|
VALUE cSwiftDateTime, day_seconds;
|
@@ -1,8 +1,11 @@
|
|
1
1
|
#pragma once
|
2
2
|
|
3
|
-
#include
|
4
|
-
#include <
|
3
|
+
#include <ruby.h>
|
4
|
+
#include <stdlib.h>
|
5
|
+
#include <stdint.h>
|
6
|
+
#include <string.h>
|
7
|
+
#include <stdbool.h>
|
5
8
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
+
extern VALUE cSwiftDateTime;
|
10
|
+
void init_swift_datetime();
|
11
|
+
VALUE datetime_parse(VALUE klass, const char *data, size_t size);
|
data/test/test_async.rb
CHANGED
@@ -2,33 +2,34 @@ require 'helper'
|
|
2
2
|
|
3
3
|
describe 'async operations' do
|
4
4
|
it 'can query async and call block with result when ready' do
|
5
|
-
rows
|
6
|
-
|
5
|
+
rows = []
|
6
|
+
threads = []
|
7
|
+
pool = 3.times.map {Swift::DB::Postgres.new(db: 'swift_test')}
|
7
8
|
|
8
9
|
3.times do |n|
|
9
|
-
Thread.new do
|
10
|
+
threads << Thread.new do
|
10
11
|
pool[n].query("select pg_sleep(#{(3 - n) / 10.0}), #{n + 1} as query_id") {|row| rows << row[:query_id]}
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
14
|
-
|
15
|
+
threads.each(&:join)
|
15
16
|
assert_equal [3, 2, 1], rows
|
16
17
|
end
|
17
18
|
|
18
19
|
it 'returns and allows IO poll on connection file descriptor' do
|
19
|
-
|
20
|
-
|
21
|
-
pool
|
20
|
+
rows = []
|
21
|
+
threads = []
|
22
|
+
pool = 3.times.map {Swift::DB::Postgres.new(db: 'swift_test')}
|
22
23
|
|
23
24
|
3.times do |n|
|
24
|
-
Thread.new do
|
25
|
+
threads << Thread.new do
|
25
26
|
pool[n].query("select pg_sleep(#{(3 - n) / 10.0}), #{n + 1} as query_id")
|
26
27
|
IO.select([IO.for_fd(pool[n].fileno)], [], [])
|
27
28
|
rows << pool[n].result.first[:query_id]
|
28
29
|
end
|
29
30
|
end
|
30
31
|
|
31
|
-
|
32
|
+
threads.each(&:join)
|
32
33
|
assert_equal [3, 2, 1], rows
|
33
34
|
end
|
34
35
|
end
|
metadata
CHANGED
@@ -1,30 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swift-db-postgres
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Bharanee Rathna
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-03-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: rake
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
description: Swift adapter for PostgreSQL database
|
@@ -35,53 +32,53 @@ extensions:
|
|
35
32
|
- ext/swift/db/postgres/extconf.rb
|
36
33
|
extra_rdoc_files: []
|
37
34
|
files:
|
38
|
-
-
|
39
|
-
-
|
35
|
+
- CHANGELOG
|
36
|
+
- README.md
|
40
37
|
- ext/swift/db/postgres/adapter.c
|
41
|
-
- ext/swift/db/postgres/
|
38
|
+
- ext/swift/db/postgres/adapter.h
|
42
39
|
- ext/swift/db/postgres/common.c
|
43
|
-
- ext/swift/db/postgres/
|
44
|
-
- ext/swift/db/postgres/
|
45
|
-
- ext/swift/db/postgres/typecast.h
|
40
|
+
- ext/swift/db/postgres/common.h
|
41
|
+
- ext/swift/db/postgres/datetime.c
|
46
42
|
- ext/swift/db/postgres/datetime.h
|
47
|
-
- ext/swift/db/postgres/
|
43
|
+
- ext/swift/db/postgres/extconf.rb
|
48
44
|
- ext/swift/db/postgres/gvl.h
|
45
|
+
- ext/swift/db/postgres/main.c
|
46
|
+
- ext/swift/db/postgres/result.c
|
47
|
+
- ext/swift/db/postgres/result.h
|
48
|
+
- ext/swift/db/postgres/statement.c
|
49
49
|
- ext/swift/db/postgres/statement.h
|
50
|
-
- ext/swift/db/postgres/
|
51
|
-
- ext/swift/db/postgres/
|
52
|
-
-
|
53
|
-
-
|
50
|
+
- ext/swift/db/postgres/typecast.c
|
51
|
+
- ext/swift/db/postgres/typecast.h
|
52
|
+
- lib/swift-db-postgres.rb
|
53
|
+
- lib/swift/db/postgres.rb
|
54
|
+
- test/helper.rb
|
54
55
|
- test/test_adapter.rb
|
55
|
-
- test/test_encoding.rb
|
56
56
|
- test/test_async.rb
|
57
|
-
- test/
|
58
|
-
-
|
59
|
-
- lib/swift-db-postgres.rb
|
60
|
-
- README.md
|
61
|
-
- CHANGELOG
|
57
|
+
- test/test_encoding.rb
|
58
|
+
- test/test_ssl.rb
|
62
59
|
homepage: http://github.com/deepfryed/swift-db-postgres
|
63
60
|
licenses: []
|
61
|
+
metadata: {}
|
64
62
|
post_install_message:
|
65
63
|
rdoc_options: []
|
66
64
|
require_paths:
|
67
65
|
- lib
|
68
66
|
- ext
|
69
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
68
|
requirements:
|
72
|
-
- -
|
69
|
+
- - ">="
|
73
70
|
- !ruby/object:Gem::Version
|
74
71
|
version: '0'
|
75
72
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
76
|
-
none: false
|
77
73
|
requirements:
|
78
|
-
- -
|
74
|
+
- - ">="
|
79
75
|
- !ruby/object:Gem::Version
|
80
76
|
version: '0'
|
81
77
|
requirements: []
|
82
78
|
rubyforge_project:
|
83
|
-
rubygems_version:
|
79
|
+
rubygems_version: 2.2.0
|
84
80
|
signing_key:
|
85
|
-
specification_version:
|
81
|
+
specification_version: 4
|
86
82
|
summary: Swift postgres adapter
|
87
83
|
test_files: []
|
84
|
+
has_rdoc:
|