sequel_pg 1.6.17 → 1.6.18
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 +4 -4
- data/CHANGELOG +9 -1
- data/MIT-LICENSE +1 -1
- data/README.rdoc +8 -6
- data/ext/sequel_pg/sequel_pg.c +16 -3
- data/lib/sequel/extensions/pg_streaming.rb +24 -10
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9af8b932e28c1fba7a23ca7608c227be50a0896
|
4
|
+
data.tar.gz: c65775dc39943ef8f507f13ca7cc73a723cda98a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fde42c5f10204facab45b5dfd30e39686854d9b93ac62afbcea80037558d349fae38fab978608ce593d2e62e6defa8c4b3892bbb1ad2f20d8745723de06b2356
|
7
|
+
data.tar.gz: b06f564b96261f1f04bb875a064e81956fe12d4c0d963cee958bfde0e259aa7f99bd38c00357b48509d41b500aeb0b3d1f50169c48fba7a1dd5a26fd2ea5e087
|
data/CHANGELOG
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
+
=== 1.6.18 (2017-04-27)
|
2
|
+
|
3
|
+
* Support logging of connection information in single row mode (jeremyevans)
|
4
|
+
|
5
|
+
* Check Sequel compatibility before overwriting methods, supported in Sequel 4.44.0+ (jeremyevans)
|
6
|
+
|
7
|
+
* Remove verbose mode warnings (jeremyevans)
|
8
|
+
|
1
9
|
=== 1.6.17 (2016-04-29)
|
2
10
|
|
3
|
-
*
|
11
|
+
* Work with upcoming 4.34.0 release, supporting the duplicate_column_handler extension (jeremyevans)
|
4
12
|
|
5
13
|
=== 1.6.16 (2016-04-11)
|
6
14
|
|
data/MIT-LICENSE
CHANGED
data/README.rdoc
CHANGED
@@ -7,7 +7,7 @@ faster (2-6x) than the pure ruby version that Sequel uses by default.
|
|
7
7
|
== Real world difference
|
8
8
|
|
9
9
|
The speed up that sequel_pg gives you depends on what you are
|
10
|
-
selecting, but it should be
|
10
|
+
selecting, but it should be noticeable whenever many rows are selected.
|
11
11
|
Here's an example that shows the difference it makes on a couple of
|
12
12
|
models:
|
13
13
|
|
@@ -48,8 +48,8 @@ with the following plugins that ship with Sequel:
|
|
48
48
|
|
49
49
|
* class_table_inheritance
|
50
50
|
* force_encoding
|
51
|
-
*
|
52
|
-
*
|
51
|
+
* serialization
|
52
|
+
* single_table_inheritance
|
53
53
|
* typecast_on_load
|
54
54
|
* update_primary_key
|
55
55
|
|
@@ -154,9 +154,11 @@ sequel_pg has been tested on the following:
|
|
154
154
|
|
155
155
|
* ruby 1.8.7
|
156
156
|
* ruby 1.9.3
|
157
|
-
* ruby 2.0
|
158
|
-
* ruby 2.1
|
159
|
-
*
|
157
|
+
* ruby 2.0
|
158
|
+
* ruby 2.1
|
159
|
+
* ruby 2.2
|
160
|
+
* ruby 2.3
|
161
|
+
* ruby 2.4
|
160
162
|
|
161
163
|
== Known Issues
|
162
164
|
|
data/ext/sequel_pg/sequel_pg.c
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
#define SEQUEL_PG_VERSION_INTEGER 10618
|
2
|
+
|
1
3
|
#include <string.h>
|
2
4
|
#include <stdio.h>
|
3
5
|
#include <math.h>
|
@@ -1018,6 +1020,17 @@ void Init_sequel_pg(void) {
|
|
1018
1020
|
VALUE c, spg_Postgres;
|
1019
1021
|
ID cg;
|
1020
1022
|
cg = rb_intern("const_get");
|
1023
|
+
|
1024
|
+
spg_Sequel = rb_funcall(rb_cObject, cg, 1, rb_str_new2("Sequel"));
|
1025
|
+
spg_Postgres = rb_funcall(spg_Sequel, cg, 1, rb_str_new2("Postgres"));
|
1026
|
+
|
1027
|
+
if(rb_obj_respond_to(spg_Postgres, rb_intern("sequel_pg_version_supported?"), 0)) {
|
1028
|
+
if(!RTEST(rb_funcall(spg_Postgres, rb_intern("sequel_pg_version_supported?"), 1, INT2FIX(SEQUEL_PG_VERSION_INTEGER)))) {
|
1029
|
+
rb_warn("sequel_pg not loaded as it is not compatible with the Sequel version in use; install the latest version of sequel_pg or uninstall sequel_pg");
|
1030
|
+
return;
|
1031
|
+
}
|
1032
|
+
}
|
1033
|
+
|
1021
1034
|
spg_id_new = rb_intern("new");
|
1022
1035
|
spg_id_local = rb_intern("local");
|
1023
1036
|
spg_id_year = rb_intern("year");
|
@@ -1060,12 +1073,10 @@ void Init_sequel_pg(void) {
|
|
1060
1073
|
spg_sym__sequel_pg_type = ID2SYM(rb_intern("_sequel_pg_type"));
|
1061
1074
|
spg_sym__sequel_pg_value = ID2SYM(rb_intern("_sequel_pg_value"));
|
1062
1075
|
|
1063
|
-
spg_Sequel = rb_funcall(rb_cObject, cg, 1, rb_str_new2("Sequel"));
|
1064
1076
|
spg_Blob = rb_funcall(rb_funcall(spg_Sequel, cg, 1, rb_str_new2("SQL")), cg, 1, rb_str_new2("Blob"));
|
1065
1077
|
spg_SQLTime= rb_funcall(spg_Sequel, cg, 1, rb_str_new2("SQLTime"));
|
1066
1078
|
spg_BigDecimal = rb_funcall(rb_cObject, cg, 1, rb_str_new2("BigDecimal"));
|
1067
1079
|
spg_Date = rb_funcall(rb_cObject, cg, 1, rb_str_new2("Date"));
|
1068
|
-
spg_Postgres = rb_funcall(spg_Sequel, cg, 1, rb_str_new2("Postgres"));
|
1069
1080
|
spg_PGError = rb_funcall(rb_cObject, cg, 1, rb_str_new2("PGError"));
|
1070
1081
|
|
1071
1082
|
spg_nan = rb_eval_string("0.0/0.0");
|
@@ -1083,7 +1094,7 @@ void Init_sequel_pg(void) {
|
|
1083
1094
|
rb_global_variable(&spg_neg_inf);
|
1084
1095
|
|
1085
1096
|
/* Check for 1.8-1.9.2 stdlib date that needs Rational for usec accuracy */
|
1086
|
-
if (rb_eval_string("Date.today
|
1097
|
+
if (rb_attr_get(rb_eval_string("Date.today"), rb_intern("@ajd")) != Qnil) {
|
1087
1098
|
spg_id_Rational = rb_intern("Rational");
|
1088
1099
|
}
|
1089
1100
|
if (rb_eval_string("defined?(PG::TypeMapAllStrings)") != Qnil) {
|
@@ -1091,7 +1102,9 @@ void Init_sequel_pg(void) {
|
|
1091
1102
|
}
|
1092
1103
|
|
1093
1104
|
c = rb_funcall(spg_Postgres, cg, 1, rb_str_new2("Dataset"));
|
1105
|
+
rb_undef_method(c, "yield_hash_rows");
|
1094
1106
|
rb_define_private_method(c, "yield_hash_rows", spg_yield_hash_rows, 2);
|
1107
|
+
rb_undef_method(c, "fetch_rows_set_cols");
|
1095
1108
|
rb_define_private_method(c, "fetch_rows_set_cols", spg_fetch_rows_set_cols, 1);
|
1096
1109
|
|
1097
1110
|
if (rb_eval_string("Sequel::Dataset.private_method_defined?(:columns=)") == Qtrue) {
|
@@ -73,16 +73,30 @@ module Sequel::Postgres::Streaming
|
|
73
73
|
|
74
74
|
private
|
75
75
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
@single_row_mode
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
76
|
+
if Sequel::Database.instance_methods.map(&:to_s).include?('log_connection_yield')
|
77
|
+
# If using single row mode, send the query instead of executing it.
|
78
|
+
def execute_query(sql, args)
|
79
|
+
if @single_row_mode
|
80
|
+
@single_row_mode = false
|
81
|
+
@db.log_connection_yield(sql, self, args){args ? send_query(sql, args) : send_query(sql)}
|
82
|
+
set_single_row_mode
|
83
|
+
block
|
84
|
+
self
|
85
|
+
else
|
86
|
+
super
|
87
|
+
end
|
88
|
+
end
|
89
|
+
else
|
90
|
+
def execute_query(sql, args)
|
91
|
+
if @single_row_mode
|
92
|
+
@single_row_mode = false
|
93
|
+
@db.log_yield(sql, args){args ? send_query(sql, args) : send_query(sql)}
|
94
|
+
set_single_row_mode
|
95
|
+
block
|
96
|
+
self
|
97
|
+
else
|
98
|
+
super
|
99
|
+
end
|
86
100
|
end
|
87
101
|
end
|
88
102
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequel_pg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pg
|
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.
|
94
|
+
rubygems_version: 2.6.11
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: Faster SELECTs when using Sequel with pg
|