pg 0.8.0-x86-mswin32-60

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.
@@ -0,0 +1,103 @@
1
+
2
+ require 'rubygems'
3
+ require 'rake/clean'
4
+ require 'rake/gempackagetask'
5
+ require 'spec/rake/spectask'
6
+ require 'rake/rdoctask'
7
+ require 'ext_helper'
8
+ require 'date'
9
+
10
+ # House-keeping
11
+ CLEAN.include '**/*.o', 'ext/*.so', '**/*.bundle', '**/*.a',
12
+ '**/*.log', "{ext,lib}/*.{bundle,so,obj,pdb,lib,def,exp}",
13
+ "ext/Makefile", 'lib', '**/*.db'
14
+
15
+ FILES = FileList[
16
+ 'Rakefile',
17
+ 'README',
18
+ 'LICENSE',
19
+ 'COPYING.txt',
20
+ 'ChangeLog',
21
+ 'Contributors',
22
+ 'GPL',
23
+ 'BSD',
24
+ 'doc/**/*',
25
+ 'ext/*',
26
+ 'ext/mingw/Rakefile',
27
+ 'ext/mingw/build.rake',
28
+ 'ext/vc/*.sln',
29
+ 'ext/vc/*.vcproj',
30
+ 'lib/**/*',
31
+ 'sample/**/*',
32
+ 'spec/**/*'
33
+ ]
34
+
35
+ spec = Gem::Specification.new do |s|
36
+ s.name = 'pg'
37
+ s.platform = Gem::Platform::RUBY
38
+ s.require_path = "lib"
39
+ s.rubyforge_project = 'ruby-pg'
40
+ s.version = "0.8.0"
41
+ s.date = DateTime.now
42
+ s.summary = 'Ruby extension library providing an API to PostgreSQL'
43
+ s.authors = [
44
+ 'Yukihiro Matsumoto',
45
+ 'Eiji Matsumoto',
46
+ 'Noboru Saitou',
47
+ 'Dave Lee',
48
+ 'Jeff Davis']
49
+ s.email = 'ruby-pg@j-davis.com'
50
+ s.homepage = 'http://rubyforge.org/projects/ruby-pg'
51
+ s.requirements = 'PostgreSQL libpq library and headers'
52
+ s.has_rdoc = true
53
+ s.extra_rdoc_files = ['ext/pg.c']
54
+ s.extensions = [ 'ext/extconf.rb' ]
55
+ s.required_ruby_version = '>= 1.8.4'
56
+ s.files = FILES.to_a.reject { |x| CLEAN.include?(x) }
57
+ end
58
+
59
+ Rake::GemPackageTask.new(spec) do |pkg|
60
+ pkg.gem_spec = spec
61
+ pkg.need_tar = true
62
+ end
63
+
64
+ # ------- Windows Package ----------
65
+ if RUBY_PLATFORM.match(/win32/)
66
+ binaries = (FileList['ext/mingw/*.so',
67
+ 'ext/mingw/*.dll*'])
68
+
69
+ # Windows specification
70
+ win_spec = spec.clone
71
+ win_spec.extensions = ['ext/mingw/Rakefile']
72
+ win_spec.platform = Gem::Platform::CURRENT
73
+ win_spec.files += binaries.to_a
74
+
75
+ # Rake task to build the windows package
76
+ Rake::GemPackageTask.new(win_spec) do |pkg|
77
+ end
78
+ end
79
+
80
+ # --------- RDoc Documentation ---------
81
+ desc "Generate rdoc documentation"
82
+ Rake::RDocTask.new("rdoc") do |rdoc|
83
+ rdoc.rdoc_dir = 'doc/rdoc'
84
+ rdoc.title = "pg"
85
+ # Show source inline with line numbers
86
+ rdoc.options << "--line-numbers"
87
+ # Make the readme file the start page for the generated html
88
+ rdoc.options << '--main' << 'README'
89
+ rdoc.rdoc_files.include('ext/**/*.c',
90
+ 'ChangeLog',
91
+ 'README*',
92
+ 'LICENSE')
93
+ end
94
+
95
+
96
+ setup_extension 'pg', spec
97
+
98
+ desc "Run all specs in spec directory"
99
+ Spec::Rake::SpecTask.new("spec") do |t|
100
+ t.spec_opts = ["--format", "specdoc", "--colour"]
101
+ t.spec_files = FileList["spec/**/*_spec.rb"]
102
+ end
103
+ task :spec => [:compile]
@@ -0,0 +1,278 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2
+ "http://www.w3.org/TR/html4/strict.dtd">
3
+ <html lang="en">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6
+ <meta http-equiv="Content-Style-Type" content="text/css">
7
+ <meta name="Keywords" lang="en" content="Ruby PostgreSQL">
8
+ <link rev="made" href="mailto:noborus@netlab.jp">
9
+ <style type="text/css">
10
+ <!--
11
+ body {
12
+ background-color: white;
13
+ color: black;
14
+ }
15
+ address { text-align: right }
16
+ div.lastmodifed { text-align: right }
17
+ div.language { text-align: right }
18
+ pre {
19
+ white-space: pre;
20
+ background-color: antiquewhite;
21
+ border: inset thin;
22
+ }
23
+ -->
24
+ </style>
25
+ <title>Postgres reference</title>
26
+ </head>
27
+ <body>
28
+ <div class = "language">
29
+ [English | <a href="postgres.jp.html">Japanese</a>]
30
+ </div>
31
+ <h1><a name="reference">Postgres reference</a></h1>
32
+ <div class = "lastmodifed">
33
+ Last update: Sun, 4 Mar 2001 15:40:08 +0000
34
+ </div>
35
+ <hr>
36
+ <div>
37
+ <h2><a name="PGconn">PGconn</a></h2>
38
+ <p>
39
+ The class to access PostgreSQL database. All other functionality of libpq
40
+ save the large object to a file.
41
+ </p>
42
+ <p>
43
+ For example, to send query to the database on the localhost.
44
+ </p>
45
+ <pre>
46
+ require &quot;postgres&quot;
47
+ conn = PGconn.connect("localhost", 5432, &quot;&quot;, &quot;&quot;, &quot;test1&quot;)
48
+ # or: conn = PGconn.open('dbname=test1')
49
+ res = conn.exec(&quot;select * from a;&quot;)
50
+ </pre>
51
+ <h3>super class:</h3>
52
+ <code>Object</code>
53
+ <h3>class methods:</h3>
54
+ <p>
55
+ <a name="PGconn.connect"><code>connect(<var>pghost</var>,
56
+ <var>pgport</var>, <var>pgoptions</var>,
57
+ <var>pgtty</var>, <var>dbname</var>, <var>login</var>,
58
+ <var>passwd</var>)</code></a>
59
+ <a name="PGconn.new"><code>new(<var>pghost</var>,
60
+ <var>pgport</var>, <var>pgoptions</var>,
61
+ <var>pgtty</var>, <var>dbname</var>, <var>login</var>,
62
+ <var>passwd</var>)</code></a>
63
+ <a name="PGconn.open"><code>open(<var>string</var>)</code></a>
64
+ </p>
65
+ <dl>
66
+ <dt>Connect to the PostgreSQL server. Options are:</dt>
67
+ <dd><var>pghost</var> : Server hostname(string)
68
+ <dd><var>pgport</var> : Server port number(integer)
69
+ <dd><var>pgoptions</var> : backend options(string)
70
+ <dd><var>pgtty</var> : tty to print backend debug message(string)
71
+ <dd><var>dbname</var> : connecting database name(string)
72
+ <dd><var>login</var> : login user name(string)
73
+ <dd><var>passwd</var> : login password(string)
74
+ <dt>Options in string format (separated by whitespace) are:</dt>
75
+ <dd><var>host=name</var> : Server hostname(string) (defaults to localhost)
76
+ <dd><var>hostaddr=addr</var> : Server host IP address(string)
77
+ <dd><var>port=number</var> : Server port number(integer) (default: 5432)
78
+ <dd><var>options=string</var> : backend options(string) (sent to server, not well explained)
79
+ <dd><var>tty=anything</var> : ignored, used to be debug TTY(string)
80
+ <dd><var>dbname=name</var> : connecting database name(string) (default: your username)
81
+ <dd><var>user=username</var> : login user name(string) (default: your username)
82
+ <dd><var>password=censored</var> : login password(string)
83
+ <dd><var>sslmode=mode</var> : how to treat SSL(string) (one of disable, allow, prefer, require)
84
+ <dd><var>service=name</var> : service name in pg_service.conf(string)
85
+ <dd><var>connect_timeout=seconds</var> : how long to wait for a connection(integer) (0 means forever)
86
+ </dl>
87
+ <p>On failure, it raises <code>PGError</code> exception.</p>
88
+ <h3>methods:</h3>
89
+ <dl>
90
+ <dt><a name="db"><code>db</code></a>
91
+ <dd>Returns the connected database name.
92
+ <dt><a name="host"><code>host</code></a>
93
+ <dd>Returns the connected server name.
94
+ <dt><a name="user"><code>user</code></a>
95
+ <dd>Returns the authenticated user name.
96
+ <dt><a name="options"><code>options</code></a>
97
+ <dd>Returns backend option string.
98
+ <dt><a name="port"><code>port</code></a>
99
+ <dd>Returns the connected server port number.
100
+ <dt><a name="tty"><code>tty</code></a>
101
+ <dd>Returns the connected pgtty.
102
+ <dt><a name="error"><code>error</code></a>
103
+ <dd>Returns the error message about connection.
104
+ <dt> <a name="finish"><code>finish</code></a>
105
+ <dt> <a name="close"><code>close</code></a>
106
+ <dd>Closes the backend connection.
107
+ <dt><a name="reset"><code>reset</code></a>
108
+ <dd>Resets the backend connection. This method closes the backend
109
+ connection and tries to re-connect.
110
+ <dt><a name="trace"><code>trace(<var>port</var>)</code></a>
111
+ <dd>Enables tracing message passing between backend. The trace
112
+ message will be written to the port object, which is the
113
+ instance of the class File.
114
+ <dt><a name="untrace"><code>untrace</code></a>
115
+ <dd>Disables the message tracing.
116
+ <dt><a name="exec"><code>exec(<var>sql</var>)</code></a>
117
+ <dd>Sends SQL query request specified by <var>sql</var> to the
118
+ PostgreSQL. Returns the <a href="#PGresult">PGresult</a>
119
+ instance on success. On failure, it raises <code>PGError</code>
120
+ exception.
121
+ <dt><a name="query"><code>query(<var>sql</var>)</code></a>
122
+ <dd>Sends SQL query request specified by <var>sql</var> to the
123
+ PostgreSQL.Returns an Array as the resulting tuple on success.
124
+ On failure, it returns nil, and error detail can be obtained
125
+ by error.
126
+ <dt><a name="async_exec"><code>async_exec(<var>sql</var>)</code></a>
127
+ <dd>Sends SQL asynchronous query request specified by <var>sql</var>
128
+ to the PostgreSQL. Returns the <a href="#PGresult">PGresult</a>
129
+ instance on success. On failure, it raises <code>PGError</code>
130
+ exception.
131
+ <dt><a name="async_query"><code>async_query(<var>sql</var>)</code></a>
132
+ <dd>Sends SQL asynchronous query request specified by <var>sql</var>
133
+ to the PostgreSQL.Returns an Array as the resulting tuple on
134
+ success. On failure, it returns nil, and error detail can be
135
+ obtained by error.
136
+ <dt><a name="get_notify"><code>get_notify</code></a>
137
+ <dd>Returns the array of the unprocessed notifiers.
138
+ If there is no unprocessed notifier, it returns nil.
139
+ <dt><a name="insert_table"><code>insert_table(<var>table</var>,
140
+ <var>array</var>)</code></a>
141
+ <dd>Inserts contents of the <var>array</var> into the
142
+ <var>table</var>.
143
+ <dt><a name="getline"><code>getline</code></a>
144
+ <dd>Reads a line from the backend server into internal buffer.
145
+ Returns nil for EOF, 0 for success, 1 for buffer overflowed.
146
+ You need to ensure single &quot;.&quot; from backend to confirm
147
+ transmission completion. The sample program <a href="../sample/psql.rb">psql.rb</a>
148
+ treats this copy protocol right.
149
+ <dt><a name="putline"><code>putline(<var>string</var>)</code></a>
150
+ <dd>Sends the <var>string</var> to the backend server.
151
+ Users must send a single &quot;.&quot; to denote the end of data transmission.
152
+ <dt><a name="endcopy"><code>endcopy</code></a>
153
+ <dd>Waits until the backend completes the copying. You should call
154
+ this method after putline, or getline.Returns nil on success,
155
+ raises an exception otherwise.
156
+ <dt><a name="set_client_encoding"><code>set_client_encoding</code></a>
157
+ <dd>Set client encoding(String).
158
+ <dt><a name="client_encoding"><code>client_encoding</code></a>
159
+ <dd>Returns client encoding(String).
160
+ <dt><a name="set_notice_processor"><code>set_notice_processor(proc)</code></a>
161
+ <dd>Control reporting of notice and warning messages generated by the
162
+ backend server (with Proc or anything else responding to :call).
163
+ Pass nil to disable processing of the messages.
164
+
165
+ <dt><a name="lo_import"><code>lo_import(<var>file</var>)</code></a>
166
+ <dd>Import a <var>file</var> to a large object. Return the <a href="#PGlarge">PGlarge</a> instance on success. On failure, it raises <code>PGError</code> exception.
167
+ <dt><a name="lo_export"><code>lo_export(<var>oid</var>, <var>file</var>)</code></a>
168
+ <dd>Save a large object of oid to a <var>file</var>.
169
+ <dt><a name="lo_create"><code>lo_create([<var>mode</var>])</code></a>
170
+ <dd>Return the <a href="#PGlarge">PGlarge</a> instance on success. On failure, it raises <code>PGError</code> exception.
171
+ <dt><a name="lo_open"><code>lo_open(<var>oid</var>, [<var>mode</var>])</code></a>
172
+ <dd>Open a large object of oid. Return the <a href="#PGlarge">PGlarge</a> instance on success. The mode argument specifies the mode for the opened large object, which is either <var>&quot;INV_READ&quot;</var>, or <var>&quot;INV_WRITE&quot;</var>. If mode On failure, it raises <code>PGError</code> exception. If mode omitted, the default is <var>&quot;INV_READ&quot;</var>
173
+ <dt><a name="lo_unlink"><code>lo_unlink(<var>oid</var>)</code></a>
174
+ <dd>Unlink (deletes) the postgres large object of oid.
175
+ </dl>
176
+ </div>
177
+ <hr>
178
+ <div>
179
+ <h2><a name="PGresult">PGresult</a></h2>
180
+ <P>
181
+ The class to represent the query result tuples. The object of this
182
+ class is created as the result of every query. You may need to invoke
183
+ clear method for the finished object for better memory performance.
184
+ </P>
185
+ <h3>super class:</h3>
186
+ <p>
187
+ <code>Object</code>
188
+ </p>
189
+ <h2>methods:</h2>
190
+ <dl>
191
+ <dt><a name="status"><code>status</code></a>
192
+ <dd><dl>
193
+ <dt>Returns the status of the query. The status value is
194
+ either:
195
+ <dd>EMPTY_QUERY
196
+ <dd>COMMAND_OK
197
+ <dd>TUPLES_OK
198
+ <dd>COPY_OUT
199
+ <dd>COPY_IN
200
+ </dl>
201
+ <dt><a name="result"><code>result</code></a>
202
+ <dd>Returns the query result tuple in the array.
203
+ <dt><a name="fields"><code>fields</code></a>
204
+ <dd>Returns the array of the fields of the query result.
205
+ <dt><a name="num_tuples"><code>num_tuples</code></a>
206
+ <dd>Returns the number of tuples of the query result.
207
+ <dt><a name="num_fields"><code>num_fields</code></a>
208
+ <dd>Returns the number of fields of the query result.
209
+ <dt><a name="fieldname"><code>fieldname(<var>index</var>)</code></a>
210
+ <dd>Returns the field name corresponding field index.
211
+ <dt><a name="fieldnum"><code>fieldnum(<var>name</var>)</code></a>
212
+ <dd>Returns the index of the <var>name</var>ed field.
213
+ <dt><a name="type"><code>type(<var>index</var>)</code></a>
214
+ <dd>Returns the integer corresponding the type of the field.
215
+ The field indicator starts from zero.
216
+ <dt><a name="size"><code>size(<var>index</var>)</code></a>
217
+ <dd>Returns the size of the field in bytes.
218
+ Returns <code>-1</code> if the field is variable sized.
219
+ <dt><a name="getvalue"><code>getvalue(<var>tup_num, field_num</var>)
220
+ </code></a>
221
+ <dd>Returns the field value.
222
+ <dt><a name="getlength"><code>getlength(<var>tup_num, field_num</var>)
223
+ </code></a>
224
+ <dd>Returns the length of the field in bytes.
225
+ <dt><a name="cmdstatus"><code>cmdtuples</code></a>
226
+ <dd>the number of tuples (rows) affected by the SQL command.
227
+ <dt><a name="cmdstatus"><code>cmdstatus</code></a>
228
+ <dd>Returns the status string of the last query command.
229
+ <dt><a name="oid"><code>oid</code></a>
230
+ <dd>Returns the oid of the inserted row, or <code>nil</code> if
231
+ the last statement was not an <code>INSERT</code>
232
+ <dt><a name="clear"><code>clear</code></a>
233
+ <dd>Clears the <a href="#PGresult">PGresult</a> object as the result
234
+ of the query.
235
+ </dl>
236
+ </div>
237
+ <hr>
238
+ <div>
239
+ <h2><a name="PGlarge">PGlarge</a></h2>
240
+ <P>
241
+ The class to access large objects. The object of this class is created as the
242
+ result of <a href="#lo_import">lo_import</a>, <a href="#lo_create">lo_create</a>, and <a href="#lo_open">lo_open</a>.
243
+ </P>
244
+ <h3>super class:</h3>
245
+ <p>
246
+ <code>Object</code>
247
+ </p>
248
+ <h2>methods:</h2>
249
+ <dl>
250
+ <dt><a name="open"><code>open([<var>mode</var>])</code></a>
251
+ <dd>Open a large object. The mode argument specifies the mode for the opened large object, which is either <var>&quot;INV_READ&quot;</var>,<var>&quot;INV_READ&quot;</var>.
252
+ <dt><a name="close"><code>close</code></a>
253
+ <dd>Close a large object. Closed when they are garbage-collected.
254
+ <dt><a name="read"><code>read([<var>length</var>])</code></a>
255
+ <dd>Attempts to read <var>length</var> bytes from large object. If no <var>length</var> given, reads all data.
256
+ <dt><a name="write"><code>write(<var>str</var>)</code></a>
257
+ <dd>Write the string to the large object. Return the number of bytes written.
258
+ <dt><a name="seek"><code>seek(<var>offset</var>, <var>whence</var>)</code></a>
259
+ <dd>Move the large object pointer to the <var>offset</var>. The value for <var>whence</var> are SEEK_SET, SEEK_CUR, and SEEK_END.Or it is 0,1,2.
260
+ <dt><a name="tell"><code>tell</code></a>
261
+ <dd>Return the current position of the large object pointer.
262
+ <dt><a name="unlink"><code>unlink</code></a>
263
+ <dd>Delete large object.
264
+ <dt><a name="oid"><code>oid</code></a>
265
+ <dd>Return the large object oid.
266
+ <dt><a name="size"><code>size</code></a>
267
+ <dd>Return the size of large object.
268
+ <dt><a name="export"><code>export(<var>file</var>)</code></a>
269
+ <dd>Save a large object of oid to a <var>file</var>.
270
+ </dl>
271
+ </div>
272
+ <hr>
273
+ <address>
274
+ mailto:
275
+ <a href="mailto:noborus@netlab.jp">Noboru Saitou</a>
276
+ </address>
277
+ </body>
278
+ </html>
@@ -0,0 +1,256 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2
+ "http://www.w3.org/TR/html4/strict.dtd">
3
+ <html lang="ja">
4
+ <head>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
6
+ <meta http-equiv="Content-Style-Type" content="text/css">
7
+ <meta name="Keywords" lang="en" content="Ruby PostgreSQL">
8
+ <link rev="made" href="mailto:noborus@netlab.jp">
9
+ <link rel="contents" href="./index.html">
10
+ <style type="text/css">
11
+ <!--
12
+ body {
13
+ background-color: white;
14
+ color: black;
15
+ }
16
+ address { text-align: right }
17
+ div.lastmodifed { text-align: right }
18
+ div.language { text-align: right }
19
+ pre {
20
+ white-space: pre;
21
+ background-color: antiquewhite;
22
+ border: inset thin;
23
+ }
24
+ -->
25
+ </style>
26
+ <title>Postgres reference</title>
27
+ </head>
28
+ <body>
29
+ <div class = "language">
30
+ [<a href="postgres.html">English</a> | Japanese]
31
+ </div>
32
+ <h1><a name="reference">Postgres reference</a></h1>
33
+ <div class = "lastmodifed">
34
+ Last update: Mon, 5 Mar 2001 00:34:55 +0900
35
+ </div>
36
+ <hr>
37
+ <div>
38
+ <h2><a name="PGconn">PGconn</a></h2>
39
+ <p>
40
+ PostgreSQL$B$K%"%/%;%9$9$k$?$a$N%/%i%9!#$=$NB>$N%a%=%C%I$O(Blibpq$B$H$[$\F1$8%$%s%?%U%'!<%9$GDs6!$5$l$^$9!#(B
41
+ </p>
42
+ <p>
43
+ $BNc$($P!"(Blocalhost $B>e$N(B PostgreSQL $B$K@\B3$7!"(Bquery $B$r=P$9$?$a$K$O0J2<$N$h$&$K$7$F9T$$$^$9!#(B
44
+ </p>
45
+ <pre>
46
+ require &quot;postgres&quot;
47
+ conn = PGconn.connect("localhost", 5432, &quot;&quot;, &quot;&quot;, &quot;test1&quot;)
48
+ res = conn.exec(&quot;select * from a;&quot;)
49
+ </pre>
50
+ <h3>$B%9!<%P!<%/%i%9(B:</h3>
51
+ <code>Object</code>
52
+ <h3>$B%/%i%9%a%=%C%I(B:</h3>
53
+ <p>
54
+ <a name="PGconn.connect"><code>connect(<var>pghost</var>,
55
+ <var>pgport</var>, <var>pgoptions</var>,
56
+ <var>pgtty</var>, <var>dbname</var>, <var>login</var>,
57
+ <var>passwd</var>)</code></a>
58
+ <a name="PGconn.new"><code>new(<var>pghost</var>,
59
+ <var>pgport</var>, <var>pgoptions</var>,
60
+ <var>pgtty</var>, <var>dbname</var>, <var>login</var>,
61
+ <var>passwd</var>)</code></a>
62
+ <a name="PGconn.open"><code>open(<var>string</var>)</code></a>
63
+ </p>
64
+ <dl>
65
+ <dt>PostgreSQL$B%5!<%P$H@\B3$7$^$9!#%*%W%7%g%s$N0UL#$O0J2<$NDL$j$G$9!#(B</dt>
66
+ <dd><var>pghost</var> : $B%5!<%P$N%[%9%HL>(B($BJ8;zNs(B)
67
+ <dd><var>pgport</var> : $B%5!<%P$,(Blisten$B$7$F$$$k%]!<%HHV9f(B($B@0?t(B)
68
+ <dd><var>pgoptions</var> : backend$B$r5/F0$9$k:]$N%*%W%7%g%s(B($BJ8;zNs(B)
69
+ <dd><var>pgtty</var> : backend$B$,%G%P%C%0%a%C%;!<%8$rI=<($9$k(Btty($BJ8;zNs(B)
70
+ <dd><var>dbname</var> : $B@\B3$9$k%G!<%?%Y!<%9L>(B($BJ8;zNs(B)
71
+ <dd><var>login</var> : $B%f!<%6L>(B($BJ8;zNs(B)
72
+ <dd><var>passwd</var> : $B%Q%9%o!<%I(B($BJ8;zNs(B)
73
+ <dt>$B%*%W%7%g%s$rJ8;zNs$GEO$9>l9g$N%U%)!<%^%C%H$G$9!#(B</dt>
74
+ <dd><var>host=name</var> : $B%5!<%P$N%[%9%HL>(B($BJ8;zNs(B)
75
+ <dd><var>hostaddr=addr</var> : $B%5!<%P$N(BIP$B%"%I%l%9(B($BJ8;zNs(B)
76
+ <dd><var>port=number</var> $B%5!<%P$,(Blisten$B$7$F$$$k%]!<%HHV9f(B($B@0?t(B)
77
+ <dd><var>options=string</var> : backend$B$r5/F0$9$k:]$N%*%W%7%g%s(B($BJ8;zNs(B)
78
+ <dd><var>tty=anything</var> : backend$B$,%G%P%C%0%a%C%;!<%8$rI=<($9$k(Btty($BJ8;zNs(B)
79
+ <dd><var>dbname=name</var> : $B@\B3$9$k%G!<%?%Y!<%9L>(B($BJ8;zNs(B)
80
+ <dd><var>user=username</var> : $B%f!<%6L>(B($BJ8;zNs(B)
81
+ <dd><var>password=censored</var> : $B%Q%9%o!<%I(B($BJ8;zNs(B)
82
+ <dd><var>sslmode=mode</var> : SSL$B%b!<%I$N;XDj(B($BJ8;zNs(B) (disable, allow, prefer, require)
83
+ <dd><var>service=name</var> : $BB>$N%Q%i%a!<%?MQ$K;HMQ$5$l$k%5!<%S%9L>(B($BJ8;zNs(B)
84
+ <dd><var>connect_timeout=seconds</var> : $B@\B3%?%$%`%"%&%H;~4V(B($B@0?t(B)
85
+ </dl>
86
+ <p>$B<:GT$7$?>l9g$O(B <code>PGError</code> $BNc30$,H/@8$7$^$9!#(B</p>
87
+ <h3>methods:</h3>
88
+ <dl>
89
+ <dt><a name="db"><code>db</code></a>
90
+ <dd>$B@\B3$7$?%G!<%?%Y!<%9L>$rJV$7$^$9!#(B
91
+ <dt><a name="host"><code>host</code></a>
92
+ <dd>$B@\B3$7$?%5!<%PL>$rJV$7$^$9!#(B
93
+ <dt><a name="user"><code>user</code></a>
94
+ <dd>$B%5!<%P$X@\B3;~$KG'>Z$7$?%f!<%6L>$rJV$7$^$9!#(B
95
+ <dt><a name="options"><code>options</code></a>
96
+ <dd>backend$B$r5/F0$9$k:]$K;XDj$7$?(Boption$B$rJV$7$^$9!#(B
97
+ <dt><a name="port"><code>port</code></a>
98
+ <dd>$B%5!<%P$X@\B3$9$k:]$K;HMQ$7$?%]!<%HHV9f$rJV$7$^$9!#(B
99
+ <dt><a name="tty"><code>tty</code></a>
100
+ <dd>$B@\B3$7$F$$$k(Bpgtty$B$rJV$7$^$9!#(B
101
+ <dt><a name="error"><code>error</code></a>
102
+ <dd>$B@\B3$K4X$9$k%(%i!<%a%C%;!<%8$rJV$7$^$9!#(B
103
+ <dt> <a name="finish"><code>finish</code></a>
104
+ <dt> <a name="close"><code>close</code></a>
105
+ <dd>$B%P%C%/%(%s%I$H$N@\B3$r=*N;$7$^$9!#(B
106
+ <dt><a name="reset"><code>reset</code></a>
107
+ <dd>$B%P%C%/%(%s%I$H$NDL?.%]!<%H$r%j%;%C%H$7$^$9!#$3$N4X?t$O%P%C%/%(%s%I$H$N%=%1%C%H@\B3$r=*N;$7!"$$$:$l$+$N%P%C%/%(%s%I$H$N?7$7$$@\B3$N:F3NN)$r;n$_$^$9!#(B
108
+ <dt><a name="trace"><code>trace(<var>port</var>)</code></a>
109
+ <dd>$B%P%C%/%(%s%I$H$N%a%C%;!<%8$N<uEO$7$N%H%l!<%9$rM-8z$K$7$^$9!#%a%C%;!<%8$O(B<var>port</var>$B$G;XDj$5$l$?(B File $B%/%i%9$N%$%s%9%?%s%9$X=q$-=P$5$l$^$9!#(B
110
+ <dt><a name="untrace"><code>untrace</code></a>
111
+ <dd>$B%P%C%/%(%s%I$H$N%a%C%;!<%8$N<uEO$7$N%H%l!<%9$rL58z$K$7$^$9!#(B
112
+ <dt><a name="exec"><code>exec(<var>sql</var>)</code></a>
113
+ <dd><var>sql</var>$B$G;XDj$5$l$?(BSQL$BLd$$9g$o$;J8$r(BPostgreSQL$B$XAw$j$^$9!#(B
114
+ $BLd$$9g$o$;$,@.8y$7$?>l9g$K$O!"7k2L$,(B<a href="#PGresult">PGresult</a>$B%/%i%9$N(B
115
+ $B%$%s%9%?%s%9$H$7$FJV$5$l!"$=$&$G$J$$>l9g$ONc30$,H/@8$7$^$9!#(B
116
+ <dt><a name="query"><code>query(<var>sql</var>)</code></a>
117
+ <dd><var>sql</var>$B$G;XDj$5$l$?(BSQL$BLd$$9g$o$;J8$r(BPostgreSQL$B$XAw$j$^$9!#(B
118
+ $BLd$$9g$o$;$,@.8y$7$?>l9g$K$O!"7k2L$,(B Array $B%/%i%9$N(B
119
+ $B%$%s%9%?%s%9$H$7$FJV$5$l!"$=$&$G$J$$>l9g$O(B nil $B$,JV$5$l$^$9!#(B
120
+ <dt><a name="async_exec"><code>async_exec(<var>sql</var>)</code></a>
121
+ <dd><var>sql</var>$B$G;XDj$5$l$?(BSQL$BLd$$9g$o$;J8$r(BPostgreSQL$B$X(B
122
+ $BHsF14|$G(B $BAw$j$^$9!#Ld$$9g$o$;$,@.8y$7$?>l9g$K$O!"(B
123
+ $B7k2L$,(B<a href="#PGresult">PGresult</a>$B%/%i%9$N(B
124
+ $B%$%s%9%?%s%9$H$7$FJV$5$l!"$=$&$G$J$$>l9g$ONc30$,H/@8$7$^$9!#(B
125
+ <dt><a name="async_query"><code>async_query(<var>sql</var>)</code></a>
126
+ <dd><var>sql</var>$B$G;XDj$5$l$?(BSQL$BLd$$9g$o$;J8$r(BPostgreSQL$B$X(B
127
+ $BHsF14|$G(B $BAw$j$^$9!#Ld$$9g$o$;$,@.8y$7$?>l9g$K$O!"7k2L$,(B Array $B%/%i%9$N(B
128
+ $B%$%s%9%?%s%9$H$7$FJV$5$l!"$=$&$G$J$$>l9g$O(B nil $B$,JV$5$l$^$9!#(B
129
+ <dt><a name="get_notify"><code>get_notify</code></a>
130
+ <dd>$B%P%C%/%(%s%I$+$iL$=hM}$NDLCN%j%9%H$rF@$F!"(BArray $B%/%i%9$N%$%s%9%?%s%9$H$7$FJV$7$^$9!#%P%C%/%(%s%I$+$i$NL$=hM}$NDLCN$,$J$$>l9g$K$O!"(Bnil $B$,JV$5$l$^$9!#(B
131
+ <dt><a name="insert_table"><code>insert_table(<var>table</var>,
132
+ <var>array</var>)</code></a>
133
+ <dd><var>table</var>$B$G;XDj$5$l$?%F!<%V%k$KBP$7!"(B<var>array</var>$B$NFbMF$rA^F~$7$^$9!#(B<var>array</var>$B$O(B Array $B%/%i%9$N%$%s%9%?%s%9$G$J$1$l$P$J$j$^$;$s!#(B
134
+ <dt><a name="getline"><code>getline</code></a>
135
+ <dd>$B%P%C%/%(%s%I%5!<%P$+$i2~9T%3!<%I$G=*$k9T$rFI$_<h$j$^$9!#(B<code>fgets(3)</code>$B$HF1MM$K!"$3$N%a%=%C%I$O(B<code>get(3)</code>$B$HF1MM$K=*C<9T$r%L%k$KJQ49$7$^$9!#(Bgetline$B$O(BEOF$B$N>l9g$O!"(Bnil $B$r!"9TA4BN$rFI$_<h$C$?>l9g$O(B0$B$r!"$^$@2~9T%3!<%I$rFI$_<h$C$F$$$J$$>l9g$O(B1$B$rJV$7$^$9!#$3$N%a%=%C%I$r;HMQ$9$k;~$NCm0UE@$O!"%P%C%/%(%s%I%5!<%P$,7k2L$NAw?.$r40N;$7$?$3$H$r<($9C10lJ8;z(B&quot;.&quot;$B$r?75,9T$KAw?.$7$?$3$H$r3NG'$7$J$1$l$P$J$i$J$$$3$H$G$9!#(B<br>
136
+ $B%5%s%W%k%3!<%I(B<a href="../sample/psql.rb">psql.rb</a>$B$O!"(Bcopy$B%W%m%H%3%k$r@5$7$/07$&%=!<%9$r4^$s$G$$$^$9!#(B
137
+ <dt><a name="putline"><code>putline(<var>string</var>)</code></a>
138
+ <dd><var>string</var>$B$G;XDj$5$l$?J8;zNs$r%P%C%/%(%s%I!<%5!<%P$XAw?.$7$^$9!#;HMQ<T$O%G!<%?$NAw?.$,40N;$7$?$3$H$r%P%C%/%(%s%I$K<($9$?$a$K!"C10lJ8;z(B&quot;.&quot;$B$rL@<(E*$KAw?.$7$J$1$l$P$J$j$^$;$s!#(B
139
+ <dt><a name="endcopy"><code>endcopy</code></a>
140
+ <dd>$B%P%C%/%(%s%I$HF14|$r$H$j$^$9!#$3$N%a%=%C%I$O%P%C%/%(%s%I$,(Bcopy$B$r40N;$9$k$^$GBT$A$^$9!#(B<a href="#putline">putline</a>$B$d(B<a href="#getline">getline</a>$B$r;HMQ$7$?>l9g$K;HMQ$9$Y$-%a%=%C%I$G$9!#(Bcopy$B$,$&$^$/40N;$7$?>l9g$K$O(B nil $B$,JV$j!"$=$&$G$J$$>l9g$ONc30$,H/@8$7$^$9!#(B
141
+ <dt><a name="set_client_encoding"><code>set_client_encoding</code></a>
142
+ <dd>$B%/%i%$%"%s%H$NJ8;z%3!<%I$r;XDj$7$^$9(B($BJ8;zNs(B)$B!#(B
143
+ <dt><a name="client_encoding"><code>client_encoding</code></a>
144
+ <dd>$B%/%i%$%"%s%H$NJ8;z%3!<%I$rJV$7$^$9(B($BJ8;zNs(B)$B!#(B
145
+
146
+ <dt><a name="lo_import"><code>lo_import(<var>file</var>)</code></a>
147
+ <dd><var>file</var>$B$r%i!<%8%*%V%8%'%/%H$K%$%s%]!<%H$7$^$9!#@.8y$9$k$H(B<a href="#PGlarge">PGlarge</a>$B%/%i%9$N%$%s%9%?%s%9$,JV$5$l$^$9!#<:GT$9$k$H(B <code>PGError</code> $BNc30$,H/@8$7$^$9!#(B
148
+ <dt><a name="lo_export"><code>lo_export(<var>oid</var>, <var>file</var>)</code></a>
149
+ <dd>$B%i!<%8%*%V%8%'%/%H$r(B <var>file</var> $B$KJ]B8$7$^$9!#(B
150
+ <dt><a name="lo_create"><code>lo_create([<var>mode</var>])</code></a>
151
+ <dd>$B?7$7$/%i!<%8%*%V%8%'%/%H$r$D$/$j$^$9!#@.8y$9$k$H(B<a href="#PGlarge">PGlarge</a> $B%/%i%9$N%$%s%9%?%s%9$,JV$5$l$^$9!#<:GT$9$k$H(B <code>PGError</code> $BNc30$,H/@8$7$^$9!#(B
152
+ <dt><a name="lo_open"><code>lo_open(<var>oid</var>, [<var>mode</var>])</code></a>
153
+ <dd>oid $B$N%i!<%8%*%V%8%'%/%H$r3+$-$^$9!#@.8y$9$k$H(B<a href="#PGlarge">PGlarge</a> $B%/%i%9$N%$%s%9%?%s%9$,JV$5$l$^$9!#<:GT$9$k$H(B <code>PGError</code> $BNc30$,H/@8$7$^$9!#(B<var>&quot;INV_READ&quot;</var>,<var>&quot;INV_WRITE&quot;</var>$B$N$I$A$i$+$N%b!<%I$r;XDj$7$^$9!#<:GT$9$k$H(B <code>PGError</code> $BNc30$,H/@8$7$^$9!#%b!<%I$r>JN,$7$?>l9g$O(B<var>&quot;INV_READ&quot;</var>$B$G$9!#(B
154
+ <dt><a name="lo_unlink"><code>lo_unlink(<var>oid</var>)</code></a>
155
+ <dd><var>oid</var>$B$N%i!<%8%*%V%8%'%/%H$r:o=|$7$^$9!#(B
156
+ </dl>
157
+ </div>
158
+ <hr>
159
+ <div>
160
+ <h2><a name="PGresult">PGresult</a></h2>
161
+ <P>
162
+ Query$B$N7k2L$H$7$FF@$i$l$?%?%C%W%k$r(Bwrap$B$9$k%/%i%9!%$3$N%/%i%9(B
163
+ $B$N%$%s%9%?%s%9$O!"(Bquery$B$r9T$&$?$S$K@8@.$5$l$^$9!#8N$KF@$i$l$?(B
164
+ $B7k2L$,ITMW$K$J$C$?>l9g$K$O!"(Bclear$B$r8F$S=P$7$F%a%b%j$r2rJ|$9$k(B
165
+ $B$h$&$K$7$F2<$5$$!#(B
166
+ </P>
167
+ <h3>$B%9!<%Q!<%/%i%9(B:</h3>
168
+ <p>
169
+ <code>Object</code>
170
+ </p>
171
+ <h2>$B%a%=%C%I(B:</h2>
172
+ <dl>
173
+ <dt><a name="status"><code>status</code></a>
174
+ <dd><dl>
175
+ <dt>$BLd$$9g$o$;7k2L$N%9%F!<%?%9$rJV$7$^$9!#%9%F!<%?%9$O0J2<$NCM$N$&$A$N$$$:$l$+0l$D$rJV$7$^$9!#(B
176
+ <dd>EMPTY_QUERY
177
+ <dd>COMMAND_OK
178
+ <dd>TUPLES_OK
179
+ <dd>COPY_OUT
180
+ <dd>COPY_IN
181
+ </dl>
182
+ <dt><a name="result"><code>result</code></a>
183
+ <dd>$BLd$$9g$o$;7k2L$N%?%C%W%k(B($B%$%s%9%?%s%9(B)$B$r!"G[Ns$GJV$7$^$9!#(B
184
+ <dt><a name="fields"><code>fields</code></a>
185
+ <dd>$BLd$$9g$o$;$N7k2L$N%U%#!<%k%I(B($BB0@-(B)$B$r!"G[Ns$GJV$7$^$9!#(B
186
+ <dt><a name="num_tuples"><code>num_tuples</code></a>
187
+ <dd>$BLd$$9g$o$;7k2L$N%?%C%W%k(B($B%$%s%9%?%s%9(B)$B$N?t$rJV$7$^$9!#(B
188
+ <dt><a name="num_fields"><code>num_fields</code></a>
189
+ <dd>$BLd$$9g$o$;$N7k2L$N%U%#!<%k%I(B($BB0@-(B)$B$N?t$rJV$7$^$9!#(B
190
+ <dt><a name="fieldname"><code>fieldname(<var>index</var>)</code></a>
191
+ <dd>$BM?$($i$l$?%U%#!<%k%I(B($BB0@-(B)$B$N:w0z(B(field index)$B$KBP1~$9$k%U%#!<%k%I(B($BB0@-(B)$B$NL>A0$rJV$7$^$9!#%U%#!<%k%I!&%$%s%G%#%1!<%?$O(B0$B$+$i3+;O$5$l$^$9!#(B
192
+ <dt><a name="fieldnum"><code>fieldnum(<var>name</var>)</code></a>
193
+ <dd>$BM?$($i$l$?%U%#!<%k%I(B($BB0@-(B)$B$NL>A0$KBP1~$9$k!"%U%#!<%k%I(B($BB0@-(B)$B$N:w0z$rJV$7$^$9!#(B
194
+ <dt><a name="type"><code>type(<var>index</var>)</code></a>
195
+ <dd>$BM?$($i$l$?%U%#!<%k%I(B($BB0@-(B)$B$KBP1~$9$k%U%#!<%k%I$N7?$rJV$7$^$9!#FbIt%3!<%G%#%s%0$5$l$F$$$k7?$,@0?t$GJV$5$l$^$9!#%U%#!<%k%I!&%$%s%G%#%1!<%?$O(B0$B$+$i3+;O$5$l$^$9!#(B
196
+ <dt><a name="size"><code>size(<var>index</var>)</code></a>
197
+ <dd>$BM?$($i$l$?%U%#!<%k%I(B($BB0@-(B)$B$KBP1~$9$k%U%#!<%k%I$N%5%$%:$r%P%$%H?t$GJV$7$^$9!#JV$5$l$k%5%$%:$,(B-1$B$N>l9g!"%U%#!<%k%I$O2DJQD9$G$9!#%U%#!<%k%I!&%$%s%G%#%1!<%?$O(B0$B$+$i3+;O$5$l$^$9!#(B
198
+ <dt><a name="getvalue"><code>getvalue(<var>tup_num, field_num</var>)
199
+ </code></a>
200
+ <dd>$B%U%#!<%k%I(B($BB0@-(B)$B$NCM$rJV$7$^$9!#$[$H$s$I$NLd$$9g$o$;$KBP$7$F!"(B<a href="#getvalue">getvalue</a>$B$K$h$C$FJV$5$l$kCM$O!"%L%k$G=*$o$k(BASCII$BJ8;zNs$GI=8=$5$l$^$9!#Ld$$9g$o$;$N7k2L$,%P%$%J%j%+!<%=%k$G$"$C$?>l9g!"(B<a href="#getvalue">getvalue</a>$B$K$h$C$FJV$5$l$kCM$O!"%P%C%/%(%s%I!&%5!<%P$NFbIt%U%)!<%^%C%H$K0MB8$7$?%P%$%J%j$GI=8=$5$l$^$9!#%G!<%?$r@5$7$$%?%$%W$K%-%c%9%H$7$?$j!"JQ49$7$?$j$9$k$N$O%W%m%0%i%^$N@UG$$G$9!#(B<a href="#PGresult">PGresult</a>$B$N%$%s%9%?%s%9$O(Bquery$B$N$?$S$K@8@.$5$l$^$9!#ITMW$K$J$C$?>l9g$O!"%W%m%0%i%^$,@UG$$r$b$C$F(B<a href="#clear">clear</a>$B$r8F$S=P$7%a%b%j$r2rJ|$7$F2<$5$$!#(B
201
+ <dt><a name="getlength"><code>getlength(<var>tup_num, field_num</var>)
202
+ </code></a>
203
+ <dd>$B%U%#!<%k%I(B($BB0@-(B)$B$ND9$5$r%P%$%H$GJV$7$^$9!#(B
204
+ <dt><a name="cmdtuples"><code>cmdtuples</code></a>
205
+ <dd>$B:G8e$NLd$$9g$o$;%3%^%s%I$N1F6A$r$&$1$?9T?t$rJV$7$^$9!#(B
206
+ <dt><a name="cmdstatus"><code>cmdstatus</code></a>
207
+ <dd>$B:G8e$NLd$$9g$o$;%3%^%s%I$N%3%^%s%I%9%F!<%?%9$rJ8;zNs$GJV$7$^$9!#(B
208
+ <dt><a name="oid"><code>oid</code></a>
209
+ <dd>$BA^F~$5$l$?9T$N(BOID$B$rJV$7$^$9!#(B
210
+ <dt><a name="clear"><code>clear</code></a>
211
+ <dd>$BLd$$9g$o$;$N7k2L@8@.$5$l$?(B<a href="#PGresult">PGresult</a>$B$N%$%s%9%?%s%9$r%/%j%"$7$^$9!#(B
212
+ </dl>
213
+ </div>
214
+ <hr>
215
+ <div>
216
+ <h2><a name="PGlarge">PGlarge</a></h2>
217
+ <p>
218
+ $B%i!<%8%*%V%8%'%/%H$K%"%/%;%9$9$k$?$a$N%/%i%9!#$3$N%*%V%8%'%/%H$O(B <a href="lo_import">lo_import</a>, <a href="lo_create">lo_create</a>, <a href="lo_open">lo_open</a> $B$N7k2L$H$7$FJV$5$l$^$9!#(B
219
+ </p>
220
+ <h3>super class:</h3>
221
+ <p>
222
+ <code>Object</code>
223
+ </p>
224
+ <h2>methods:</h2>
225
+ <dl>
226
+ <dt><a name="open"><code>open([<var>mode</var>])</code></a>
227
+ <dd>$B%i!<%8%*%V%8%'%/%H$r3+$-$^$9!#(B <var>&quot;INV_READ&quot;</var>,<var>&quot;INV_WRITE&quot;</var>$B$N$I$A$i$+$N%b!<%I$r;XDj$7$^$9!#<:GT$9$k$H(B <code>PGError</code> $BNc30$,H/@8$7$^$9!#%b!<%I$r>JN,$7$?>l9g$O(B<var>&quot;INV_READ&quot;</var>$B$G$9!#(B
228
+ <dt><a name="close"><code>close</code></a>
229
+ <dd>$B%i!<%8%*%V%8%'%/%H$rJD$8$^$9!#0J9_$3$N%*%V%8%'%/%H$KBP$9$k%"%/%;%9$ONc30$rH/@8$7$^$9!#(B
230
+ <dt><a name="read"><code>read([<var>length</var>])</code></a>
231
+ <dd><var>length</var> $B%P%$%HFI$_9~$s$G$=$NJ8;zNs$rJV$7$^$9!#(B<var>length</var> $B$,>JN,$5$l$?;~$K$O!"A4$F$N%G!<%?$rFI$_9~$_$^$9!#(B
232
+ <dt><a name="write"><code>write(<var>str</var>)</code></a>
233
+ <dd><var>str</var>$B$r%i!<%8%*%V%8%'%/%H$K=q$-9~$_$^$9!#=q$-9~$s$@%P%$%H?t$rJV$7$^$9!#(B
234
+ <dt><a name="seek"><code>seek(<var>offset</var>, <var>whence</var>)</code></a>
235
+ <dd>$B%i!<%8%*%V%8%'%/%H$N%]%$%s%?$r(B <var>offset</var> $B0\F0$7$^$9!#(B<var>whence</var> $B$O(B SEEK_SET, SEEK_CUR, and SEEK_END $B$,;XDj$G$-$^$9!#$=$l$>$l(B 0,1,2$B$H?t;z$G;XDj$7$F$b9=$$$^$;$s!#(B
236
+ <dt><a name="tell"><code>tell</code></a>
237
+ <dd>$B%i!<%8%*%V%8%'%/%H$N%]%$%s%?$N8=:_$N0LCV$rJV$7$^$9!#(B
238
+ <dt><a name="unlink"><code>unlink</code></a>
239
+ <dd>$B%i!<%8%*%V%8%'%/%H$r:o=|$7$^$9!#(B
240
+ <dt><a name="oid"><code>oid</code></a>
241
+ <dd>$B%i!<%8%*%V%8%'%/%H$N(B oid $B$rJV$7$^$9!#(B
242
+ <dt><a name="size"><code>size</code></a>
243
+ <dd>$B%i!<%8%*%V%8%'%/%H$N%5%$%:$rJV$7$^$9!#(B
244
+ <dt><a name="export"><code>export(<var>file</var>)</code></a>
245
+ <dd><var>file</var>$B$K%i!<%8%*%V%8%'%/%H$r=q$-=P$7$^$9!#(B
246
+ </dl>
247
+ </div>
248
+ <hr>
249
+ <address>
250
+ mailto:
251
+ <a href="mailto:noborus@netlab.jp">Noboru Saitou</a>
252
+ </address>
253
+ </body>
254
+ </html>
255
+
256
+