ruby-postgres 0.7.1.2005.11.24-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +261 -0
- data/Contributors +26 -0
- data/MANIFEST +14 -0
- data/Makefile +139 -0
- data/README +171 -0
- data/README.ja +183 -0
- data/doc/postgres.html +278 -0
- data/doc/postgres.jp.html +256 -0
- data/extconf.rb +33 -0
- data/libpq-compat.c +253 -0
- data/mkmf.log +154 -0
- data/postgres.c +2454 -0
- data/postgres.o +0 -0
- data/postgres.so +0 -0
- data/ruby-postgres.gemspec +35 -0
- data/sample/losample.rb +47 -0
- data/sample/psql.rb +1181 -0
- data/sample/psqlHelp.rb +158 -0
- data/sample/test1.rb +63 -0
- data/sample/test2.rb +44 -0
- data/sample/test4.rb +71 -0
- data/type-oids.h +65 -0
- metadata +61 -0
data/sample/psqlHelp.rb
ADDED
@@ -0,0 +1,158 @@
|
|
1
|
+
#
|
2
|
+
# Help for query language syntax
|
3
|
+
#
|
4
|
+
# Original source code is written by C.
|
5
|
+
# Copyright (c) 1996, Regents of the University of California
|
6
|
+
#
|
7
|
+
# ruby version is written by ematsu
|
8
|
+
# Copyright (c) 1997 Eiji-usagi-MATSUmoto <ematsu@pfu.co.jp>
|
9
|
+
#
|
10
|
+
# $Id: psqlHelp.rb,v 1.1.1.2 2002/04/24 05:46:44 noboru Exp $
|
11
|
+
|
12
|
+
|
13
|
+
QL_HELP = [
|
14
|
+
[ "abort",
|
15
|
+
"abort the current transaction",
|
16
|
+
"abort [transaction];"],
|
17
|
+
[ "abort transaction",
|
18
|
+
"abort the current transaction",
|
19
|
+
"abort [transaction];"],
|
20
|
+
[ "alter table",
|
21
|
+
"add/rename attributes, rename tables",
|
22
|
+
"\talter table <class_name> [*] add column <attr> <type>;\n\talter table <class_name> [*] rename [column] <attr1> to <attr2>;\n\talter table <class_name1> rename to <class_name2>"],
|
23
|
+
[ "begin",
|
24
|
+
"begin a new transaction",
|
25
|
+
"begin [transaction|work];"],
|
26
|
+
[ "begin transaction",
|
27
|
+
"begin a new transaction",
|
28
|
+
"begin [transaction|work];"],
|
29
|
+
[ "begin work",
|
30
|
+
"begin a new transaction",
|
31
|
+
"begin [transaction|work];"],
|
32
|
+
[ "cluster",
|
33
|
+
"create a clustered index (from an existing index)",
|
34
|
+
"cluster <index_name> on <relation_name>"],
|
35
|
+
[ "close",
|
36
|
+
"close an existing cursor (cursor)",
|
37
|
+
"close <cursorname>;"],
|
38
|
+
[ "commit",
|
39
|
+
"commit a transaction",
|
40
|
+
"commit [work]"],
|
41
|
+
[ "commit work",
|
42
|
+
"commit a transaction",
|
43
|
+
"commit [work]"],
|
44
|
+
[ "copy",
|
45
|
+
"copy data to and from a table",
|
46
|
+
"copy [binary] <class_name> [with oids]\n\t{to|from} {<filename>|stdin|stdout} [using delimiters <delim>];"],
|
47
|
+
[ "create",
|
48
|
+
"Please more be specific:",
|
49
|
+
"\tcreate aggregate\n\tcreate database\n\tcreate function\n\tcreate index\n\tcreate operator\n\tcreate rule\n\tcreate table\n\tcreate type\n\tcreate view"],
|
50
|
+
[ "create aggregate",
|
51
|
+
"define an aggregate function",
|
52
|
+
"create aggregate <agg_name> [as] (basetype = <data_type>, \n\t[sfunc1 = <sfunc_1>, stype1 = <sfunc1_return_type>]\n\t[sfunc2 = <sfunc_2>, stype2 = <sfunc2_return_type>]\n\t[,finalfunc = <final-function>]\n\t[,initcond1 = <initial-cond1>][,initcond2 = <initial-cond2>]);"],
|
53
|
+
[ "create database",
|
54
|
+
"create a database",
|
55
|
+
"create database <dbname>"],
|
56
|
+
[ "create function",
|
57
|
+
"create a user-defined function",
|
58
|
+
"create function <function_name> ([<type1>,...<typeN>]) returns <return_type>\n\tas '<object_filename>'|'<sql-queries>'\n\tlanguage 'c'|'sql'|'internal';"],
|
59
|
+
[ "create index",
|
60
|
+
"construct an index",
|
61
|
+
"create [unique] index <indexname> on <class_name> [using <access_method>] (<attr1>|<funcname>(<attr1>,...) [<type_class1>]);"],
|
62
|
+
[ "create operator",
|
63
|
+
"create a user-defined operator",
|
64
|
+
"create operator <operator_name> (\n\t[leftarg = <type1>][,rightarg = <type2>]\n\t,procedure = <func_name>,\n\t[,commutator = <com_op>][,negator = <neg_op>]\n\t[,restrict = <res_proc>][,hashes]\n\t[,join = <join_proc>][,sort = <sort_op1>...<sort_opN>]);"],
|
65
|
+
[ "create rule",
|
66
|
+
"define a new rule",
|
67
|
+
"create rule <rule_name> as on\n\t[select|update|delete|insert]\n\tto <object> [where <qual>]\n\tdo [instead] [<action>|nothing| [<actions>]];"],
|
68
|
+
[ "create table",
|
69
|
+
"create a new table",
|
70
|
+
"create table <class_name> ( <attr1> <type1>,... <attrN> <typeN>)\n\t[inherits (<class_name1>,...<class_nameN>\n\tarchive=<archive_mode>\n\tstore=<smgr_name>\n\tarch_store=<smgr_name>];"],
|
71
|
+
[ "create type",
|
72
|
+
"create a new user-defined base data type",
|
73
|
+
"create type <typename> (\n\tinternallength = (<number> | variable),\n\t[externallength = (<number>|variable),]\n\tinput=<input_function>, output = <output_function>\n\t[,element = <typename>][,delimiter=<character>][,default=\'<string>\']\n\t[,send = <send_function>][,receive = <receive_function>][,passedbyvalue]);"],
|
74
|
+
[ "create view",
|
75
|
+
"create a view",
|
76
|
+
"create view <view_name> as select <expr1>[as <attr1>][,... <exprN>[as <attrN>]] [from <from_list>] [where <qual>];"],
|
77
|
+
[ "declare",
|
78
|
+
"set up a cursor",
|
79
|
+
"declare <cursorname> [binary] cursor for\n\tselect [distinct]\n\t<expr1> [as <attr1>],...<exprN> [as <attrN>]\n\t[from <from_list>] [where <qual>]\n\t[order by <attr1> [using <op1>],... <attrN> [using <opN>]];"],
|
80
|
+
[ "delete",
|
81
|
+
"delete tuples",
|
82
|
+
"delete from <class_name> [where <qual>];"],
|
83
|
+
[ "drop",
|
84
|
+
"Please more be specific:",
|
85
|
+
"\tdrop aggregate\n\tdrop database\n\tdrop function\n\tdrop index\n\tdrop operator\n\tdrop rule\n\tdrop table\n\tdrop type\n\tdrop view"],
|
86
|
+
[ "drop aggregate",
|
87
|
+
"remove an aggregate function",
|
88
|
+
"drop aggregate <agg_name>;"],
|
89
|
+
[ "drop database",
|
90
|
+
"remove a database",
|
91
|
+
"drop database <dbname>"],
|
92
|
+
[ "drop function",
|
93
|
+
"remove a user-defined function",
|
94
|
+
"drop function <funcname> ([<type1>,....<typeN>]);"],
|
95
|
+
[ "drop index",
|
96
|
+
"remove an existing index",
|
97
|
+
"drop index <indexname>;"],
|
98
|
+
[ "drop operator",
|
99
|
+
"remove a user-defined operator",
|
100
|
+
"drop operator <operator_name> ([<ltype>|none],[<rtype>|none]);"],
|
101
|
+
[ "drop rule",
|
102
|
+
"remove a rule",
|
103
|
+
"drop rule <rulename>;"],
|
104
|
+
[ "drop table",
|
105
|
+
"remove a table",
|
106
|
+
"drop table <class_name>[,...<class_nameN];"],
|
107
|
+
[ "drop type",
|
108
|
+
"remove a user-defined base type",
|
109
|
+
"drop type <typename>;"],
|
110
|
+
[ "drop view",
|
111
|
+
"remove a view",
|
112
|
+
"drop view <view_name>"],
|
113
|
+
[ "end",
|
114
|
+
"end the current transaction",
|
115
|
+
"end [transaction];"],
|
116
|
+
[ "end transaction",
|
117
|
+
"end the current transaction",
|
118
|
+
"end [transaction];"],
|
119
|
+
[ "explain",
|
120
|
+
"explain the query execution plan",
|
121
|
+
"explain [with {cost|plan|full}] <query>"],
|
122
|
+
[ "fetch",
|
123
|
+
"retrieve tuples from a cursor",
|
124
|
+
"fetch [forward|backward] [<number>|all] [in <cursorname>];"],
|
125
|
+
[ "grant",
|
126
|
+
"grant access control to a user or group",
|
127
|
+
"grant <privilege[,privilege,...]> on <rel1>[,...<reln>] to \n[public | group <group> | <username>]\n\t privilege is {ALL | SELECT | INSERT | UPDATE | DELETE | RULE}"],
|
128
|
+
[ "insert",
|
129
|
+
"insert tuples",
|
130
|
+
"insert into <class_name> [(<attr1>...<attrN>)]\n\t[values (<expr1>...<exprN>); |\n\tselect <expr1>,...<exprN> [from <from_clause>] [where <qual>];"],
|
131
|
+
[ "listen",
|
132
|
+
"listen for notification on a relation",
|
133
|
+
"listen <class_name>"],
|
134
|
+
[ "load",
|
135
|
+
"dynamically load a module",
|
136
|
+
"load <filename>;"],
|
137
|
+
[ "notify",
|
138
|
+
"signal all frontends and backends listening on a relation",
|
139
|
+
"notify <class_name>"],
|
140
|
+
[ "purge",
|
141
|
+
"purge historical data",
|
142
|
+
"purge <class_name> [before <abstime>] [after <reltime>];"],
|
143
|
+
[ "revoke",
|
144
|
+
"revoke access control from a user or group",
|
145
|
+
"revoke <privilege[,privilege,...]> on <rel1>[,...<reln>] from \n[public | group <group> | <username>]\n\t privilege is {ALL | SELECT | INSERT | UPDATE | DELETE | RULE}"],
|
146
|
+
[ "rollback",
|
147
|
+
"abort a transaction",
|
148
|
+
"rollback [transaction|work]"],
|
149
|
+
[ "select",
|
150
|
+
"retrieve tuples",
|
151
|
+
"select [distinct on <attr>] <expr1> [as <attr1>], ... <exprN> [as <attrN>]\n\t[into table <class_name>] [from <from_list>]\n\t[where <qual>]\n\t[order by <attr1>\n\t\t[using <op1>],..<attrN> [[using <opN>] | ASC | DESC]];" ],
|
152
|
+
[ "update",
|
153
|
+
"update tuples",
|
154
|
+
"update <class_name> set <attr1>=<expr1>,...<attrN>=<exprN> [from <from_clause>] [where <qual>];"],
|
155
|
+
[ "vacuum",
|
156
|
+
"vacuum the database, i.e. cleans out deleted records, updates statistics",
|
157
|
+
"vacuum [table];"]
|
158
|
+
]
|
data/sample/test1.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# original file src/test/examples/testlibpq.c
|
4
|
+
#
|
5
|
+
require 'postgres'
|
6
|
+
|
7
|
+
def main
|
8
|
+
pghost = nil
|
9
|
+
pgport = nil
|
10
|
+
pgoptions = nil
|
11
|
+
pgtty = nil
|
12
|
+
dbname = "template1"
|
13
|
+
begin
|
14
|
+
conn = PGconn.connect(pghost,pgport,pgoptions,pgtty,dbname)
|
15
|
+
if $DEBUG
|
16
|
+
fd = open("/tmp/trace.out","w")
|
17
|
+
conn.trace(fd)
|
18
|
+
end
|
19
|
+
res = conn.exec("BEGIN")
|
20
|
+
res.clear
|
21
|
+
res = conn.exec("DECLARE myportal CURSOR FOR select * from pg_database")
|
22
|
+
res.clear
|
23
|
+
|
24
|
+
res = conn.exec("FETCH ALL in myportal")
|
25
|
+
if (res.status != PGresult::TUPLES_OK)
|
26
|
+
raise PGerror,"FETCH ALL command didn't return tuples properly\n"
|
27
|
+
end
|
28
|
+
|
29
|
+
for fld in res.fields
|
30
|
+
printf("%-15s",fld)
|
31
|
+
end
|
32
|
+
printf("\n\n")
|
33
|
+
|
34
|
+
res.result.each do |tupl|
|
35
|
+
tupl.each do |fld|
|
36
|
+
printf("%-15s",fld)
|
37
|
+
end
|
38
|
+
printf("\n")
|
39
|
+
end
|
40
|
+
res = conn.exec("CLOSE myportal")
|
41
|
+
res = conn.exec("END")
|
42
|
+
res.clear
|
43
|
+
conn.close
|
44
|
+
|
45
|
+
if $DEBUG
|
46
|
+
fl.close
|
47
|
+
end
|
48
|
+
rescue PGError
|
49
|
+
if (conn.status == PGconn::CONNECTION_BAD)
|
50
|
+
printf(STDERR, "We have lost the connection to the backend, so ")
|
51
|
+
printf(STDERR, "further processing is impossible. ")
|
52
|
+
printf(STDERR, "Terminating.\n")
|
53
|
+
else
|
54
|
+
printf(STDERR, conn.error)
|
55
|
+
end
|
56
|
+
exit(1)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
main
|
61
|
+
|
62
|
+
|
63
|
+
|
data/sample/test2.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# original file src/test/examples/testlibpq2.c
|
4
|
+
# Test of the asynchronous notification interface
|
5
|
+
# CREATE TABLE TBL1 (i int4);
|
6
|
+
# CREATE TABLE TBL2 (i int4);
|
7
|
+
# CREATE RULE r1 AS ON INSERT TO TBL1 DO (INSERT INTO TBL2 values (new.i); \
|
8
|
+
# NOTIFY TBL2);
|
9
|
+
# Then start up this program
|
10
|
+
# After the program has begun, do
|
11
|
+
# INSERT INTO TBL1 values (10);
|
12
|
+
|
13
|
+
|
14
|
+
require 'postgres'
|
15
|
+
|
16
|
+
def main
|
17
|
+
pghost = nil
|
18
|
+
pgport = nil
|
19
|
+
pgoptions = nil
|
20
|
+
pgtty = nil
|
21
|
+
dbname = ENV['USER']
|
22
|
+
begin
|
23
|
+
conn = PGconn.connect(pghost,pgport,pgoptions,pgtty,dbname)
|
24
|
+
rescue PGError
|
25
|
+
printf(STDERR, "Connection to database '%s' failed.\n",dbname)
|
26
|
+
exit(2)
|
27
|
+
end
|
28
|
+
begin
|
29
|
+
res = conn.exec("LISTEN TBL2")
|
30
|
+
rescue PGError
|
31
|
+
printf(STDERR, "LISTEN command failed\n")
|
32
|
+
exit(2)
|
33
|
+
end
|
34
|
+
res.clear
|
35
|
+
while 1
|
36
|
+
notify = conn.get_notify
|
37
|
+
if (notify)
|
38
|
+
printf(STDERR,"ASYNC NOTIFY '%s' from backend pid '%d' received\n",notify[0],notify[1])
|
39
|
+
break
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
main
|
data/sample/test4.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# original file src/test/examples/testlibpq4.c
|
4
|
+
# this test programs shows to use LIBPQ to make multiple backend
|
5
|
+
#
|
6
|
+
require 'postgres'
|
7
|
+
|
8
|
+
def main
|
9
|
+
if (ARGV.size != 4)
|
10
|
+
printf(STDERR,"usage: %s tableName dbName1 dbName2\n", ARGV[0])
|
11
|
+
printf(STDERR," compares two tables in two databases\n")
|
12
|
+
exit(1)
|
13
|
+
end
|
14
|
+
tblname = ARGV[1]
|
15
|
+
dbname1 = ARGV[2]
|
16
|
+
dbname2 = ARGV[3]
|
17
|
+
pghost = nil
|
18
|
+
pgport = nil
|
19
|
+
pgoptions = nil
|
20
|
+
pgtty = nil
|
21
|
+
|
22
|
+
begin
|
23
|
+
conn1 = PGconn.connect(pghost,pgport,pgoptions,pgtty,dbname1)
|
24
|
+
conn2 = PGconn.connect(pghost,pgport,pgoptions,pgtty,dbname2)
|
25
|
+
rescue PGError
|
26
|
+
printf(STDERR,"connection to database.\n")
|
27
|
+
exit(1)
|
28
|
+
end
|
29
|
+
begin
|
30
|
+
res1 = conn1.exec("BEGIN")
|
31
|
+
res1.clear
|
32
|
+
res1 = conn1.exec("DECLARE myportal CURSOR FOR select * from pg_database")
|
33
|
+
res1.clear
|
34
|
+
|
35
|
+
res1 = conn1.exec("FETCH ALL in myportal")
|
36
|
+
if (res1.status != PGresult::TUPLES_OK)
|
37
|
+
raise PGerror,"FETCH ALL command didn't return tuples properly\n"
|
38
|
+
end
|
39
|
+
|
40
|
+
for fld in res1.fields
|
41
|
+
printf("%-15s",fld)
|
42
|
+
end
|
43
|
+
printf("\n\n")
|
44
|
+
|
45
|
+
res1.result.each do |tupl|
|
46
|
+
tupl.each do |fld|
|
47
|
+
printf("%-15s",fld)
|
48
|
+
end
|
49
|
+
printf("\n")
|
50
|
+
end
|
51
|
+
res1 = conn1.exec("CLOSE myportal")
|
52
|
+
res1 = conn1.exec("END")
|
53
|
+
res1.clear
|
54
|
+
conn1.close
|
55
|
+
|
56
|
+
rescue PGError
|
57
|
+
if (conn1.status == PGconn::CONNECTION_BAD)
|
58
|
+
printf(STDERR, "We have lost the connection to the backend, so ")
|
59
|
+
printf(STDERR, "further processing is impossible. ")
|
60
|
+
printf(STDERR, "Terminating.\n")
|
61
|
+
else
|
62
|
+
printf(STDERR, conn1.error)
|
63
|
+
end
|
64
|
+
exit(1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
main
|
69
|
+
|
70
|
+
|
71
|
+
|
data/type-oids.h
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
#define BOOLOID 16
|
2
|
+
#define BYTEAOID 17
|
3
|
+
#define CHAROID 18
|
4
|
+
#define NAMEOID 19
|
5
|
+
#define INT8OID 20
|
6
|
+
#define INT2OID 21
|
7
|
+
#define INT2VECTOROID 22
|
8
|
+
#define INT4OID 23
|
9
|
+
#define REGPROCOID 24
|
10
|
+
#define TEXTOID 25
|
11
|
+
#define OIDOID 26
|
12
|
+
#define TIDOID 27
|
13
|
+
#define XIDOID 28
|
14
|
+
#define CIDOID 29
|
15
|
+
#define OIDVECTOROID 30
|
16
|
+
#define PG_TYPE_RELTYPE_OID 71
|
17
|
+
#define PG_ATTRIBUTE_RELTYPE_OID 75
|
18
|
+
#define PG_PROC_RELTYPE_OID 81
|
19
|
+
#define PG_CLASS_RELTYPE_OID 83
|
20
|
+
#define POINTOID 600
|
21
|
+
#define LSEGOID 601
|
22
|
+
#define PATHOID 602
|
23
|
+
#define BOXOID 603
|
24
|
+
#define POLYGONOID 604
|
25
|
+
#define LINEOID 628
|
26
|
+
#define FLOAT4OID 700
|
27
|
+
#define FLOAT8OID 701
|
28
|
+
#define ABSTIMEOID 702
|
29
|
+
#define RELTIMEOID 703
|
30
|
+
#define TINTERVALOID 704
|
31
|
+
#define UNKNOWNOID 705
|
32
|
+
#define CIRCLEOID 718
|
33
|
+
#define CASHOID 790
|
34
|
+
#define MACADDROID 829
|
35
|
+
#define INETOID 869
|
36
|
+
#define CIDROID 650
|
37
|
+
#define INT4ARRAYOID 1007
|
38
|
+
#define ACLITEMOID 1033
|
39
|
+
#define BPCHAROID 1042
|
40
|
+
#define VARCHAROID 1043
|
41
|
+
#define DATEOID 1082
|
42
|
+
#define TIMEOID 1083
|
43
|
+
#define TIMESTAMPOID 1114
|
44
|
+
#define TIMESTAMPTZOID 1184
|
45
|
+
#define INTERVALOID 1186
|
46
|
+
#define TIMETZOID 1266
|
47
|
+
#define BITOID 1560
|
48
|
+
#define VARBITOID 1562
|
49
|
+
#define NUMERICOID 1700
|
50
|
+
#define REFCURSOROID 1790
|
51
|
+
#define REGPROCEDUREOID 2202
|
52
|
+
#define REGOPEROID 2203
|
53
|
+
#define REGOPERATOROID 2204
|
54
|
+
#define REGCLASSOID 2205
|
55
|
+
#define REGTYPEOID 2206
|
56
|
+
#define RECORDOID 2249
|
57
|
+
#define CSTRINGOID 2275
|
58
|
+
#define ANYOID 2276
|
59
|
+
#define ANYARRAYOID 2277
|
60
|
+
#define VOIDOID 2278
|
61
|
+
#define TRIGGEROID 2279
|
62
|
+
#define LANGUAGE_HANDLEROID 2280
|
63
|
+
#define INTERNALOID 2281
|
64
|
+
#define OPAQUEOID 2282
|
65
|
+
#define ANYELEMENTOID 2283
|
metadata
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.10
|
3
|
+
specification_version: 1
|
4
|
+
name: ruby-postgres
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.7.1.2005.11.24
|
7
|
+
date: 2005-11-24
|
8
|
+
summary: Ruby extension for PostgreSQL database coordination
|
9
|
+
require_paths:
|
10
|
+
- "."
|
11
|
+
email: davelee.com@gmail.com
|
12
|
+
homepage: http://ruby.scripting.ca/postgres/
|
13
|
+
rubyforge_project: ruby-postgres
|
14
|
+
description:
|
15
|
+
autorequire: postgres
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
-
|
22
|
+
- ">"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.0
|
25
|
+
version:
|
26
|
+
platform: mswin32
|
27
|
+
authors:
|
28
|
+
- "Yukihiro Matsumoto, Eiji Matsumoto, Noboru Saitou, Dave Lee"
|
29
|
+
files:
|
30
|
+
- ChangeLog
|
31
|
+
- Contributors
|
32
|
+
- doc
|
33
|
+
- extconf.rb
|
34
|
+
- libpq-compat.c
|
35
|
+
- Makefile
|
36
|
+
- MANIFEST
|
37
|
+
- mkmf.log
|
38
|
+
- postgres.c
|
39
|
+
- postgres.o
|
40
|
+
- postgres.so
|
41
|
+
- README
|
42
|
+
- README.ja
|
43
|
+
- ruby-postgres.gemspec
|
44
|
+
- sample
|
45
|
+
- type-oids.h
|
46
|
+
- doc/postgres.html
|
47
|
+
- doc/postgres.jp.html
|
48
|
+
- sample/losample.rb
|
49
|
+
- sample/psql.rb
|
50
|
+
- sample/psqlHelp.rb
|
51
|
+
- sample/test1.rb
|
52
|
+
- sample/test2.rb
|
53
|
+
- sample/test4.rb
|
54
|
+
test_files: []
|
55
|
+
rdoc_options: []
|
56
|
+
extra_rdoc_files: []
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
requirements:
|
60
|
+
- PostgreSQL libpq library and headers
|
61
|
+
dependencies: []
|