pg_conn 0.37.0 → 0.38.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1edd50ec4e7e4f072a695cd044ab6d930dd14cdf763dd335ee0fbb65865e83c4
4
- data.tar.gz: 3fe0cf2fe952999dceea4b6776155b7252d4e3f4aeeab7089348fc10ec9cfc5e
3
+ metadata.gz: bd242e10678e8e9d925e6322f45ea737acb41924cd6982d769c24cb05dbe326d
4
+ data.tar.gz: bb8c08e465fff1b39f5f8c7cae7316d3a7ff3b03a0287f7b14ba1e131f59b9df
5
5
  SHA512:
6
- metadata.gz: a84b206b8c7b19813a3acbc63350289e6b072fc1ef8edb65901c99fe6f76fffe3c9ad9ab54d44105652902a8486e5904071e8f6712e73b7b9752019646a8bb8b
7
- data.tar.gz: 6725ac8c9ef737db41770df819fefa88cb716ff189d714b139079475ee3255a59ec996e9d9c1e138b971b2b4908d6a91f08b9d7bc3731a7e46c32bd684f28000
6
+ metadata.gz: 1777ddc1e093ffd1b5e677a130e6ddbc24bb20a9cbcfa2a83e9c460e9f95a38c33ab4ed0f42cd17dd32bef529ce9356feb46196cec6d51e7a209dd86acd4ca2a
7
+ data.tar.gz: 4d0ef38a2fe075b3259b77a919da927596a9eefe16bc6ab855a1bbe08bbacbbc5c79953a1dc487d2697ae833c0c1c67d86989020ec1c093a9d90ab76981a3f96
@@ -48,7 +48,7 @@ module PgConn
48
48
 
49
49
  # Empty all tables in the given schema
50
50
  def clean!(schema, exclude: [])
51
- conn.without_triggers {
51
+ conn.session.triggers(false) {
52
52
  self.list_tables(schema, exclude: exclude).each { |table|
53
53
  conn.exec "delete from #{schema}.#{table}"
54
54
  }
@@ -84,6 +84,43 @@ module PgConn
84
84
  end
85
85
  end
86
86
 
87
+ # Return true if session triggers are enabled. Triggers are enabled by
88
+ # default by Postgres
89
+ def triggers?() conn.value "select current_setting('session_replication_role') <> 'replica'" end
90
+
91
+ # Enable session triggers
92
+ def enable_triggers()
93
+ conn.execute "set session session_replication_role = DEFAULT"
94
+ end
95
+
96
+ # Disable session triggers
97
+ def disable_triggers()
98
+ conn.execute "set session session_replication_role = replica"
99
+ end
100
+
101
+ # Executes block without triggers
102
+ def without_triggers(&block)
103
+ triggers(false) { yield }
104
+ end
105
+
106
+ # Execute block with session triggers on or off
107
+ def triggers(on_off, &block)
108
+ begin
109
+ active = triggers?
110
+ if on_off && !active
111
+ enable_triggers
112
+ elsif !on_off && active
113
+ disable_triggers
114
+ end
115
+ yield
116
+ ensure
117
+ case active
118
+ when true; enable_triggers if !triggers?
119
+ when false; disable_triggers if triggers?
120
+ end
121
+ end
122
+ end
123
+
87
124
  private
88
125
  # Like #list but returns the PIDs of the users
89
126
  def pids(database, users)
@@ -1,3 +1,3 @@
1
1
  module PgConn
2
- VERSION = "0.37.0"
2
+ VERSION = "0.38.0"
3
3
  end
data/lib/pg_conn.rb CHANGED
@@ -1095,43 +1095,6 @@ module PgConn
1095
1095
  end
1096
1096
  end
1097
1097
 
1098
- # Return true if session triggers are enabled. Triggers are enabled by
1099
- # default by Postgres
1100
- def triggers?() self.value "select current_setting('session_replication_role') <> 'replica'" end
1101
-
1102
- # Enable session triggers
1103
- def enable_triggers()
1104
- self.execute "set session session_replication_role = DEFAULT"
1105
- end
1106
-
1107
- # Disable session triggers
1108
- def disable_triggers()
1109
- self.execute "set session session_replication_role = replica"
1110
- end
1111
-
1112
- # Executes block without triggers
1113
- def without_triggers(&block)
1114
- triggers(false) { yield }
1115
- end
1116
-
1117
- # Execute block with session triggers on or off
1118
- def triggers(on_off, &block)
1119
- begin
1120
- active = triggers?
1121
- if on_off && !active
1122
- enable_triggers
1123
- elsif !on_off && active
1124
- disable_triggers
1125
- end
1126
- yield
1127
- ensure
1128
- case active
1129
- when true; enable_triggers if !triggers?
1130
- when false; disable_triggers if triggers?
1131
- end
1132
- end
1133
- end
1134
-
1135
1098
  def dump(*query)
1136
1099
  records = self.records(*query)
1137
1100
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_conn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.37.0
4
+ version: 0.38.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen