ruby-informix 0.6.0 → 0.6.1

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.
Files changed (5) hide show
  1. data/Changelog +14 -0
  2. data/README +7 -7
  3. data/informix.c +246 -231
  4. data/informix.ec +17 -9
  5. metadata +2 -2
data/Changelog CHANGED
@@ -1,3 +1,17 @@
1
+ 0.6.1 13/10/2007
2
+ ------------------
3
+ Bugs fixed:
4
+ * Database#columns was returning an empty array from within the
5
+ Informix ActiveRecord adapter
6
+ (ActiveRecord::ConnectionAdapters::InformixAdapter#columns) if
7
+ called for different tables. This bug was raising the following
8
+ error in Ruby on Rails:
9
+
10
+ undefined method columname=
11
+
12
+ Noticed by Andr�s Rafael <aandresrafael at gmail dot com>
13
+
14
+
1
15
  0.6.0 08/28/2007
2
16
  ------------------
3
17
  New features:
data/README CHANGED
@@ -18,9 +18,9 @@ Ruby/Informix has been tested succesfully on the following platforms:
18
18
 
19
19
  Operating System Architecture Informix CSDK
20
20
  -------------------------------------------------------------
21
- Solaris 10 SPARC 11.10.UC1 3.00UC2
22
- Solaris 10 SPARC 9.40FC6 3.00UC2
23
- Solaris 9 SPARC 9.40FC6 2.90UC3
21
+ Solaris 10 SPARC64 11.10.UC1 3.00UC2
22
+ Solaris 10 SPARC64 9.40FC6 3.00UC2
23
+ Solaris 9 SPARC64 9.40FC6 2.90UC3
24
24
  Fedora Core 5 x86 10.00.UC3R1 2.90UC4
25
25
  Fedora Core 4 x86 10.00.UC3R1 2.90UC4
26
26
  SuSE Linux 9.3 x86 9.30TC1 2.90UC4
@@ -65,9 +65,8 @@ Objects (CLOB/BLOB).
65
65
 
66
66
  * use #drop for prepared statements and cursors or use them with blocks,
67
67
  to release Informix resources.
68
- * you can optimize cursor execution by changing the fetch and insert buffers,
69
- setting the environment variable FET_BUF_SIZE to up to 32767 for Informix 9.x,
70
- or BIG_FET_BUF_SIZE for Informix 10.x
68
+ * you can optimize cursor execution by changing the size of fetch and insert
69
+ buffers, setting the environment variable FET_BUF_SIZE to up to 32767.
71
70
 
72
71
 
73
72
  5. Caveats
@@ -77,7 +76,8 @@ Objects (CLOB/BLOB).
77
76
  6. Support
78
77
 
79
78
  Feel free to send me bug reports, feature requests, comments, patches or
80
- questions to my mailbox or Ruby/Informix's forums at Rubyforge.
79
+ questions to my mailbox or Ruby/Informix's forums and mailing list at
80
+ Rubyforge (http://rubyforge.org/projects/ruby-informix/)
81
81
 
82
82
 
83
83
  -----------------------------------------
data/informix.c CHANGED
@@ -1,7 +1,7 @@
1
1
  #include <sqlhdr.h>
2
2
  #include <sqliapi.h>
3
3
  #line 1 "informix.ec"
4
- /* $Id: informix.ec,v 1.10 2007/08/23 02:32:56 santana Exp $ */
4
+ /* $Id: informix.ec,v 1.12 2007/10/14 00:18:50 santana Exp $ */
5
5
  /*
6
6
  * Copyright (c) 2006-2007, Gerardo Santana Gomez Garrido <gerardo.santana@gmail.com>
7
7
  * All rights reserved.
@@ -31,7 +31,7 @@
31
31
  * POSSIBILITY OF SUCH DAMAGE.
32
32
  */
33
33
 
34
- static const char rcsid[] = "$Id: informix.ec,v 1.10 2007/08/23 02:32:56 santana Exp $";
34
+ static const char rcsid[] = "$Id: informix.ec,v 1.12 2007/10/14 00:18:50 santana Exp $";
35
35
 
36
36
  #include "ruby.h"
37
37
  #include "ifx_except.h"
@@ -2018,7 +2018,7 @@ rb_informix_connect(int argc, VALUE *argv, VALUE self)
2018
2018
  */
2019
2019
  static VALUE rb_informix_version(void)
2020
2020
  {
2021
- static const char * const ver = "0.6.0";
2021
+ static const char * const ver = "0.6.1";
2022
2022
  static VALUE driver_version;
2023
2023
 
2024
2024
  if (driver_version == 0)
@@ -2614,39 +2614,46 @@ static ifx_cursor_t _SQ0 = {0};
2614
2614
  result = rb_ary_new();
2615
2615
 
2616
2616
  cid = did + IDSIZE;
2617
+
2617
2618
  if (!*cid) {
2618
- snprintf(cid, IDSIZE, "COLS%lX", self);
2619
2619
  /*
2620
- * EXEC SQL declare :cid cursor for
2621
- * select colname, coltype, collength, extended_id,
2620
+ * EXEC SQL begin declare section;
2621
+ */
2622
+ #line 2149 "informix.ec"
2623
+ #line 2150 "informix.ec"
2624
+ char sid[IDSIZE];
2625
+ /*
2626
+ * EXEC SQL end declare section;
2627
+ */
2628
+ #line 2151 "informix.ec"
2629
+
2630
+
2631
+ snprintf(sid, IDSIZE, "COLS%lX", self);
2632
+ snprintf(cid, IDSIZE, "COLC%lX", self);
2633
+
2634
+ /*
2635
+ * EXEC SQL prepare :sid from
2636
+ * 'select colname, coltype, collength, extended_id,
2622
2637
  * type, default, c.colno
2623
2638
  * from syscolumns c, outer sysdefaults d
2624
- * where c.tabid = :tabid and c.tabid = d.tabid
2639
+ * where c.tabid = ? and c.tabid = d.tabid
2625
2640
  * and c.colno = d.colno
2626
- * order by c.colno;
2641
+ * order by c.colno';
2627
2642
  */
2628
- #line 2149 "informix.ec"
2643
+ #line 2156 "informix.ec"
2629
2644
  {
2630
- #line 2155 "informix.ec"
2631
- static const char *sqlcmdtxt[] =
2632
- #line 2155 "informix.ec"
2633
- {
2634
- #line 2155 "informix.ec"
2635
- "select colname , coltype , collength , extended_id , type , default , c . colno from syscolumns c , outer sysdefaults d where c . tabid = ? and c . tabid = d . tabid and c . colno = d . colno order by c . colno",
2636
- 0
2637
- };
2638
- #line 2155 "informix.ec"
2639
- static ifx_sqlvar_t _sqibind[] =
2640
- {
2641
- { 102, sizeof(tabid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
2642
- #line 2155 "informix.ec"
2643
- };
2644
- static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
2645
- #line 2155 "informix.ec"
2646
- _sqibind[0].sqldata = (char *) &tabid;
2647
- #line 2155 "informix.ec"
2648
- sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqlcmdtxt, &_SD0, (ifx_sqlda_t *)0, 0, (ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0);
2649
- #line 2155 "informix.ec"
2645
+ #line 2162 "informix.ec"
2646
+ sqli_prep(ESQLINTVERSION, sid, "select colname, coltype, collength, extended_id, type, default, c.colno from syscolumns c, outer sysdefaults d where c.tabid = ? and c.tabid = d.tabid and c.colno = d.colno order by c.colno",(ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0 );
2647
+ #line 2162 "informix.ec"
2648
+ }
2649
+ /*
2650
+ * EXEC SQL declare :cid cursor for :sid;
2651
+ */
2652
+ #line 2163 "informix.ec"
2653
+ {
2654
+ #line 2163 "informix.ec"
2655
+ sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 0, 0);
2656
+ #line 2163 "informix.ec"
2650
2657
  }
2651
2658
  if (SQLCODE < 0) {
2652
2659
  cid[0] = 0;
@@ -2655,13 +2662,21 @@ sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), ci
2655
2662
  }
2656
2663
 
2657
2664
  /*
2658
- * EXEC SQL open :cid;
2665
+ * EXEC SQL open :cid using :tabid;
2659
2666
  */
2660
- #line 2162 "informix.ec"
2667
+ #line 2170 "informix.ec"
2661
2668
  {
2662
- #line 2162 "informix.ec"
2663
- sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
2664
- #line 2162 "informix.ec"
2669
+ #line 2170 "informix.ec"
2670
+ static ifx_sqlvar_t _sqibind[] =
2671
+ {
2672
+ { 102, sizeof(tabid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
2673
+ #line 2170 "informix.ec"
2674
+ };
2675
+ static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
2676
+ #line 2170 "informix.ec"
2677
+ _sqibind[0].sqldata = (char *) &tabid;
2678
+ sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, (char *)0, (struct value *)0, 1, 0);
2679
+ #line 2170 "informix.ec"
2665
2680
  }
2666
2681
  if (SQLCODE < 0)
2667
2682
  raise_ifx_extended();
@@ -2671,9 +2686,9 @@ sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), ci
2671
2686
  * EXEC SQL fetch :cid into :colname, :coltype, :collength, :xid,
2672
2687
  * :deftype, :defvalue;
2673
2688
  */
2674
- #line 2167 "informix.ec"
2689
+ #line 2175 "informix.ec"
2675
2690
  {
2676
- #line 2168 "informix.ec"
2691
+ #line 2176 "informix.ec"
2677
2692
  static ifx_sqlvar_t _sqobind[] =
2678
2693
  {
2679
2694
  { 114, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
@@ -2682,24 +2697,24 @@ sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), ci
2682
2697
  { 102, sizeof(xid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
2683
2698
  { 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
2684
2699
  { 114, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
2685
- #line 2168 "informix.ec"
2700
+ #line 2176 "informix.ec"
2686
2701
  };
2687
2702
  static ifx_sqlda_t _SD0 = { 6, _sqobind, {0}, 6, 0 };
2688
2703
  static _FetchSpec _FS1 = { 0, 1, 0 };
2689
- #line 2168 "informix.ec"
2704
+ #line 2176 "informix.ec"
2690
2705
  _sqobind[0].sqldata = colname;
2691
- #line 2168 "informix.ec"
2706
+ #line 2176 "informix.ec"
2692
2707
  _sqobind[1].sqldata = (char *) &coltype;
2693
- #line 2168 "informix.ec"
2708
+ #line 2176 "informix.ec"
2694
2709
  _sqobind[2].sqldata = (char *) &collength;
2695
- #line 2168 "informix.ec"
2710
+ #line 2176 "informix.ec"
2696
2711
  _sqobind[3].sqldata = (char *) &xid;
2697
- #line 2168 "informix.ec"
2712
+ #line 2176 "informix.ec"
2698
2713
  _sqobind[4].sqldata = deftype;
2699
- #line 2168 "informix.ec"
2714
+ #line 2176 "informix.ec"
2700
2715
  _sqobind[5].sqldata = defvalue;
2701
2716
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
2702
- #line 2168 "informix.ec"
2717
+ #line 2176 "informix.ec"
2703
2718
  }
2704
2719
  if (SQLCODE < 0)
2705
2720
  raise_ifx_extended();
@@ -2797,11 +2812,11 @@ sqli_curs_decl_stat(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), ci
2797
2812
  /*
2798
2813
  * EXEC SQL close :cid;
2799
2814
  */
2800
- #line 2262 "informix.ec"
2815
+ #line 2270 "informix.ec"
2801
2816
  {
2802
- #line 2262 "informix.ec"
2817
+ #line 2270 "informix.ec"
2803
2818
  sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256));
2804
- #line 2262 "informix.ec"
2819
+ #line 2270 "informix.ec"
2805
2820
  }
2806
2821
 
2807
2822
  return result;
@@ -2827,13 +2842,13 @@ statement_free(void *p)
2827
2842
  /*
2828
2843
  * EXEC SQL begin declare section;
2829
2844
  */
2830
- #line 2284 "informix.ec"
2831
- #line 2285 "informix.ec"
2845
+ #line 2292 "informix.ec"
2846
+ #line 2293 "informix.ec"
2832
2847
  char *sid, *did;
2833
2848
  /*
2834
2849
  * EXEC SQL end declare section;
2835
2850
  */
2836
- #line 2286 "informix.ec"
2851
+ #line 2294 "informix.ec"
2837
2852
 
2838
2853
 
2839
2854
  free_input_slots(p);
@@ -2843,22 +2858,22 @@ statement_free(void *p)
2843
2858
  /*
2844
2859
  * EXEC SQL set connection :did;
2845
2860
  */
2846
- #line 2292 "informix.ec"
2861
+ #line 2300 "informix.ec"
2847
2862
  {
2848
- #line 2292 "informix.ec"
2863
+ #line 2300 "informix.ec"
2849
2864
  sqli_connect_set(0, did, 0);
2850
- #line 2292 "informix.ec"
2865
+ #line 2300 "informix.ec"
2851
2866
  }
2852
2867
  if (SQLCODE >= 0) {
2853
2868
  sid = ((cursor_t *)p)->stmt_id;
2854
2869
  /*
2855
2870
  * EXEC SQL free :sid;
2856
2871
  */
2857
- #line 2295 "informix.ec"
2872
+ #line 2303 "informix.ec"
2858
2873
  {
2859
- #line 2295 "informix.ec"
2874
+ #line 2303 "informix.ec"
2860
2875
  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 258));
2861
- #line 2295 "informix.ec"
2876
+ #line 2303 "informix.ec"
2862
2877
  }
2863
2878
  }
2864
2879
 
@@ -2883,24 +2898,24 @@ statement_initialize(VALUE self, VALUE db, VALUE query)
2883
2898
  /*
2884
2899
  * EXEC SQL begin declare section;
2885
2900
  */
2886
- #line 2316 "informix.ec"
2887
- #line 2317 "informix.ec"
2901
+ #line 2324 "informix.ec"
2902
+ #line 2325 "informix.ec"
2888
2903
  char *c_query, *sid, *did;
2889
2904
  /*
2890
2905
  * EXEC SQL end declare section;
2891
2906
  */
2892
- #line 2318 "informix.ec"
2907
+ #line 2326 "informix.ec"
2893
2908
 
2894
2909
 
2895
2910
  Data_Get_Struct(db, char, did);
2896
2911
  /*
2897
2912
  * EXEC SQL set connection :did;
2898
2913
  */
2899
- #line 2321 "informix.ec"
2914
+ #line 2329 "informix.ec"
2900
2915
  {
2901
- #line 2321 "informix.ec"
2916
+ #line 2329 "informix.ec"
2902
2917
  sqli_connect_set(0, did, 0);
2903
- #line 2321 "informix.ec"
2918
+ #line 2329 "informix.ec"
2904
2919
  }
2905
2920
  if (SQLCODE < 0)
2906
2921
  raise_ifx_extended();
@@ -2916,11 +2931,11 @@ statement_initialize(VALUE self, VALUE db, VALUE query)
2916
2931
  /*
2917
2932
  * EXEC SQL prepare :sid from :c_query;
2918
2933
  */
2919
- #line 2333 "informix.ec"
2934
+ #line 2341 "informix.ec"
2920
2935
  {
2921
- #line 2333 "informix.ec"
2936
+ #line 2341 "informix.ec"
2922
2937
  sqli_prep(ESQLINTVERSION, sid, c_query,(ifx_literal_t *)0, (ifx_namelist_t *)0, -1, 0, 0 );
2923
- #line 2333 "informix.ec"
2938
+ #line 2341 "informix.ec"
2924
2939
  }
2925
2940
  if (SQLCODE < 0)
2926
2941
  raise_ifx_extended();
@@ -2929,11 +2944,11 @@ statement_initialize(VALUE self, VALUE db, VALUE query)
2929
2944
  /*
2930
2945
  * EXEC SQL describe :sid into output;
2931
2946
  */
2932
- #line 2338 "informix.ec"
2947
+ #line 2346 "informix.ec"
2933
2948
  {
2934
- #line 2338 "informix.ec"
2949
+ #line 2346 "informix.ec"
2935
2950
  sqli_describe_stmt(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), &output, 0);
2936
- #line 2338 "informix.ec"
2951
+ #line 2346 "informix.ec"
2937
2952
  }
2938
2953
  c->daOutput = output;
2939
2954
 
@@ -2997,13 +3012,13 @@ statement_call(int argc, VALUE *argv, VALUE self)
2997
3012
  /*
2998
3013
  * EXEC SQL begin declare section;
2999
3014
  */
3000
- #line 2398 "informix.ec"
3001
- #line 2399 "informix.ec"
3015
+ #line 2406 "informix.ec"
3016
+ #line 2407 "informix.ec"
3002
3017
  char *sid, *did;
3003
3018
  /*
3004
3019
  * EXEC SQL end declare section;
3005
3020
  */
3006
- #line 2400 "informix.ec"
3021
+ #line 2408 "informix.ec"
3007
3022
 
3008
3023
 
3009
3024
  Data_Get_Struct(self, cursor_t, c);
@@ -3012,11 +3027,11 @@ statement_call(int argc, VALUE *argv, VALUE self)
3012
3027
  /*
3013
3028
  * EXEC SQL set connection :did;
3014
3029
  */
3015
- #line 2405 "informix.ec"
3030
+ #line 2413 "informix.ec"
3016
3031
  {
3017
- #line 2405 "informix.ec"
3032
+ #line 2413 "informix.ec"
3018
3033
  sqli_connect_set(0, did, 0);
3019
- #line 2405 "informix.ec"
3034
+ #line 2413 "informix.ec"
3020
3035
  }
3021
3036
  if (SQLCODE < 0)
3022
3037
  raise_ifx_extended();
@@ -3036,11 +3051,11 @@ statement_call(int argc, VALUE *argv, VALUE self)
3036
3051
  * EXEC SQL execute :sid into descriptor output
3037
3052
  * using descriptor input;
3038
3053
  */
3039
- #line 2420 "informix.ec"
3054
+ #line 2428 "informix.ec"
3040
3055
  {
3041
- #line 2421 "informix.ec"
3056
+ #line 2429 "informix.ec"
3042
3057
  sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), input, (char *)0, (struct value *)0, output, (char *)0, (struct value *)0, 0);
3043
- #line 2421 "informix.ec"
3058
+ #line 2429 "informix.ec"
3044
3059
  }
3045
3060
  clean_input_slots(c);
3046
3061
  }
@@ -3048,11 +3063,11 @@ statement_call(int argc, VALUE *argv, VALUE self)
3048
3063
  /*
3049
3064
  * EXEC SQL execute :sid into descriptor output;
3050
3065
  */
3051
- #line 2425 "informix.ec"
3066
+ #line 2433 "informix.ec"
3052
3067
  {
3053
- #line 2425 "informix.ec"
3068
+ #line 2433 "informix.ec"
3054
3069
  sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, output, (char *)0, (struct value *)0, 0);
3055
- #line 2425 "informix.ec"
3070
+ #line 2433 "informix.ec"
3056
3071
  }
