pg 0.18.0.pre20141117110243 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
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