pg 0.18.0.pre20141117110243 → 0.18.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
  SHA1:
3
- metadata.gz: 6c38798c2c575b68ddd6cbcd8ffa69e48d4f68e8
4
- data.tar.gz: 2bc57c9c2cb300fc235cbe8697df41c19df6b82b
3
+ metadata.gz: e975ac4cb7b86a878bbc8d5a92a106c2096e4edb
4
+ data.tar.gz: 9a4406e5063886d701248da53c759704b7c9f474
5
5
  SHA512:
6
- metadata.gz: 6cef983c3e4713dcbf77e8231e958d8b908c608054bd4fad608ce60707c9141b66092038db1021bc55837519c502579a5eb5de37e97d8b6a72dd5fa2241dcbb2
7
- data.tar.gz: bb84463d82747afaaf08d9a1bf63d1c53d4807278d6756261fd74109bea127a067ffa956187dee6b67d8ff9c2f1a58ccfeff8b0d308b2701185fec387fa26e51
6
+ metadata.gz: 642968ad5ff9e3b9cae890b553c78c8ca8bd068fa9398e4248b3dc3e93553fed92e21ee73dda6cae477a2531b129c87b45d41af61630b002b4d55c829bac493d
7
+ data.tar.gz: 379f3e798b2d974d115478bbb5cf1f2bc067f1361150055a107054332de4d0238de6f0027ee0071b378cb738835a22e4d6c44f92da4d7f00f8f5cfd28fc31850
Binary file
data.tar.gz.sig CHANGED
Binary file
data/ChangeLog CHANGED
@@ -1,8 +1,93 @@
1
+ 2014-12-26 Lars Kanis <lars@greiz-reinsdorf.de>
2
+
3
+ * lib/pg/basic_type_mapping.rb:
4
+ Add a warning about Type OIDs without decoder in
5
+ PG::BasicTypeMapForResults.
6
+ [592e29cdf2e9] [tip]
7
+
8
+ 2014-12-13 Lars Kanis <lars@greiz-reinsdorf.de>
9
+
10
+ * ext/pg_type_map_in_ruby.c:
11
+ Fix TypeMapInRuby for Rubinius.
12
+ [a38cf53a96f1]
13
+
14
+ 2014-12-12 Lars Kanis <lars@greiz-reinsdorf.de>
15
+
16
+ * ext/pg_type_map_all_strings.c:
17
+ Fix documentation to TypeMapAllStrings.
18
+ [c53f993a4254]
19
+
20
+ * Manifest.txt, ext/pg.c, ext/pg.h, ext/pg_type_map_in_ruby.c,
21
+ spec/pg/type_map_in_ruby_spec.rb:
22
+ Add TypeMapInRuby as a way to combine fast but static C-based type
23
+ maps with flexible ruby based type maps.
24
+ [a9724aef9116]
25
+
26
+ * ext/pg_type_map.c, ext/pg_type_map_by_oid.c,
27
+ lib/pg/basic_type_mapping.rb, spec/pg/basic_type_mapping_spec.rb,
28
+ spec/pg/type_map_by_oid_spec.rb, spec/pg/type_map_spec.rb:
29
+ Remove TypeMap#fit_to_result and #fit_to_query.
30
+
31
+ The only use case so far is building a TypeMapByColumn out of a
32
+ TypeMapByOid, which is now named more explicitly as
33
+ #build_column_map .
34
+ [c99d26015e3c]
35
+
36
+ * ext/pg_text_encoder.c:
37
+ Remove unused variable.
38
+ [1a13e7eafeb7]
39
+
40
+ * ext/pg_connection.c, ext/pg_copy_coder.c, lib/pg/connection.rb:
41
+ Several documentation fixes to COPY coders.
42
+ [a7befacdef4e]
43
+
44
+ 2014-11-26 Lars Kanis <lars@greiz-reinsdorf.de>
45
+
46
+ * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
47
+ PG::TextDecoder::Boolean: encode only true, false, 0 and 1 and pass
48
+ all other values as strings to the server.
49
+ [6b86a5543567]
50
+
51
+ 2014-11-24 Lars Kanis <kanis@comcard.de>
52
+
53
+ * spec/pg/type_map_by_class_spec.rb:
54
+ Fix test case for rbx. The error message is somewhat different than
55
+ in MRI.
56
+ [99638547f8b4]
57
+
58
+ 2014-11-21 Lars Kanis <lars@greiz-reinsdorf.de>
59
+
60
+ * ext/pg_text_decoder.c:
61
+ Stack memory can be used for Identifier decoding, since they are
62
+ limited in size.
63
+ [b7f9daeeba29]
64
+
65
+ 2014-11-17 Lars Kanis <kanis@comcard.de>
66
+
67
+ * .travis.yml:
68
+ Revert "Remove Rubinius from the allowed failure list - failing
69
+ specs are now marked as pending."
70
+
71
+ This reverts commit 524c84ccd17f3caeed13a16084206f14225bbdd6 because
72
+ of ongoing issues with gem installation on rbx.
73
+ [b8debfea4331]
74
+
75
+ * ext/pg.h, ext/pg_errors.c, ext/pg_result.c, spec/pg/result_spec.rb:
76
+ Use dedicated error classes for stream exceptions.
77
+ [f23dd01bcb52]
78
+
79
+ * History.rdoc, ext/pg.c, spec/pg_spec.rb:
80
+ Add PG.init_openssl and PG.init_ssl methods.
81
+
82
+ This will hopefully help to solve issue #190:
83
+ https://bitbucket.org/ged/ruby-pg/issue/190
84
+ [45610159a246]
85
+
1
86
  2014-11-10 Lars Kanis <lars@greiz-reinsdorf.de>