3057
3072
 
3058
3073
  if (SQLCODE < 0)
@@ -3068,11 +3083,11 @@ statement_call(int argc, VALUE *argv, VALUE self)
3068
3083
  /*
3069
3084
  * EXEC SQL execute :sid using descriptor input;
3070
3085
  */
3071
- #line 2437 "informix.ec"
3086
+ #line 2445 "informix.ec"
3072
3087
  {
3073
- #line 2437 "informix.ec"
3088
+ #line 2445 "informix.ec"
3074
3089
  sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), input, (char *)0, (struct value *)0, (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0);
3075
- #line 2437 "informix.ec"
3090
+ #line 2445 "informix.ec"
3076
3091
  }
3077
3092
  clean_input_slots(c);
3078
3093
  }
@@ -3080,11 +3095,11 @@ statement_call(int argc, VALUE *argv, VALUE self)
3080
3095
  /*
3081
3096
  * EXEC SQL execute :sid;
3082
3097
  */
3083
- #line 2441 "informix.ec"
3098
+ #line 2449 "informix.ec"
3084
3099
  {
3085
- #line 2441 "informix.ec"
3100
+ #line 2449 "informix.ec"
3086
3101
  sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0);
3087
- #line 2441 "informix.ec"
3102
+ #line 2449 "informix.ec"
3088
3103
  }
