OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I686LINUX / util / I686LINUX / doc / postgresql / html / pltcl-unknown.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >Modules and the unknown command</TITLE
6 ><META
7 NAME="GENERATOR"
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
9 REV="MADE"
10 HREF="mailto:pgsql-docs@postgresql.org"><LINK
11 REL="HOME"
12 TITLE="PostgreSQL 7.4.1 Documentation"
13 HREF="index.html"><LINK
14 REL="UP"
15 TITLE="PL/Tcl - Tcl Procedural Language"
16 HREF="pltcl.html"><LINK
17 REL="PREVIOUS"
18 TITLE="Trigger Procedures in PL/Tcl"
19 HREF="pltcl-trigger.html"><LINK
20 REL="NEXT"
21 TITLE="Tcl Procedure Names"
22 HREF="pltcl-procnames.html"><LINK
23 REL="STYLESHEET"
24 TYPE="text/css"
25 HREF="stylesheet.css"><META
26 NAME="creation"
27 CONTENT="2003-12-22T03:48:47"></HEAD
28 ><BODY
29 CLASS="SECT1"
30 ><DIV
31 CLASS="NAVHEADER"
32 ><TABLE
33 SUMMARY="Header navigation table"
34 WIDTH="100%"
35 BORDER="0"
36 CELLPADDING="0"
37 CELLSPACING="0"
38 ><TR
39 ><TH
40 COLSPAN="5"
41 ALIGN="center"
42 VALIGN="bottom"
43 >PostgreSQL 7.4.1 Documentation</TH
44 ></TR
45 ><TR
46 ><TD
47 WIDTH="10%"
48 ALIGN="left"
49 VALIGN="top"
50 ><A
51 HREF="pltcl-trigger.html"
52 ACCESSKEY="P"
53 >Prev</A
54 ></TD
55 ><TD
56 WIDTH="10%"
57 ALIGN="left"
58 VALIGN="top"
59 ><A
60 HREF="pltcl.html"
61 >Fast Backward</A
62 ></TD
63 ><TD
64 WIDTH="60%"
65 ALIGN="center"
66 VALIGN="bottom"
67 >Chapter 38. PL/Tcl - Tcl Procedural Language</TD
68 ><TD
69 WIDTH="10%"
70 ALIGN="right"
71 VALIGN="top"
72 ><A
73 HREF="pltcl.html"
74 >Fast Forward</A
75 ></TD
76 ><TD
77 WIDTH="10%"
78 ALIGN="right"
79 VALIGN="top"
80 ><A
81 HREF="pltcl-procnames.html"
82 ACCESSKEY="N"
83 >Next</A
84 ></TD
85 ></TR
86 ></TABLE
87 ><HR
88 ALIGN="LEFT"
89 WIDTH="100%"></DIV
90 ><DIV
91 CLASS="SECT1"
92 ><H1
93 CLASS="SECT1"
94 ><A
95 NAME="PLTCL-UNKNOWN"
96 >38.7. Modules and the <CODE
97 CLASS="FUNCTION"
98 >unknown</CODE
99 > command</A
100 ></H1
101 ><P
102 >       PL/Tcl has support for autoloading Tcl code when used.
103         It recognizes a special table, <TT
104 CLASS="LITERAL"
105 >pltcl_modules</TT
106 >, which
107         is presumed to contain modules of Tcl code.  If this table
108         exists, the module <TT
109 CLASS="LITERAL"
110 >unknown</TT
111 > is fetched from the table
112         and loaded into the Tcl interpreter immediately after creating
113         the interpreter.
114        </P
115 ><P
116 >        While the <TT
117 CLASS="LITERAL"
118 >unknown</TT
119 > module could actually contain any
120         initialization script you need, it normally defines a Tcl
121         <CODE
122 CLASS="FUNCTION"
123 >unknown</CODE
124 > procedure that is invoked whenever Tcl does
125         not recognize an invoked procedure name.  <SPAN
126 CLASS="APPLICATION"
127 >PL/Tcl</SPAN
128 >'s standard version
129         of this procedure tries to find a module in <TT
130 CLASS="LITERAL"
131 >pltcl_modules</TT
132 >
133         that will define the required procedure.  If one is found, it is
134         loaded into the interpreter, and then execution is allowed to
135         proceed with the originally attempted procedure call.  A
136         secondary table <TT
137 CLASS="LITERAL"
138 >pltcl_modfuncs</TT
139 > provides an index of
140         which functions are defined by which modules, so that the lookup
141         is reasonably quick.
142        </P
143 ><P
144 >        The <SPAN
145 CLASS="PRODUCTNAME"
146 >PostgreSQL</SPAN
147 > distribution includes
148         support scripts to maintain these tables:
149         <TT
150 CLASS="COMMAND"
151 >pltcl_loadmod</TT
152 >, <TT
153 CLASS="COMMAND"
154 >pltcl_listmod</TT
155 >,
156         <TT
157 CLASS="COMMAND"
158 >pltcl_delmod</TT
159 >, as well as source for the standard
160         <TT
161 CLASS="LITERAL"
162 >unknown</TT
163 > module in <TT
164 CLASS="FILENAME"
165 >share/unknown.pltcl</TT
166 >.  This module
167         must be loaded
168         into each database initially to support the autoloading mechanism.
169        </P
170 ><P
171 >        The tables <TT
172 CLASS="LITERAL"
173 >pltcl_modules</TT
174 > and <TT
175 CLASS="LITERAL"
176 >pltcl_modfuncs</TT
177 >
178         must be readable by all, but it is wise to make them owned and
179         writable only by the database administrator.
180        </P
181 ></DIV
182 ><DIV
183 CLASS="NAVFOOTER"
184 ><HR
185 ALIGN="LEFT"
186 WIDTH="100%"><TABLE
187 SUMMARY="Footer navigation table"
188 WIDTH="100%"
189 BORDER="0"
190 CELLPADDING="0"
191 CELLSPACING="0"
192 ><TR
193 ><TD
194 WIDTH="33%"
195 ALIGN="left"
196 VALIGN="top"
197 ><A
198 HREF="pltcl-trigger.html"
199 ACCESSKEY="P"
200 >Prev</A
201 ></TD
202 ><TD
203 WIDTH="34%"
204 ALIGN="center"
205 VALIGN="top"
206 ><A
207 HREF="index.html"
208 ACCESSKEY="H"
209 >Home</A
210 ></TD
211 ><TD
212 WIDTH="33%"
213 ALIGN="right"
214 VALIGN="top"
215 ><A
216 HREF="pltcl-procnames.html"
217 ACCESSKEY="N"
218 >Next</A
219 ></TD
220 ></TR
221 ><TR
222 ><TD
223 WIDTH="33%"
224 ALIGN="left"
225 VALIGN="top"
226 >Trigger Procedures in PL/Tcl</TD
227 ><TD
228 WIDTH="34%"
229 ALIGN="center"
230 VALIGN="top"
231 ><A
232 HREF="pltcl.html"
233 ACCESSKEY="U"
234 >Up</A
235 ></TD
236 ><TD
237 WIDTH="33%"
238 ALIGN="right"
239 VALIGN="top"
240 >Tcl Procedure Names</TD
241 ></TR
242 ></TABLE
243 ></DIV
244 ></BODY
245 ></HTML
246 >