2
87
 
3
88
  * ext/pg_type_map_by_class.c:
4
89
  Fix typo.
5
- [eeb8a82c5328] [tip]
90
+ [eeb8a82c5328]
6
91
 
7
92
  * spec/pg/type_map_by_class_spec.rb:
8
93
  TypeMapByClass: Add test for invlid coder object.
@@ -200,7 +285,7 @@
200
285
 
201
286
  * ext/pg_text_encoder.c, spec/pg/type_spec.rb:
202
287
  Allow non Array values as input for TextEncoder::Array.
203
- [a4725dfca9e4]
288
+ [a4725dfca9e4] [github/master]
204
289
 
205
290
  * ext/pg_coder.c, spec/pg/type_spec.rb:
206
291
  Clarify handling of nil/NULL values by PG::Coders.
@@ -1655,12 +1740,6 @@
1655
1740
  Merged with 4cc778c5ead7
1656
1741
  [67bb0f34ca05]
1657
1742
 
1658
- 2014-08-20 Michael Granger <ged@FaerieMUD.org>
1659
-
1660
- * spec/helpers.rb, spec/pg/connection_spec.rb:
1661
- Check connection status with a matcher in specs
1662
- [b32840b98e4b]
1663
-
1664
1743
  2014-10-09 Lars Kanis <lars@greiz-reinsdorf.de>
1665
1744
 
1666
1745
  * Rakefile, Rakefile.cross, ext/extconf.rb:
@@ -1736,6 +1815,10 @@
1736
1815
 
1737
1816
  2014-08-20 Michael Granger <ged@FaerieMUD.org>
1738
1817
 
1818
+ * spec/helpers.rb, spec/pg/connection_spec.rb:
1819
+ Check connection status with a matcher in specs
1820
+ [b32840b98e4b]
1821
+
1739
1822
  * ext/pg_connection.c, lib/pg/connection.rb,
1740
1823
  spec/pg/connection_spec.rb:
1741
1824
  Implement PG::Connection#conninfo and use it to test #188
@@ -1760,17 +1843,19 @@
1760
1843
  * Merge with 6c2444dc63e1
1761
1844
  [d7160a9fb5dc]
1762
1845
 
1763
- * .rvm.gems, Rakefile, spec/helpers.rb, spec/lib/helpers.rb,
1764
- spec/pg/connection_spec.rb, spec/pg/result_spec.rb, spec/pg_spec.rb:
1765
- Convert specs to expect syntax for RSpec 3
1766
- [c9108c846ab2]
1767
-
1768
1846
  2013-12-30 Lars Kanis <lars@greiz-reinsdorf.de>
1769
1847
 
1770
1848
  * ext/pg_connection.c:
1771
1849
  Fix typo in documentation.
1772
1850
  [6c2444dc63e1]
1773
1851
 