3089
3104
  }
3090
3105
  if (SQLCODE < 0)
@@ -3106,13 +3121,13 @@ statement_drop(VALUE self)
3106
3121
  /*
3107
3122
  * EXEC SQL begin declare section;
3108
3123
  */
3109
- #line 2459 "informix.ec"
3110
- #line 2460 "informix.ec"
3124
+ #line 2467 "informix.ec"
3125
+ #line 2468 "informix.ec"
3111
3126
  char *sid, *did;
3112
3127
  /*
3113
3128
  * EXEC SQL end declare section;
3114
3129
  */
3115
- #line 2461 "informix.ec"
3130
+ #line 2469 "informix.ec"
3116
3131
 
3117
3132
 
3118
3133
  Data_Get_Struct(self, cursor_t, c);
@@ -3123,11 +3138,11 @@ statement_drop(VALUE self)
3123
3138
  /*
3124
3139
  * EXEC SQL set connection :did;
3125
3140
  */
3126
- #line 2468 "informix.ec"
3141
+ #line 2476 "informix.ec"
3127
3142
  {
3128
- #line 2468 "informix.ec"
3143
+ #line 2476 "informix.ec"
3129
3144
  sqli_connect_set(0, did, 0);
3130
- #line 2468 "informix.ec"
3145
+ #line 2476 "informix.ec"
3131
3146
  }
