pgsql 1.2 → 1.3
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 +9 -9
- data/lib/conn_exec.c +39 -20
- data/lib/module.c +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MTM2YjZhYjdkMzM5ZDdjYTAyZmJjOTMzYTM3NTFiY2M0Y2Y0ZWI1ZA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
7
|
-
|
6
|
+
YWVlZTViMjA4YmYwYzg2MjVlYWYwNjdjNTA1N2ExMmRlMDU5MTY3MA==
|
7
|
+
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWY0NWYwYzA0ZjZkZWFjYjkwMGNhOGFiZmQ3M2U5ZWRmZjY3ODc4NjRkNzhl
|
10
|
+
MDg2YzdlMmVkZDAzZjZiY2RmOWFkNTgyZTFjNzQxMTM1ZjRhN2ExNmU4OWEx
|
11
|
+
MmQzZTAwOGI4NGNkZmNhNDQyMGNhM2Y3Yjg0ODNlNDQxODFmNTg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTc3ZWJkMDg0MWUwYjdhZDdkMGViMDM5MzE5YmU2MGVmZTBkYTNlMGIwNWZh
|
14
|
+
YzQwN2Y4ZjQ0ZjE2Yjk4OWI1OTFmMzY4NGVjNmY5NDk2MjIzYTIyMzc5MWI0
|
15
|
+
ODFiNTRjMjBkN2YxNDljN2FlYWJmOWUzMDQwMDE1ODAyYWQyZGY=
|
data/lib/conn_exec.c
CHANGED
@@ -37,10 +37,12 @@ static VALUE pgconn_select_values( int argc, VALUE *argv, VALUE self);
|
|
37
37
|
static VALUE pgconn_get_notify( VALUE self);
|
38
38
|
|
39
39
|
static VALUE pgconn_transaction( int argc, VALUE *argv, VALUE self);
|
40
|
-
static VALUE
|
40
|
+
static VALUE rollback_transaction( VALUE self);
|
41
|
+
static VALUE commit_transaction( VALUE self);
|
41
42
|
static VALUE yield_transaction( VALUE self);
|
42
43
|
static VALUE pgconn_subtransaction( int argc, VALUE *argv, VALUE self);
|
43
|
-
static VALUE
|
44
|
+
static VALUE rollback_subtransaction( VALUE ary);
|
45
|
+
static VALUE release_subtransaction( VALUE ary);
|
44
46
|
static VALUE yield_subtransaction( VALUE ary);
|
45
47
|
static VALUE pgconn_transaction_status( VALUE self);
|
46
48
|
|
@@ -460,11 +462,17 @@ pgconn_transaction( int argc, VALUE *argv, VALUE self)
|
|
460
462
|
rb_raise( rb_ePgConnTrans,
|
461
463
|
"Nested transaction block. Use Conn#subtransaction.");
|
462
464
|
pgresult_clear( pg_statement_exec( self, cmd, Qnil));
|
463
|
-
return
|
465
|
+
return rb_ensure( yield_transaction, self, commit_transaction, self);
|
464
466
|
}
|
465
467
|
|
466
468
|
VALUE
|
467
|
-
|
469
|
+
yield_transaction( VALUE self)
|
470
|
+
{
|
471
|
+
return rb_rescue( rb_yield, self, rollback_transaction, self);
|
472
|
+
}
|
473
|
+
|
474
|
+
VALUE
|
475
|
+
rollback_transaction( VALUE self)
|
468
476
|
{
|
469
477
|
pgresult_clear( pg_statement_exec( self, rb_str_new2( "rollback;"), Qnil));
|
470
478
|
rb_exc_raise( RB_ERRINFO);
|
@@ -472,13 +480,14 @@ rescue_transaction( VALUE self)
|
|
472
480
|
}
|
473
481
|
|
474
482
|
VALUE
|
475
|
-
|
483
|
+
commit_transaction( VALUE self)
|
476
484
|
{
|
477
|
-
|
485
|
+
struct pgconn_data *c;
|
478
486
|
|
479
|
-
|
480
|
-
|
481
|
-
|
487
|
+
Data_Get_Struct( self, struct pgconn_data, c);
|
488
|
+
if (PQtransactionStatus( c->conn) > PQTRANS_IDLE)
|
489
|
+
pgresult_clear( pg_statement_exec( self, rb_str_new2( "commit;"), Qnil));
|
490
|
+
return Qnil;
|
482
491
|
}
|
483
492
|
|
484
493
|
|
@@ -514,11 +523,17 @@ pgconn_subtransaction( int argc, VALUE *argv, VALUE self)
|
|
514
523
|
rb_str_buf_cat2( cmd, ";");
|
515
524
|
|
516
525
|
pgresult_clear( pg_statement_exec( self, cmd, Qnil));
|
517
|
-
return
|
526
|
+
return rb_ensure( yield_subtransaction, ya, release_subtransaction, ya);
|
518
527
|
}
|
519
528
|
|
520
529
|
VALUE
|
521
|
-
|
530
|
+
yield_subtransaction( VALUE ary)
|
531
|
+
{
|
532
|
+
return rb_rescue( rb_yield, ary, rollback_subtransaction, ary);
|
533
|
+
}
|
534
|
+
|
535
|
+
VALUE
|
536
|
+
rollback_subtransaction( VALUE ary)
|
522
537
|
{
|
523
538
|
VALUE cmd;
|
524
539
|
|
@@ -526,21 +541,25 @@ rescue_subtransaction( VALUE ary)
|
|
526
541
|
rb_str_buf_append( cmd, rb_ary_entry( ary, 1));
|
527
542
|
rb_str_buf_cat2( cmd, ";");
|
528
543
|
pgresult_clear( pg_statement_exec( rb_ary_entry( ary, 0), cmd, Qnil));
|
544
|
+
rb_ary_store( ary, 1, Qnil);
|
529
545
|
rb_exc_raise( RB_ERRINFO);
|
530
546
|
return Qnil;
|
531
547
|
}
|
532
548
|
|
533
549
|
VALUE
|
534
|
-
|
550
|
+
release_subtransaction( VALUE ary)
|
535
551
|
{
|
536
|
-
VALUE
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
552
|
+
VALUE cmd;
|
553
|
+
VALUE n;
|
554
|
+
|
555
|
+
n = rb_ary_entry( ary, 1);
|
556
|
+
if (!NIL_P( n)) {
|
557
|
+
cmd = rb_str_buf_new2( "release savepoint ");
|
558
|
+
rb_str_buf_append( cmd, n);
|
559
|
+
rb_str_buf_cat2( cmd, ";");
|
560
|
+
pgresult_clear( pg_statement_exec( rb_ary_entry( ary, 0), cmd, Qnil));
|
561
|
+
}
|
562
|
+
return Qnil;
|
544
563
|
}
|
545
564
|
|
546
565
|
|
data/lib/module.c
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pgsql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bertram Scharpf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-11-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: autorake
|
@@ -79,7 +79,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
80
80
|
- PostgreSQL
|
81
81
|
rubyforge_project: NONE
|
82
|
-
rubygems_version: 2.
|
82
|
+
rubygems_version: 2.1.11
|
83
83
|
signing_key:
|
84
84
|
specification_version: 4
|
85
85
|
summary: PostgreSQL-API for Ruby
|