1852
+ 2014-06-05 Michael Granger <ged@FaerieMUD.org>
1853
+
1854
+ * .rvm.gems, Rakefile, spec/helpers.rb, spec/lib/helpers.rb,
1855
+ spec/pg/connection_spec.rb, spec/pg/result_spec.rb, spec/pg_spec.rb:
1856
+ Convert specs to expect syntax for RSpec 3
1857
+ [c9108c846ab2]
1858
+
1774
1859
  2013-12-18 Michael Granger <ged@FaerieMUD.org>
1775
1860
 
1776
1861
  * .hgtags:
@@ -2505,13 +2590,13 @@
2505
2590
  PQexecParams() itself.
2506
2591
 
2507
2592
  Thanks to Aaron Patterson for the idea.
2508
- [7c313c2355b7]
2593
+ [7c313c2355b7] [github/exec_params]
2509
2594
 
2510
2595
  2013-01-31 Michael Granger <ged@FaerieMUD.org>
2511
2596
 
2512
2597
  * ext/extconf.rb:
2513
2598
  Add experimental -rpath to the LDFLAGS
2514
- [8496c624dffd]
2599
+ [8496c624dffd] [github/rpath_ldflag]
2515
2600
 
2516
2601
  2013-01-30 Michael Granger <ged@FaerieMUD.org>
2517
2602
 
@@ -1,4 +1,4 @@
1
- == v0.18.0 [unreleased]
1
+ == v0.18.0 [2015-01-01] Michael Granger <ged@FaerieMUD.org>
2
2
 
3
3
  Bugfixes:
4
4
  - Fix OID to Integer mapping (it is unsigned now). #187
@@ -19,6 +19,7 @@ Enhancements:
19
19
  - Update Windows cross build to PostgreSQL 9.3.
20
20
 
21
21
 
22
+
22
23
  == v0.17.1 [2013-12-18] Michael Granger <ged@FaerieMUD.org>
23
24
 
24
25
  Bugfixes:
@@ -29,12 +29,13 @@ ext/pg_errors.c
29
29
  ext/pg_result.c
30
30
  ext/pg_text_decoder.c
31
31
  ext/pg_text_encoder.c
32
+ ext/pg_type_map.c
32
33
  ext/pg_type_map_all_strings.c
33
34
  ext/pg_type_map_by_class.c
34
35
  ext/pg_type_map_by_column.c
35
36
  ext/pg_type_map_by_mri_type.c
36
37
  ext/pg_type_map_by_oid.c
37
- ext/pg_type_map.c
38
+ ext/pg_type_map_in_ruby.c
38
39
  ext/util.c
39
40
  ext/util.h
40
41
  ext/vc/pg.sln
@@ -78,6 +79,7 @@ spec/pg/type_map_by_class_spec.rb
78
79
  spec/pg/type_map_by_column_spec.rb
79
80
  spec/pg/type_map_by_mri_type_spec.rb
80
81
  spec/pg/type_map_by_oid_spec.rb
82
+ spec/pg/type_map_in_ruby_spec.rb
81
83
  spec/pg/type_map_spec.rb
82
84
  spec/pg/type_spec.rb
83
85
  spec/pg_spec.rb
data/Rakefile CHANGED
@@ -29,6 +29,8 @@ TMPDIR = BASEDIR + 'tmp'
29
29
  DLEXT = RbConfig::CONFIG['DLEXT']
30
30
  EXT = LIBDIR + "pg_ext.#{DLEXT}"
31
31
 
32
+ GEMSPEC = 'pg.gemspec'
33
+
32
34
  TEST_DIRECTORY = BASEDIR + "tmp_test_specs"
33
35
 
34
36
  CLOBBER.include( TEST_DIRECTORY.to_s )
@@ -187,3 +189,18 @@ file 'ext/pg_errors.c' => ['ext/errorcodes.def'] do
187
189
  # trigger compilation of changed errorcodes.def
188
190
  touch 'ext/pg_errors.c'
189
191
  end
192
+
193
+ task :gemspec => GEMSPEC
194
+ file GEMSPEC => __FILE__
195
+ task GEMSPEC do |task|
196
+ spec = $hoespec.spec
197
+ spec.files.delete( '.gemtest' )
198
+ spec.version = "#{spec.version}.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
199
+ File.open( task.name, 'w' ) do |fh|
200
+ fh.write( spec.to_ruby )
201
+ end
202
+ end
203
+
204
+ CLOBBER.include( GEMSPEC.to_s )
205
+ task :default => :gemspec
206
+
data/ext/pg.c CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg.c - Toplevel extension
3
- * $Id$
3
+ * $Id: pg.c,v a9724aef9116 2014/12/12 21:03:27 lars $
4
4
  *
5
5
  * Author/s:
6
6
  *
@@ -655,6 +655,7 @@ Init_pg_ext()
655
655
  init_pg_type_map_by_column();
656
656
  init_pg_type_map_by_mri_type();
657
657
  init_pg_type_map_by_oid();
658
+ init_pg_type_map_in_ruby();
658
659
  init_pg_coder();
659
660
  init_pg_text_encoder();
660
661
  init_pg_text_decoder();
data/ext/pg.h CHANGED
@@ -302,6 +302,7 @@ void init_pg_type_map_by_class _(( void ));
302
302
  void init_pg_type_map_by_column _(( void ));
303
303
  void init_pg_type_map_by_mri_type _(( void ));
304
304
  void init_pg_type_map_by_oid _(( void ));
305
+ void init_pg_type_map_in_ruby _(( void ));
305
306
  void init_pg_coder _(( void ));
306
307
  void init_pg_copycoder _(( void ));
307
308
  void init_pg_text_encoder _(( void ));
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_column_map.c - PG::ColumnMap class extension
3
- * $Id$
3
+ * $Id: pg_binary_decoder.c,v 185638b52684 2014/11/08 20:43:53 lars $
4
4
  *
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_column_map.c - PG::ColumnMap class extension
3
- * $Id$
3
+ * $Id: pg_binary_encoder.c,v ac23631c96d9 2014/10/14 11:50:21 lars $
4
4
  *
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_connection.c - PG::Connection class extension
3
- * $Id$
3
+ * $Id: pg_connection.c,v a7befacdef4e 2014/12/12 20:57:14 lars $
4
4
  *
5
5
  */
6
6
 
@@ -2542,10 +2542,10 @@ pgconn_wait_for_notify(int argc, VALUE *argv, VALUE self)
2542
2542
  * not sent (false is only possible if the connection
2543
2543
  * is in nonblocking mode, and this command would block).
2544
2544
  *
2545
- * encoder can be a PG::Coder derivation (typically PG::TestEncoder::CopyRow).
2545
+ * encoder can be a PG::Coder derivation (typically PG::TextEncoder::CopyRow).
2546
2546
  * This encodes the received data fields from an Array of Strings. Optionally
2547
2547
  * the encoder can type cast the fields form various Ruby types in one step,
2548
- * if PG::TestEncoder::CopyRow#type_map is set accordingly.
2548
+ * if PG::TextEncoder::CopyRow#type_map is set accordingly.
2549
2549
  *
2550
2550
  * Raises an exception if an error occurs.
2551
2551
  *
@@ -2654,10 +2654,10 @@ pgconn_put_copy_end(int argc, VALUE *argv, VALUE self)
2654
2654
  * if the copy is done, or +false+ if the call would
2655
2655
  * block (only possible if _async_ is true).
2656
2656
  *
2657
- * decoder can be a PG::Coder derivation (typically PG::TestDecoder::CopyRow).
2657
+ * decoder can be a PG::Coder derivation (typically PG::TextDecoder::CopyRow).
2658
2658
  * This decodes the received data fields as Array of Strings. Optionally
2659
2659
  * the decoder can type cast the fields to various Ruby types in one step,
2660
- * if PG::TestDecoder::CopyRow#type_map is set accordingly.
2660
+ * if PG::TextDecoder::CopyRow#type_map is set accordingly.
2661
2661
  *
2662
2662
  * See also #copy_data.
2663
2663
  *