3132
3147
  if (SQLCODE < 0)
3133
3148
  return Qnil;
@@ -3135,11 +3150,11 @@ statement_drop(VALUE self)
3135
3150
  /*
3136
3151
  * EXEC SQL free :sid;
3137
3152
  */
3138
- #line 2472 "informix.ec"
3153
+ #line 2480 "informix.ec"
3139
3154
  {
3140
- #line 2472 "informix.ec"
3155
+ #line 2480 "informix.ec"
3141
3156
  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 258));
3142
- #line 2472 "informix.ec"
3157
+ #line 2480 "informix.ec"
3143
3158
  }
3144
3159
 
3145
3160
  return Qnil;
@@ -3181,13 +3196,13 @@ fetch(VALUE self, VALUE type, int bang)
3181
3196
  /*
3182
3197
  * EXEC SQL begin declare section;
3183
3198
  */
3184
- #line 2510 "informix.ec"
3185
- #line 2511 "informix.ec"
3199
+ #line 2518 "informix.ec"
3200
+ #line 2519 "informix.ec"
3186
3201
  char *cid, *did;
3187
3202
  /*
3188
3203
  * EXEC SQL end declare section;
3189
3204
  */
3190
- #line 2512 "informix.ec"
3205
+ #line 2520 "informix.ec"
3191
3206
 
3192
3207
  cursor_t *c;
3193
3208
  struct sqlda *output;
@@ -3201,11 +3216,11 @@ fetch(VALUE self, VALUE type, int bang)
3201
3216
  /*
3202
3217
  * EXEC SQL set connection :did;
3203
3218
  */
3204
- #line 2522 "informix.ec"
3219
+ #line 2530 "informix.ec"
3205
3220
  {
3206
- #line 2522 "informix.ec"
3221
+ #line 2530 "informix.ec"
3207
3222
  sqli_connect_set(0, did, 0);
3208
- #line 2522 "informix.ec"
3223
+ #line 2530 "informix.ec"
3209
3224
  }
3210
3225
  if (SQLCODE < 0)
3211
3226
  raise_ifx_extended();
@@ -3216,12 +3231,12 @@ fetch(VALUE self, VALUE type, int bang)
3216
3231
  /*
3217
3232
  * EXEC SQL fetch :cid using descriptor output;
3218
3233
  */
3219
- #line 2529 "informix.ec"
3234
+ #line 2537 "informix.ec"
3220
3235
  {
3221
- #line 2529 "informix.ec"
3236
+ #line 2537 "informix.ec"
3222
3237
  static _FetchSpec _FS0 = { 0, 1, 0 };
3223
3238
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
3224
- #line 2529 "informix.ec"
3239
+ #line 2537 "informix.ec"
3225
3240
  }
3226
3241
  if (SQLCODE < 0)
3227
3242
  raise_ifx_extended();
@@ -3304,13 +3319,13 @@ fetch_many(VALUE self, VALUE n, VALUE type)
3304
3319
  /*
3305
3320
  * EXEC SQL begin declare section;
3306
3321
  */
3307
- #line 2608 "informix.ec"
3308
- #line 2609 "informix.ec"
3322
+ #line 2616 "informix.ec"
3323
+ #line 2617 "informix.ec"
3309
3324
  char *cid, *did;
3310
3325
  /*
3311
3326
  * EXEC SQL end declare section;
3312
3327
  */
3313
- #line 2610 "informix.ec"
3328
+ #line 2618 "informix.ec"
3314
3329
 
3315
3330
  cursor_t *c;
3316
3331
  struct sqlda *output;
@@ -3326,11 +3341,11 @@ fetch_many(VALUE self, VALUE n, VALUE type)
3326
3341
  /*
3327
3342
  * EXEC SQL set connection :did;
3328
3343
  */
3329
- #line 2622 "informix.ec"
3344
+ #line 2630 "informix.ec"
3330
3345
  {
3331
- #line 2622 "informix.ec"
3346
+ #line 2630 "informix.ec"
3332
3347
  sqli_connect_set(0, did, 0);
3333
- #line 2622 "informix.ec"
3348
+ #line 2630 "informix.ec"
3334
3349
  }
3335
3350
  if (SQLCODE < 0)
3336
3351
  raise_ifx_extended();
@@ -3350,12 +3365,12 @@ fetch_many(VALUE self, VALUE n, VALUE type)
3350
3365
  /*
3351
3366
  * EXEC SQL fetch :cid using descriptor output;
3352
3367
  */
3353
- #line 2638 "informix.ec"
3368
+ #line 2646 "informix.ec"
3354
3369
  {
3355
- #line 2638 "informix.ec"
3370
+ #line 2646 "informix.ec"
3356
3371
  static _FetchSpec _FS0 = { 0, 1, 0 };
3357
3372
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
3358
- #line 2638 "informix.ec"
3373
+ #line 2646 "informix.ec"
3359
3374
  }
3360
3375
  if (SQLCODE < 0)
3361
3376
  raise_ifx_extended();
@@ -3434,13 +3449,13 @@ each(VALUE self, VALUE type, int bang)
3434
3449
  /*
3435
3450
  * EXEC SQL begin declare section;
3436
3451
  */
3437
- #line 2713 "informix.ec"
3438
- #line 2714 "informix.ec"
3452
+ #line 2721 "informix.ec"
3453
+ #line 2722 "informix.ec"
3439
3454
  char *cid, *did;
3440
3455
  /*
3441
3456
  * EXEC SQL end declare section;
3442
3457
  */
3443
- #line 2715 "informix.ec"
3458
+ #line 2723 "informix.ec"
3444
3459
 
3445
3460
  struct sqlda *output;
3446
3461
  VALUE record;
@@ -3453,11 +3468,11 @@ each(VALUE self, VALUE type, int bang)
3453
3468
  /*
3454
3469
  * EXEC SQL set connection :did;
3455
3470
  */
3456
- #line 2724 "informix.ec"
3471
+ #line 2732 "informix.ec"
3457
3472
  {
3458
- #line 2724 "informix.ec"
3473
+ #line 2732 "informix.ec"
3459
3474
  sqli_connect_set(0, did, 0);
3460
- #line 2724 "informix.ec"
3475
+ #line 2732 "informix.ec"
3461
3476
  }
3462
3477
  if (SQLCODE < 0)
3463
3478
  raise_ifx_extended();
@@ -3469,12 +3484,12 @@ each(VALUE self, VALUE type, int bang)
3469
3484
  /*
3470
3485
  * EXEC SQL fetch :cid using descriptor output;
3471
3486
  */
3472
- #line 2732 "informix.ec"
3487
+ #line 2740 "informix.ec"
3473
3488
  {
3474
- #line 2732 "informix.ec"
3489
+ #line 2740 "informix.ec"
3475
3490
  static _FetchSpec _FS0 = { 0, 1, 0 };
3476
3491
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
3477
- #line 2732 "informix.ec"
3492
+ #line 2740 "informix.ec"
3478
3493
  }
3479
3494
  if (SQLCODE < 0)
3480
3495
  raise_ifx_extended();
@@ -3613,13 +3628,13 @@ inscur_put(int argc, VALUE *argv, VALUE self)
3613
3628
  /*
3614
3629
  * EXEC SQL begin declare section;
3615
3630
  */
3616
- #line 2867 "informix.ec"
3617
- #line 2868 "informix.ec"
3631
+ #line 2875 "informix.ec"
3632
+ #line 2876 "informix.ec"
3618
3633
  char *cid, *did;
3619
3634
  /*
3620
3635
  * EXEC SQL end declare section;
3621
3636
  */
3622
- #line 2869 "informix.ec"
3637
+ #line 2877 "informix.ec"
3623
3638
 
3624
3639
 
3625
3640
  Data_Get_Struct(self, cursor_t, c);
@@ -3630,11 +3645,11 @@ inscur_put(int argc, VALUE *argv, VALUE self)
3630
3645
  /*
3631
3646
  * EXEC SQL set connection :did;
3632
3647
  */
3633
- #line 2876 "informix.ec"
3648
+ #line 2884 "informix.ec"
3634
3649
  {
3635
- #line 2876 "informix.ec"
3650
+ #line 2884 "informix.ec"
3636
3651
  sqli_connect_set(0, did, 0);
3637
- #line 2876 "informix.ec"
3652
+ #line 2884 "informix.ec"
3638
3653
  }
3639
3654
  if (SQLCODE < 0)
3640
3655
  raise_ifx_extended();
@@ -3650,11 +3665,11 @@ inscur_put(int argc, VALUE *argv, VALUE self)
3650
3665
  /*
3651
3666
  * EXEC SQL put :cid using descriptor input;
3652
3667
  */
3653
- #line 2888 "informix.ec"
3668
+ #line 2896 "informix.ec"
3654
3669
  {
3655
- #line 2888 "informix.ec"
3670
+ #line 2896 "informix.ec"
3656
3671
  sqli_curs_put(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), input, (char *)0);
3657
- #line 2888 "informix.ec"
3672
+ #line 2896 "informix.ec"
3658
3673
  }
3659
3674
  clean_input_slots(c);
3660
3675
  if (SQLCODE < 0)
@@ -3679,13 +3694,13 @@ inscur_flush(VALUE self)
3679
3694
  /*
3680
3695
  * EXEC SQL begin declare section;
3681
3696
  */
3682
- #line 2909 "informix.ec"
3683
- #line 2910 "informix.ec"
3697
+ #line 2917 "informix.ec"
3698
+ #line 2918 "informix.ec"
3684
3699
  char *cid, *did;
3685
3700
  /*
3686
3701
  * EXEC SQL end declare section;
3687
3702
  */
3688
- #line 2911 "informix.ec"
3703
+ #line 2919 "informix.ec"
3689
3704
 
3690
3705
 
3691
3706
  Data_Get_Struct(self, cursor_t, c);
@@ -3696,11 +3711,11 @@ inscur_flush(VALUE self)
3696
3711
  /*
3697
3712
  * EXEC SQL set connection :did;
3698
3713
  */
3699
- #line 2918 "informix.ec"
3714
+ #line 2926 "informix.ec"
3700
3715
  {
3701
- #line 2918 "informix.ec"
3716
+ #line 2926 "informix.ec"
3702
3717
  sqli_connect_set(0, did, 0);
3703
- #line 2918 "informix.ec"
3718
+ #line 2926 "informix.ec"
3704
3719
  }
3705
3720
  if (SQLCODE < 0)
3706
3721
  raise_ifx_extended();
@@ -3709,11 +3724,11 @@ inscur_flush(VALUE self)
3709
3724
  /*
3710
3725
  * EXEC SQL flush :cid;
3711
3726
  */
3712
- #line 2923 "informix.ec"
3727
+ #line 2931 "informix.ec"
3713
3728
  {
3714
- #line 2923 "informix.ec"
3729
+ #line 2931 "informix.ec"
3715
3730
  sqli_curs_flush(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256));
3716
- #line 2923 "informix.ec"
3731
+ #line 2931 "informix.ec"
3717
3732
  }
3718
3733
  return self;
3719
3734
  }
@@ -3733,14 +3748,14 @@ scrollcur_entry(VALUE self, VALUE index, VALUE type, int bang)
3733
3748
  /*
3734
3749
  * EXEC SQL begin declare section;
3735
3750
  */
3736
- #line 2939 "informix.ec"
3737
- #line 2940 "informix.ec"
3751
+ #line 2947 "informix.ec"
3752
+ #line 2948 "informix.ec"
3738
3753
  char *cid, *did;
3739
3754
  long pos;
3740
3755
  /*
3741
3756
  * EXEC SQL end declare section;
3742
3757
  */
3743
- #line 2942 "informix.ec"
3758
+ #line 2950 "informix.ec"
3744
3759
 
3745
3760
 
3746
3761
  Data_Get_Struct(self, cursor_t, c);
@@ -3751,11 +3766,11 @@ long pos;
3751
3766
  /*
3752
3767
  * EXEC SQL set connection :did;
3753
3768
  */
3754
- #line 2949 "informix.ec"
3769
+ #line 2957 "informix.ec"
3755
3770
  {
3756
- #line 2949 "informix.ec"
3771
+ #line 2957 "informix.ec"
3757
3772
  sqli_connect_set(0, did, 0);
3758
- #line 2949 "informix.ec"
3773
+ #line 2957 "informix.ec"
3759
3774
  }
3760
3775
  if (SQLCODE < 0)
3761
3776
  return Qnil;
@@ -3767,60 +3782,60 @@ long pos;
3767
3782
  /*
3768
3783
  * EXEC SQL fetch current :cid using descriptor output;
3769
3784
  */
3770
- #line 2957 "informix.ec"
3785
+ #line 2965 "informix.ec"
3771
3786
  {
3772
- #line 2957 "informix.ec"
3787
+ #line 2965 "informix.ec"
3773
3788
  static _FetchSpec _FS0 = { 0, 5, 0 };
3774
3789
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
3775
- #line 2957 "informix.ec"
3790
+ #line 2965 "informix.ec"
3776
3791
  }
3777
3792
  else if ((pos = NUM2LONG(index) + 1) > 0)
3778
3793
  /*
3779
3794
  * EXEC SQL fetch absolute :pos :cid using descriptor output;
3780
3795
  */
3781
- #line 2959 "informix.ec"
3796
+ #line 2967 "informix.ec"
3782
3797
  {
3783
- #line 2959 "informix.ec"
3798
+ #line 2967 "informix.ec"
3784
3799
  static ifx_sqlvar_t _sqibind[] =
3785
3800
  {
3786
3801
  { 103, sizeof(pos), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
3787
- #line 2959 "informix.ec"
3802
+ #line 2967 "informix.ec"
3788
3803
  };
3789
3804
  static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
3790
3805
  static _FetchSpec _FS1 = { 0, 6, 0 };
3791
- #line 2959 "informix.ec"
3806
+ #line 2967 "informix.ec"
3792
3807
  _sqibind[0].sqldata = (char *) &pos;
3793
3808
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, output, (char *)0, &_FS1);
3794
- #line 2959 "informix.ec"
3809
+ #line 2967 "informix.ec"
3795
3810
  }
3796
3811
  else {
3797
3812
  /*
3798
3813
  * EXEC SQL fetch last :cid;
3799
3814
  */
3800
- #line 2961 "informix.ec"
3815
+ #line 2969 "informix.ec"
3801
3816
  {
3802
- #line 2961 "informix.ec"
3817
+ #line 2969 "informix.ec"
3803
3818
  static _FetchSpec _FS0 = { 0, 4, 0 };
3804
3819
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (ifx_sqlda_t *)0, (char *)0, &_FS0);
3805
- #line 2961 "informix.ec"
3820
+ #line 2969 "informix.ec"
3806
3821
  }
3807
3822
  /*
3808
3823
  * EXEC SQL fetch relative :pos :cid using descriptor output;
3809
3824
  */
3810
- #line 2962 "informix.ec"
3825
+ #line 2970 "informix.ec"
3811
3826
  {
3812
- #line 2962 "informix.ec"
3827
+ #line 2970 "informix.ec"
3813
3828
  static ifx_sqlvar_t _sqibind[] =
3814
3829
  {
3815
3830
  { 103, sizeof(pos), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
3816
- #line 2962 "informix.ec"
3831
+ #line 2970 "informix.ec"
3817
3832
  };
3818
3833
  static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
3819
3834
  static _FetchSpec _FS1 = { 0, 7, 0 };
3820
- #line 2962 "informix.ec"
3835
+ #line 2970 "informix.ec"
3821
3836
  _sqibind[0].sqldata = (char *) &pos;
3822
3837
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, output, (char *)0, &_FS1);
3823
- #line 2962 "informix.ec"
3838
+ #line 2970 "informix.ec"
3824
3839
  }
3825
3840
  }
3826
3841
 
@@ -3845,13 +3860,13 @@ scrollcur_subseq(VALUE self, VALUE start, VALUE length, VALUE type)
3845
3860
  /*
3846
3861
  * EXEC SQL begin declare section;
3847
3862
  */
3848
- #line 2983 "informix.ec"
3849
- #line 2984 "informix.ec"
3863
+ #line 2991 "informix.ec"
3864
+ #line 2992 "informix.ec"
3850
3865
  long pos;
3851
3866
  /*
3852
3867
  * EXEC SQL end declare section;
3853
3868
  */
3854
- #line 2985 "informix.ec"
3869
+ #line 2993 "informix.ec"
3855
3870
 
3856
3871
 
3857
3872
  first = scrollcur_entry(self, start, type, 0);
@@ -3983,14 +3998,14 @@ scrollcur_rel(int argc, VALUE *argv, VALUE self, int dir, VALUE type, int bang)
3983
3998
  /*
3984
3999
  * EXEC SQL begin declare section;
3985
4000
  */
3986
- #line 3113 "informix.ec"
3987
- #line 3114 "informix.ec"
4001
+ #line 3121 "informix.ec"
4002
+ #line 3122 "informix.ec"
3988
4003
  char *cid, *did;
3989
4004
  long pos;
3990
4005
  /*
3991
4006
  * EXEC SQL end declare section;
3992
4007
  */
3993
- #line 3116 "informix.ec"
4008
+ #line 3124 "informix.ec"
3994
4009
 
3995
4010
 
3996
4011
  Data_Get_Struct(self, cursor_t, c);
@@ -4001,11 +4016,11 @@ long pos;
4001
4016
  /*
4002
4017
  * EXEC SQL set connection :did;
4003
4018
  */
4004
- #line 3123 "informix.ec"
4019
+ #line 3131 "informix.ec"
4005
4020
  {
4006
- #line 3123 "informix.ec"
4021
+ #line 3131 "informix.ec"
4007
4022
  sqli_connect_set(0, did, 0);
4008
- #line 3123 "informix.ec"
4023
+ #line 3131 "informix.ec"
4009
4024
  }
4010
4025
  if (SQLCODE < 0)
4011
4026
  return Qnil;
@@ -4018,20 +4033,20 @@ long pos;
4018
4033
  /*
4019
4034
  * EXEC SQL fetch relative :pos :cid using descriptor output;
4020
4035
  */
4021
- #line 3132 "informix.ec"
4036
+ #line 3140 "informix.ec"
4022
4037
  {
4023
- #line 3132 "informix.ec"
4038
+ #line 3140 "informix.ec"
4024
4039
  static ifx_sqlvar_t _sqibind[] =
4025
4040
  {
4026
4041
  { 103, sizeof(pos), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
4027
- #line 3132 "informix.ec"
4042
+ #line 3140 "informix.ec"
4028
4043
  };
4029
4044
  static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
4030
4045
  static _FetchSpec _FS1 = { 0, 7, 0 };
4031
- #line 3132 "informix.ec"
4046
+ #line 3140 "informix.ec"
4032
4047
  _sqibind[0].sqldata = (char *) &pos;
4033
4048
  sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, output, (char *)0, &_FS1);
4034
- #line 3132 "informix.ec"
4049
+ #line 3140 "informix.ec"
4035
4050
  }
4036
4051
 
4037
4052
  if (SQLCODE == SQLNOTFOUND)
@@ -4331,13 +4346,13 @@ cursor_close_or_free(cursor_t *c, short op)
4331
4346
  /*
4332
4347
  * EXEC SQL begin declare section;
4333
4348
  */
4334
- #line 3428 "informix.ec"
4335
- #line 3429 "informix.ec"
4349
+ #line 3436 "informix.ec"
4350
+ #line 3437 "informix.ec"
4336
4351
  char *cid, *sid, *did;
4337
4352
  /*
4338
4353
  * EXEC SQL end declare section;
4339
4354
  */
4340
- #line 3430 "informix.ec"
4355
+ #line 3438 "informix.ec"
4341
4356
 
4342
4357
 
4343
4358
  if (op == 1 && !c->is_open)
@@ -4355,11 +4370,11 @@ cursor_close_or_free(cursor_t *c, short op)
4355
4370
  /*
4356
4371
  * EXEC SQL set connection :did;
4357
4372
  */
4358
- #line 3444 "informix.ec"
4373
+ #line 3452 "informix.ec"
4359
4374
  {
4360
- #line 3444 "informix.ec"
4375
+ #line 3452 "informix.ec"
4361
4376
  sqli_connect_set(0, did, 0);
4362
- #line 3444 "informix.ec"
4377
+ #line 3452 "informix.ec"
4363
4378
  }
4364
4379
  if (SQLCODE < 0)
4365
4380
  return;
@@ -4368,11 +4383,11 @@ cursor_close_or_free(cursor_t *c, short op)
4368
4383
  /*
4369
4384
  * EXEC SQL close :cid;
4370
4385
  */
4371
- #line 3449 "informix.ec"
4386
+ #line 3457 "informix.ec"
4372
4387
  {
4373
- #line 3449 "informix.ec"
4388
+ #line 3457 "informix.ec"
4374
4389
  sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256));
4375
- #line 3449 "informix.ec"
4390
+ #line 3457 "informix.ec"
4376
4391
  }
4377
4392
 
4378
4393
  if (op == 2) {
@@ -4380,20 +4395,20 @@ cursor_close_or_free(cursor_t *c, short op)
4380
4395
  /*
4381
4396
  * EXEC SQL free :cid;
4382
4397
  */
4383
- #line 3453 "informix.ec"
4398
+ #line 3461 "informix.ec"
4384
4399
  {
4385
- #line 3453 "informix.ec"
4400
+ #line 3461 "informix.ec"
4386
4401
  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 258));
4387
- #line 3453 "informix.ec"
4402
+ #line 3461 "informix.ec"
4388
4403
  }
4389
4404
  /*
4390
4405
  * EXEC SQL free :sid;
4391
4406
  */
4392
- #line 3453 "informix.ec"
4407
+ #line 3461 "informix.ec"
4393
4408
  {
4394
- #line 3453 "informix.ec"
4409
+ #line 3461 "informix.ec"
4395
4410
  sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 258));
4396
- #line 3453 "informix.ec"
4411
+ #line 3461 "informix.ec"
4397
4412
  }
4398
4413
  }
4399
4414
  }
@@ -4437,14 +4452,14 @@ cursor_initialize(int argc, VALUE *argv, VALUE self)
4437
4452
  /*
4438
4453
  * EXEC SQL begin declare section;
4439
4454
  */
4440
- #line 3493 "informix.ec"
4441
- #line 3494 "informix.ec"
4455
+ #line 3501 "informix.ec"
4456
+ #line 3502 "informix.ec"
4442
4457
  char *c_query;
4443
4458
  char *cid, *sid, *did;
4444
4459
  /*
4445
4460
  * EXEC SQL end declare section;
4446
4461
  */
4447
- #line 3496 "informix.ec"
4462
+ #line 3504 "informix.ec"
4448
4463
 
4449
4464
 
4450
4465
  rb_scan_args(argc, argv, "21", &db, &query, &options);
@@ -4453,11 +4468,11 @@ cursor_initialize(int argc, VALUE *argv, VALUE self)
4453
4468
  /*
4454
4469
  * EXEC SQL set connection :did;
4455
4470
  */
4456
- #line 3501 "informix.ec"
4471
+ #line 3509 "informix.ec"
4457
4472
  {
4458
- #line 3501 "informix.ec"
4473
+ #line 3509 "informix.ec"
4459
4474
  sqli_connect_set(0, did, 0);
4460
- #line 3501 "informix.ec"
4475
+ #line 3509 "informix.ec"
4461
4476
  }
4462
4477
  if (SQLCODE < 0)
4463
4478
  raise_ifx_extended();
@@ -4480,11 +4495,11 @@ cursor_initialize(int argc, VALUE *argv, VALUE self)
4480
4495
  /*
4481
4496
  * EXEC SQL prepare :sid from :c_query;
4482
4497
  */
4483
- #line 3520 "informix.ec"
4498
+ #line 3528 "informix.ec"
4484
4499
  {
4485
- #line 3520 "informix.ec"
4500
+ #line 3528 "informix.ec"
4486
4501
  sqli_prep(ESQLINTVERSION, sid, c_query,(ifx_literal_t *)0, (ifx_namelist_t *)0, -1, 0, 0 );
4487
- #line 3520 "informix.ec"
4502
+ #line 3528 "informix.ec"
4488
4503
  }
4489
4504
  if (SQLCODE < 0)
4490
4505
  raise_ifx_extended();
@@ -4493,41 +4508,41 @@ cursor_initialize(int argc, VALUE *argv, VALUE self)
4493
4508
  /*
4494
4509
  * EXEC SQL declare :cid scroll cursor with hold for :sid;
4495
4510
  */
4496
- #line 3525 "informix.ec"
4511
+ #line 3533 "informix.ec"
4497
4512
  {
4498
- #line 3525 "informix.ec"
4513
+ #line 3533 "informix.ec"
4499
4514
  sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 4128, 0);
4500
- #line 3525 "informix.ec"
4515
+ #line 3533 "informix.ec"
4501
4516
  }
4502
4517
  else if (RTEST(hold))
4503
4518
  /*
4504
4519
  * EXEC SQL declare :cid cursor with hold for :sid;
4505
4520
  */
4506
- #line 3527 "informix.ec"
4521
+ #line 3535 "informix.ec"
4507
4522
  {
4508
- #line 3527 "informix.ec"
4523
+ #line 3535 "informix.ec"
4509
4524
  sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 4096, 0);
4510
- #line 3527 "informix.ec"
4525
+ #line 3535 "informix.ec"
4511
4526
  }
4512
4527
  else if (RTEST(scroll))
4513
4528
  /*
4514
4529
  * EXEC SQL declare :cid scroll cursor for :sid;
4515
4530
  */
4516
- #line 3529 "informix.ec"
4531
+ #line 3537 "informix.ec"
4517
4532
  {
4518
- #line 3529 "informix.ec"
4533
+ #line 3537 "informix.ec"
4519
4534
  sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 32, 0);
4520
- #line 3529 "informix.ec"
4535
+ #line 3537 "informix.ec"
4521
4536
  }
4522
4537
  else
4523
4538
  /*
4524
4539
  * EXEC SQL declare :cid cursor for :sid;
4525
4540
  */
4526
- #line 3531 "informix.ec"
4541
+ #line 3539 "informix.ec"
4527
4542
  {
4528
- #line 3531 "informix.ec"
4543
+ #line 3539 "informix.ec"
4529
4544
  sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 0, 0);
4530
- #line 3531 "informix.ec"
4545
+ #line 3539 "informix.ec"
4531
4546
  }
4532
4547
 
4533
4548
  if (SQLCODE < 0)
@@ -4537,11 +4552,11 @@ cursor_initialize(int argc, VALUE *argv, VALUE self)
4537
4552
  /*
4538
4553
  * EXEC SQL describe :sid into output;
4539
4554
  */
4540
- #line 3537 "informix.ec"
4555
+ #line 3545 "informix.ec"
4541
4556
  {
4542
- #line 3537 "informix.ec"
4557
+ #line 3545 "informix.ec"
4543
4558
  sqli_describe_stmt(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), &output, 0);
4544
- #line 3537 "informix.ec"
4559
+ #line 3545 "informix.ec"
4545
4560
  }
4546
4561
  c->daOutput = output;
4547
4562
 
@@ -4669,13 +4684,13 @@ cursor_open(int argc, VALUE *argv, VALUE self)
4669
4684
  /*
4670
4685
  * EXEC SQL begin declare section;
4671
4686
  */
4672
- #line 3661 "informix.ec"
4673
- #line 3662 "informix.ec"
4687
+ #line 3669 "informix.ec"
4688
+ #line 3670 "informix.ec"
4674
4689
  char *cid, *did;
4675
4690
  /*
4676
4691
  * EXEC SQL end declare section;
4677
4692
  */
4678
- #line 3663 "informix.ec"
4693
+ #line 3671 "informix.ec"
4679
4694
 
4680
4695
 
4681
4696
  Data_Get_Struct(self, cursor_t, c);
@@ -4687,11 +4702,11 @@ cursor_open(int argc, VALUE *argv, VALUE self)
4687
4702
  /*
4688
4703
  * EXEC SQL set connection :did;
4689
4704
  */
4690
- #line 3671 "informix.ec"
4705
+ #line 3679 "informix.ec"
4691
4706
  {
4692
- #line 3671 "informix.ec"
4707
+ #line 3679 "informix.ec"
4693
4708
  sqli_connect_set(0, did, 0);
4694
- #line 3671 "informix.ec"
4709
+ #line 3679 "informix.ec"
4695
4710
  }
4696
4711
  if (SQLCODE < 0)
4697
4712
  raise_ifx_extended();
@@ -4710,11 +4725,11 @@ cursor_open(int argc, VALUE *argv, VALUE self)
4710
4725
  * EXEC SQL open :cid using descriptor input
4711
4726
  * with reoptimization;
4712
4727
  */
4713
- #line 3685 "informix.ec"
4728
+ #line 3693 "informix.ec"
4714
4729
  {
4715
- #line 3686 "informix.ec"
4730
+ #line 3694 "informix.ec"
4716
4731
  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), input, (char *)0, (struct value *)0, 1, 1);
4717
- #line 3686 "informix.ec"
4732
+ #line 3694 "informix.ec"
4718
4733
  }
4719
4734
  clean_input_slots(c);
4720
4735
  }
@@ -4722,22 +4737,22 @@ cursor_open(int argc, VALUE *argv, VALUE self)
4722
4737
  /*
4723
4738
  * EXEC SQL open :cid with reoptimization;
4724
4739
  */
4725
- #line 3690 "informix.ec"
4740
+ #line 3698 "informix.ec"
4726
4741
  {
4727
- #line 3690 "informix.ec"
4742
+ #line 3698 "informix.ec"
4728
4743
  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 1);
4729
- #line 3690 "informix.ec"
4744
+ #line 3698 "informix.ec"
4730
4745
  }
4731
4746
  }
4732
4747
  else
4733
4748
  /*
4734
4749
  * EXEC SQL open :cid;
4735
4750
  */
4736
- #line 3693 "informix.ec"
4751
+ #line 3701 "informix.ec"
4737
4752
  {
4738
- #line 3693 "informix.ec"
4753
+ #line 3701 "informix.ec"
4739
4754
  sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
4740
- #line 3693 "informix.ec"
4755
+ #line 3701 "informix.ec"
4741
4756
  }
4742
4757
 
4743
4758
  if (SQLCODE < 0)
@@ -5003,4 +5018,4 @@ void Init_informix(void)
5003
5018
  rbifx_except_init(rb_mInformix, &esyms);
5004
5019
  }
5005
5020
 
5006
- #line 3956 "informix.ec"
5021
+ #line 3964 "informix.ec"
@@ -1,4 +1,4 @@
1
- /* $Id: informix.ec,v 1.10 2007/08/23 02:32:56 santana Exp $ */
1
+ /* $Id: informix.ec,v 1.12 2007/10/14 00:18:50 santana Exp $ */
2
2
  /*
3
3
  * Copyright (c) 2006-2007, Gerardo Santana Gomez Garrido <gerardo.santana@gmail.com>
4
4
  * All rights reserved.
@@ -28,7 +28,7 @@
28
28
  * POSSIBILITY OF SUCH DAMAGE.
29
29
  */
30
30
 
31
- static const char rcsid[] = "$Id: informix.ec,v 1.10 2007/08/23 02:32:56 santana Exp $";
31
+ static const char rcsid[] = "$Id: informix.ec,v 1.12 2007/10/14 00:18:50 santana Exp $";
32
32
 
33
33
  #include "ruby.h"
34
34
  #include "ifx_except.h"
@@ -1775,7 +1775,7 @@ rb_informix_connect(int argc, VALUE *argv, VALUE self)
1775
1775
  */
1776
1776
  static VALUE rb_informix_version(void)
1777
1777
  {
1778
- static const char * const ver = "0.6.0";
1778
+ static const char * const ver = "0.6.1";
1779
1779
  static VALUE driver_version;
1780
1780
 
1781
1781
  if (driver_version == 0)
@@ -2144,22 +2144,30 @@ rb_database_columns(VALUE self, VALUE tablename)
2144
2144
  result = rb_ary_new();
2145
2145
 
2146
2146
  cid = did + IDSIZE;
2147
+
2147
2148
  if (!*cid) {
2148
- snprintf(cid, IDSIZE, "COLS%lX", self);
2149
- EXEC SQL declare :cid cursor for
2150
- select colname, coltype, collength, extended_id,
2149
+ EXEC SQL begin declare section;
2150
+ char sid[IDSIZE];
2151
+ EXEC SQL end declare section;
2152
+
2153
+ snprintf(sid, IDSIZE, "COLS%lX", self);
2154
+ snprintf(cid, IDSIZE, "COLC%lX", self);
2155
+
2156
+ EXEC SQL prepare :sid from
2157
+ 'select colname, coltype, collength, extended_id,
2151
2158
  type, default, c.colno
2152
2159
  from syscolumns c, outer sysdefaults d
2153
- where c.tabid = :tabid and c.tabid = d.tabid
2160
+ where c.tabid = ? and c.tabid = d.tabid
2154
2161
  and c.colno = d.colno
2155
- order by c.colno;
2162
+ order by c.colno';
2163
+ EXEC SQL declare :cid cursor for :sid;
2156
2164
  if (SQLCODE < 0) {
2157
2165
  cid[0] = 0;
2158
2166
  raise_ifx_extended();
2159
2167
  }
2160
2168
  }
2161
2169
 
2162
- EXEC SQL open :cid;
2170
+ EXEC SQL open :cid using :tabid;
2163
2171
  if (SQLCODE < 0)
2164
2172
  raise_ifx_extended();
2165
2173
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: ruby-informix
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.6.0
7
- date: 2007-08-28 00:00:00 -05:00
6
+ version: 0.6.1
7
+ date: 2007-10-13 00:00:00 -05:00
8
8
  summary: Informix driver for Ruby
9
9
  require_paths:
10
10
  - lib