@@ -153,12 +153,20 @@ pg_copycoder_type_map_get(VALUE self)
153
153
  * See the {COPY command}[http://www.postgresql.org/docs/current/static/sql-copy.html]
154
154
  * for description of the format.
155
155
  *
156
- * It is intended to be used in conjunction with PG::Connection#copy_data .
156
+ * It is intended to be used in conjunction with PG::Connection#put_copy_data .
157
157
  *
158
158
  * The columns are expected as Array of values. The single values are encoded as defined
159
159
  * in the assigned #type_map. If no type_map was assigned, all values are converted to
160
- * Strings by PG::TextEncoder::String.
160
+ * strings by PG::TextEncoder::String.
161
161
  *
162
+ * Example with default type map ( TypeMapAllStrings ):
163
+ * conn.exec "create table my_table (a text,b int,c bool)"
164
+ * enco = PG::TextEncoder::CopyRow.new
165
+ * conn.copy_data "COPY my_table FROM STDIN", enco do
166
+ * conn.put_copy_data ["astring", 7, false]
167
+ * conn.put_copy_data ["string2", 42, true]
168
+ * end
169
+ * This creates +my_table+ and inserts two rows.
162
170
  */
163
171
  static int
164
172
  pg_text_enc_copy_row(t_pg_coder *conv, VALUE value, char *out, VALUE *intermediate)
@@ -286,12 +294,22 @@ GetDecimalFromHex(char hex)
286
294
  * See the {COPY command}[http://www.postgresql.org/docs/current/static/sql-copy.html]
287
295
  * for description of the format.
288
296
  *
289
- * It is intended to be used in conjunction with PG::Connection#copy_data .
297
+ * It is intended to be used in conjunction with PG::Connection#get_copy_data .
290
298
  *
291
299
  * The columns are retrieved as Array of values. The single values are decoded as defined
292
300
  * in the assigned #type_map. If no type_map was assigned, all values are converted to
293
- * Strings by PG::TextDecoder::String.
301
+ * strings by PG::TextDecoder::String.
294
302
  *
303
+ * Example with default type map ( TypeMapAllStrings ):
304
+ * deco = PG::TextDecoder::CopyRow.new
305
+ * conn.copy_data "COPY my_table TO STDOUT", deco do
306
+ * while row=conn.get_copy_data
307
+ * p row
308
+ * end
309
+ * end
310
+ * This prints all rows of +my_table+ to stdout:
311
+ * ["astring", "7", "f"]
312
+ * ["string2", "42", "t"]
295
313
  */
296
314
  /*
297
315
  * Parse the current line into separate attributes (fields),
@@ -534,8 +552,10 @@ init_pg_copycoder()
534
552
  rb_define_alloc_func( rb_cPG_CopyDecoder, pg_copycoder_decoder_allocate );
535
553
 
536
554
  /* Make RDoc aware of the encoder classes... */
555
+ /* rb_mPG_TextEncoder = rb_define_module_under( rb_mPG, "TextEncoder" ); */
537
556
  /* dummy = rb_define_class_under( rb_mPG_TextEncoder, "CopyRow", rb_cPG_CopyEncoder ); */
538
557
  pg_define_coder( "CopyRow", pg_text_enc_copy_row, rb_cPG_CopyEncoder, rb_mPG_TextEncoder );
558
+ /* rb_mPG_TextDecoder = rb_define_module_under( rb_mPG, "TextDecoder" ); */
539
559
  /* dummy = rb_define_class_under( rb_mPG_TextDecoder, "CopyRow", rb_cPG_CopyDecoder ); */
540
560
  pg_define_coder( "CopyRow", pg_text_dec_copy_row, rb_cPG_CopyDecoder, rb_mPG_TextDecoder );
541
561
  }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_result.c - PG::Result class extension
3
- * $Id$
3
+ * $Id: pg_result.c,v f23dd01bcb52 2014/11/17 10:47:53 kanis $
4
4
  *
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_text_decoder.c - PG::TextDecoder module
3
- * $Id$
3
+ * $Id: pg_text_decoder.c,v b7f9daeeba29 2014/11/21 19:53:47 lars $
4
4
  *
5
5
  */
6
6
 
@@ -313,8 +313,8 @@ pg_text_dec_identifier(t_pg_coder *conv, char *val, int len, int tuple, int fiel
313
313
  VALUE elem;
314
314
  int word_index = 0;
315
315
  int index;
316
- /* create a buffer of the same length, as that will be the worst case */
317
- char *word = xmalloc(len + 1);
316
+ /* Use a buffer of the same length, as that will be the worst case */
317
+ char word[len + 1];
318
318
 
319
319
  /* The current character in the input string. */
320
320
  char c;
@@ -356,8 +356,6 @@ pg_text_dec_identifier(t_pg_coder *conv, char *val, int len, int tuple, int fiel
356
356
  elem = dec_func(conv, word, word_index, tuple, field, enc_idx);
357
357
  rb_ary_push(array, elem);
358
358
 
359
- free(word);
360
-
361
359
  return array;
362
360
  }
363
361
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * pg_text_encoder.c - PG::TextEncoder module
3
- * $Id$
3
+ * $Id: pg_text_encoder.c,v 1a13e7eafeb7 2014/12/12 20:57:39 lars $
4
4
  *
5
5
  */
6
6
 
@@ -47,8 +47,8 @@
47
47
  VALUE rb_mPG_TextEncoder;
48
48
  static ID s_id_encode;
49
49
  static ID s_id_to_i;
50
- static VALUE hash_false_values;
51
50
 
51
+ static int pg_text_enc_integer(t_pg_coder *this, VALUE value, char *out, VALUE *intermediate);
52
52
 
53
53
  VALUE
54
54
  pg_obj_to_i( VALUE value )
@@ -68,38 +68,37 @@ pg_obj_to_i( VALUE value )
68
68
  *
69
69
  * This is the encoder class for the PostgreSQL bool type.
70
70
  *
71
- * Ruby values false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off' and 'OFF'
72
- * are encoded as SQL +FALSE+ value. nil is sent as SQL +NULL+.
73
- * Any other values are encoded as SQL +TRUE+ .
71
+ * Ruby value false is encoded as SQL +FALSE+ value.
72
+ * Ruby value true is encoded as SQL +TRUE+ value.
73
+ * Any other value is sent as it's string representation.
74
74
  *
75
75
  */
76
76
  static int
77
- pg_text_enc_boolean(t_pg_coder *conv, VALUE value, char *out, VALUE *intermediate)
77
+ pg_text_enc_boolean(t_pg_coder *this, VALUE value, char *out, VALUE *intermediate)
78
78
  {
79
- if(out){
80
- switch( TYPE(value) ){
81
- case T_FALSE:
82
- *out = 'f';
83
- break;
84
- case T_FIXNUM:
85
- case T_BIGNUM:
86
- if( NUM2LONG(value) == 0 ){
87
- *out = 'f';
88
- } else {
89
- *out = 't';
90
- }
91
- break;
92
- case T_STRING:
93
- if( rb_hash_lookup(hash_false_values, value) == Qtrue ){
94
- *out = 'f';
95
- break;
96
- }
97
- /* fall through */
98
- default:
99
- *out = 't';
100
- }
79
+ switch( TYPE(value) ){
80
+ case T_FALSE:
81
+ if(out) *out = 'f';
82
+ return 1;
83
+ case T_TRUE:
84
+ if(out) *out = 't';
85
+ return 1;
86
+ case T_FIXNUM:
87
+ case T_BIGNUM:
88
+ if( NUM2LONG(value) == 0 ){
89
+ if(out) *out = '0';
90
+ return 1;
91
+ } else if( NUM2LONG(value) == 1 ){
92
+ if(out) *out = '1';
93
+ return 1;
94
+ } else {
95
+ return pg_text_enc_integer(this, value, out, intermediate);
96
+ }
97
+ default:
98
+ return pg_coder_enc_to_s(this, value, out, intermediate);
101
99
  }
102
- return 1;
100
+ /* never reached */
101
+ return 0;
103
102
  }
104
103
 
105
104
 
@@ -638,16 +637,6 @@ init_pg_text_encoder()
638
637
  s_id_encode = rb_intern("encode");
639
638
  s_id_to_i = rb_intern("to_i");
640
639
 
641
- hash_false_values = rb_hash_new();
642
- rb_gc_register_address( &hash_false_values );
643
- rb_hash_aset( hash_false_values, rb_str_new2( "0" ), Qtrue );
644
- rb_hash_aset( hash_false_values, rb_str_new2( "f" ), Qtrue );
645
- rb_hash_aset( hash_false_values, rb_str_new2( "F" ), Qtrue );
646
- rb_hash_aset( hash_false_values, rb_str_new2( "false" ), Qtrue );
647
- rb_hash_aset( hash_false_values, rb_str_new2( "FALSE" ), Qtrue );
648
- rb_hash_aset( hash_false_values, rb_str_new2( "off" ), Qtrue );
649
- rb_hash_aset( hash_false_values, rb_str_new2( "OFF" ), Qtrue );
650
-
651
640
  /* This module encapsulates all encoder classes with text output format */
652
641
  rb_mPG_TextEncoder = rb_define_module_under( rb_mPG, "TextEncoder" );
653
642