OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I686LINUX / util / I686LINUX / doc / postgresql / html / functions-misc.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >Miscellaneous Functions</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="Functions and Operators"
16 HREF="functions.html"><LINK
17 REL="PREVIOUS"
18 TITLE="Conditional Expressions"
19 HREF="functions-conditional.html"><LINK
20 REL="NEXT"
21 TITLE="Array Functions and Operators"
22 HREF="functions-array.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="functions-conditional.html"
52 ACCESSKEY="P"
53 >Prev</A
54 ></TD
55 ><TD
56 WIDTH="10%"
57 ALIGN="left"
58 VALIGN="top"
59 ><A
60 HREF="functions.html"
61 >Fast Backward</A
62 ></TD
63 ><TD
64 WIDTH="60%"
65 ALIGN="center"
66 VALIGN="bottom"
67 >Chapter 9. Functions and Operators</TD
68 ><TD
69 WIDTH="10%"
70 ALIGN="right"
71 VALIGN="top"
72 ><A
73 HREF="functions.html"
74 >Fast Forward</A
75 ></TD
76 ><TD
77 WIDTH="10%"
78 ALIGN="right"
79 VALIGN="top"
80 ><A
81 HREF="functions-array.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="FUNCTIONS-MISC"
96 >9.13. Miscellaneous Functions</A
97 ></H1
98 ><P
99 >   <A
100 HREF="functions-misc.html#FUNCTIONS-MISC-SESSION-TABLE"
101 >Table 9-35</A
102 > shows several
103    functions that extract session and system information.
104   </P
105 ><DIV
106 CLASS="TABLE"
107 ><A
108 NAME="FUNCTIONS-MISC-SESSION-TABLE"
109 ></A
110 ><P
111 ><B
112 >Table 9-35. Session Information Functions</B
113 ></P
114 ><TABLE
115 BORDER="1"
116 CLASS="CALSTABLE"
117 ><COL><COL><COL><THEAD
118 ><TR
119 ><TH
120 >Name</TH
121 ><TH
122 >Return Type</TH
123 ><TH
124 >Description</TH
125 ></TR
126 ></THEAD
127 ><TBODY
128 ><TR
129 ><TD
130 ><CODE
131 CLASS="FUNCTION"
132 >current_database()</CODE
133 ></TD
134 ><TD
135 ><TT
136 CLASS="TYPE"
137 >name</TT
138 ></TD
139 ><TD
140 >name of current database</TD
141 ></TR
142 ><TR
143 ><TD
144 ><CODE
145 CLASS="FUNCTION"
146 >current_schema()</CODE
147 ></TD
148 ><TD
149 ><TT
150 CLASS="TYPE"
151 >name</TT
152 ></TD
153 ><TD
154 >name of current schema</TD
155 ></TR
156 ><TR
157 ><TD
158 ><CODE
159 CLASS="FUNCTION"
160 >current_schemas(boolean)</CODE
161 ></TD
162 ><TD
163 ><TT
164 CLASS="TYPE"
165 >name[]</TT
166 ></TD
167 ><TD
168 >names of schemas in search path optionally including implicit schemas</TD
169 ></TR
170 ><TR
171 ><TD
172 ><CODE
173 CLASS="FUNCTION"
174 >current_user</CODE
175 ></TD
176 ><TD
177 ><TT
178 CLASS="TYPE"
179 >name</TT
180 ></TD
181 ><TD
182 >user name of current execution context</TD
183 ></TR
184 ><TR
185 ><TD
186 ><CODE
187 CLASS="FUNCTION"
188 >session_user</CODE
189 ></TD
190 ><TD
191 ><TT
192 CLASS="TYPE"
193 >name</TT
194 ></TD
195 ><TD
196 >session user name</TD
197 ></TR
198 ><TR
199 ><TD
200 ><CODE
201 CLASS="FUNCTION"
202 >user</CODE
203 ></TD
204 ><TD
205 ><TT
206 CLASS="TYPE"
207 >name</TT
208 ></TD
209 ><TD
210 >equivalent to <CODE
211 CLASS="FUNCTION"
212 >current_user</CODE
213 ></TD
214 ></TR
215 ><TR
216 ><TD
217 ><CODE
218 CLASS="FUNCTION"
219 >version()</CODE
220 ></TD
221 ><TD
222 ><TT
223 CLASS="TYPE"
224 >text</TT
225 ></TD
226 ><TD
227 >PostgreSQL version information</TD
228 ></TR
229 ></TBODY
230 ></TABLE
231 ></DIV
232 ><A
233 NAME="AEN11518"
234 ></A
235 ><A
236 NAME="AEN11521"
237 ></A
238 ><A
239 NAME="AEN11524"
240 ></A
241 ><P
242 >    The <CODE
243 CLASS="FUNCTION"
244 >session_user</CODE
245 > is the user that initiated a
246     database connection; it is fixed for the duration of that
247     connection. The <CODE
248 CLASS="FUNCTION"
249 >current_user</CODE
250 > is the user identifier
251     that is applicable for permission checking. Normally, it is equal
252     to the session user, but it changes during the execution of
253     functions with the attribute <TT
254 CLASS="LITERAL"
255 >SECURITY DEFINER</TT
256 >.
257     In Unix parlance, the session user is the <SPAN
258 CLASS="QUOTE"
259 >"real user"</SPAN
260 > and
261     the current user is the <SPAN
262 CLASS="QUOTE"
263 >"effective user"</SPAN
264 >.
265    </P
266 ><DIV
267 CLASS="NOTE"
268 ><BLOCKQUOTE
269 CLASS="NOTE"
270 ><P
271 ><B
272 >Note: </B
273 >     <CODE
274 CLASS="FUNCTION"
275 >current_user</CODE
276 >, <CODE
277 CLASS="FUNCTION"
278 >session_user</CODE
279 >, and
280      <CODE
281 CLASS="FUNCTION"
282 >user</CODE
283 > have special syntactic status in <ACRONYM
284 CLASS="ACRONYM"
285 >SQL</ACRONYM
286 >:
287      they must be called without trailing parentheses.
288     </P
289 ></BLOCKQUOTE
290 ></DIV
291 ><P
292 >    <CODE
293 CLASS="FUNCTION"
294 >current_schema</CODE
295 > returns the name of the schema that is
296     at the front of the search path (or a null value if the search path is
297     empty).  This is the schema that will be used for any tables or
298     other named objects that are created without specifying a target schema.
299     <CODE
300 CLASS="FUNCTION"
301 >current_schemas(boolean)</CODE
302 > returns an array of the names of all
303     schemas presently in the search path.  The Boolean option determines whether or not
304     implicitly included system schemas such as <TT
305 CLASS="LITERAL"
306 >pg_catalog</TT
307 > are included in the search 
308     path returned.
309    </P
310 ><DIV
311 CLASS="NOTE"
312 ><BLOCKQUOTE
313 CLASS="NOTE"
314 ><P
315 ><B
316 >Note: </B
317 >     The search path may be altered at run time.  The command is:
318 </P><PRE
319 CLASS="PROGRAMLISTING"
320 >SET search_path TO <VAR
321 CLASS="REPLACEABLE"
322 >schema</VAR
323 > [<SPAN
324 CLASS="OPTIONAL"
325 >, <VAR
326 CLASS="REPLACEABLE"
327 >schema</VAR
328 >, ...</SPAN
329 >]</PRE
330 ><P>
331     </P
332 ></BLOCKQUOTE
333 ></DIV
334 ><A
335 NAME="AEN11549"
336 ></A
337 ><P
338 >    <CODE
339 CLASS="FUNCTION"
340 >version()</CODE
341 > returns a string describing the
342     <SPAN
343 CLASS="PRODUCTNAME"
344 >PostgreSQL</SPAN
345 > server's version.
346    </P
347 ><P
348 >   <A
349 HREF="functions-misc.html#FUNCTIONS-MISC-SET-TABLE"
350 >Table 9-36</A
351 > shows the functions
352    available to query and alter run-time configuration parameters.
353   </P
354 ><DIV
355 CLASS="TABLE"
356 ><A
357 NAME="FUNCTIONS-MISC-SET-TABLE"
358 ></A
359 ><P
360 ><B
361 >Table 9-36. Configuration Settings Functions</B
362 ></P
363 ><TABLE
364 BORDER="1"
365 CLASS="CALSTABLE"
366 ><COL><COL><COL><THEAD
367 ><TR
368 ><TH
369 >Name</TH
370 ><TH
371 >Return Type</TH
372 ><TH
373 >Description</TH
374 ></TR
375 ></THEAD
376 ><TBODY
377 ><TR
378 ><TD
379 >        <TT
380 CLASS="LITERAL"
381 ><CODE
382 CLASS="FUNCTION"
383 >current_setting</CODE
384 >(<VAR
385 CLASS="PARAMETER"
386 >setting_name</VAR
387 >)</TT
388 >
389        </TD
390 ><TD
391 ><TT
392 CLASS="TYPE"
393 >text</TT
394 ></TD
395 ><TD
396 >current value of setting</TD
397 ></TR
398 ><TR
399 ><TD
400 >        <TT
401 CLASS="LITERAL"
402 ><CODE
403 CLASS="FUNCTION"
404 >set_config(<VAR
405 CLASS="PARAMETER"
406 >setting_name</VAR
407 >,
408                              <VAR
409 CLASS="PARAMETER"
410 >new_value</VAR
411 >,
412                              <VAR
413 CLASS="PARAMETER"
414 >is_local</VAR
415 >)</CODE
416 ></TT
417 >
418        </TD
419 ><TD
420 ><TT
421 CLASS="TYPE"
422 >text</TT
423 ></TD
424 ><TD
425 >set parameter and return new value</TD
426 ></TR
427 ></TBODY
428 ></TABLE
429 ></DIV
430 ><A
431 NAME="AEN11583"
432 ></A
433 ><A
434 NAME="AEN11585"
435 ></A
436 ><A
437 NAME="AEN11587"
438 ></A
439 ><P
440 >    The function <CODE
441 CLASS="FUNCTION"
442 >current_setting</CODE
443 > yields the
444     current value of the setting <VAR
445 CLASS="PARAMETER"
446 >setting_name</VAR
447 >.
448     It corresponds to the <ACRONYM
449 CLASS="ACRONYM"
450 >SQL</ACRONYM
451 > command
452     <TT
453 CLASS="COMMAND"
454 >SHOW</TT
455 >.  An example:
456 </P><PRE
457 CLASS="PROGRAMLISTING"
458 >SELECT current_setting('datestyle');
459
460  current_setting
461 -----------------
462  ISO, MDY
463 (1 row)</PRE
464 ><P>
465    </P
466 ><P
467 >    <CODE
468 CLASS="FUNCTION"
469 >set_config</CODE
470 > sets the parameter
471     <VAR
472 CLASS="PARAMETER"
473 >setting_name</VAR
474 > to
475     <VAR
476 CLASS="PARAMETER"
477 >new_value</VAR
478 >.  If
479     <VAR
480 CLASS="PARAMETER"
481 >is_local</VAR
482 > is <TT
483 CLASS="LITERAL"
484 >true</TT
485 >, the
486     new value will only apply to the current transaction. If you want
487     the new value to apply for the current session, use
488     <TT
489 CLASS="LITERAL"
490 >false</TT
491 > instead. The function corresponds to the
492     SQL command <TT
493 CLASS="COMMAND"
494 >SET</TT
495 >. An example:
496 </P><PRE
497 CLASS="PROGRAMLISTING"
498 >SELECT set_config('log_statement_stats', 'off', false);
499
500  set_config
501 ------------
502  off
503 (1 row)</PRE
504 ><P>
505    </P
506 ><A
507 NAME="AEN11606"
508 ></A
509 ><P
510 >   <A
511 HREF="functions-misc.html#FUNCTIONS-MISC-ACCESS-TABLE"
512 >Table 9-37</A
513 > lists functions that
514    allow the user to query object access privileges programmatically.
515    See <A
516 HREF="ddl-priv.html"
517 >Section 5.7</A
518 > for more information about
519    privileges.
520   </P
521 ><DIV
522 CLASS="TABLE"
523 ><A
524 NAME="FUNCTIONS-MISC-ACCESS-TABLE"
525 ></A
526 ><P
527 ><B
528 >Table 9-37. Access Privilege Inquiry Functions</B
529 ></P
530 ><TABLE
531 BORDER="1"
532 CLASS="CALSTABLE"
533 ><COL><COL><COL><THEAD
534 ><TR
535 ><TH
536 >Name</TH
537 ><TH
538 >Return Type</TH
539 ><TH
540 >Description</TH
541 ></TR
542 ></THEAD
543 ><TBODY
544 ><TR
545 ><TD
546 ><TT
547 CLASS="LITERAL"
548 ><CODE
549 CLASS="FUNCTION"
550 >has_table_privilege</CODE
551 >(<VAR
552 CLASS="PARAMETER"
553 >user</VAR
554 >,
555                                   <VAR
556 CLASS="PARAMETER"
557 >table</VAR
558 >,
559                                   <VAR
560 CLASS="PARAMETER"
561 >privilege</VAR
562 >)</TT
563 >
564        </TD
565 ><TD
566 ><TT
567 CLASS="TYPE"
568 >boolean</TT
569 ></TD
570 ><TD
571 >does user have privilege for table</TD
572 ></TR
573 ><TR
574 ><TD
575 ><TT
576 CLASS="LITERAL"
577 ><CODE
578 CLASS="FUNCTION"
579 >has_table_privilege</CODE
580 >(<VAR
581 CLASS="PARAMETER"
582 >table</VAR
583 >,
584                                   <VAR
585 CLASS="PARAMETER"
586 >privilege</VAR
587 >)</TT
588 >
589        </TD
590 ><TD
591 ><TT
592 CLASS="TYPE"
593 >boolean</TT
594 ></TD
595 ><TD
596 >does current user have privilege for table</TD
597 ></TR
598 ><TR
599 ><TD
600 ><TT
601 CLASS="LITERAL"
602 ><CODE
603 CLASS="FUNCTION"
604 >has_database_privilege</CODE
605 >(<VAR
606 CLASS="PARAMETER"
607 >user</VAR
608 >,
609                                   <VAR
610 CLASS="PARAMETER"
611 >database</VAR
612 >,
613                                   <VAR
614 CLASS="PARAMETER"
615 >privilege</VAR
616 >)</TT
617 >
618        </TD
619 ><TD
620 ><TT
621 CLASS="TYPE"
622 >boolean</TT
623 ></TD
624 ><TD
625 >does user have privilege for database</TD
626 ></TR
627 ><TR
628 ><TD
629 ><TT
630 CLASS="LITERAL"
631 ><CODE
632 CLASS="FUNCTION"
633 >has_database_privilege</CODE
634 >(<VAR
635 CLASS="PARAMETER"
636 >database</VAR
637 >,
638                                   <VAR
639 CLASS="PARAMETER"
640 >privilege</VAR
641 >)</TT
642 >
643        </TD
644 ><TD
645 ><TT
646 CLASS="TYPE"
647 >boolean</TT
648 ></TD
649 ><TD
650 >does current user have privilege for database</TD
651 ></TR
652 ><TR
653 ><TD
654 ><TT
655 CLASS="LITERAL"
656 ><CODE
657 CLASS="FUNCTION"
658 >has_function_privilege</CODE
659 >(<VAR
660 CLASS="PARAMETER"
661 >user</VAR
662 >,
663                                   <VAR
664 CLASS="PARAMETER"
665 >function</VAR
666 >,
667                                   <VAR
668 CLASS="PARAMETER"
669 >privilege</VAR
670 >)</TT
671 >
672        </TD
673 ><TD
674 ><TT
675 CLASS="TYPE"
676 >boolean</TT
677 ></TD
678 ><TD
679 >does user have privilege for function</TD
680 ></TR
681 ><TR
682 ><TD
683 ><TT
684 CLASS="LITERAL"
685 ><CODE
686 CLASS="FUNCTION"
687 >has_function_privilege</CODE
688 >(<VAR
689 CLASS="PARAMETER"
690 >function</VAR
691 >,
692                                   <VAR
693 CLASS="PARAMETER"
694 >privilege</VAR
695 >)</TT
696 >
697        </TD
698 ><TD
699 ><TT
700 CLASS="TYPE"
701 >boolean</TT
702 ></TD
703 ><TD
704 >does current user have privilege for function</TD
705 ></TR
706 ><TR
707 ><TD
708 ><TT
709 CLASS="LITERAL"
710 ><CODE
711 CLASS="FUNCTION"
712 >has_language_privilege</CODE
713 >(<VAR
714 CLASS="PARAMETER"
715 >user</VAR
716 >,
717                                   <VAR
718 CLASS="PARAMETER"
719 >language</VAR
720 >,
721                                   <VAR
722 CLASS="PARAMETER"
723 >privilege</VAR
724 >)</TT
725 >
726        </TD
727 ><TD
728 ><TT
729 CLASS="TYPE"
730 >boolean</TT
731 ></TD
732 ><TD
733 >does user have privilege for language</TD
734 ></TR
735 ><TR
736 ><TD
737 ><TT
738 CLASS="LITERAL"
739 ><CODE
740 CLASS="FUNCTION"
741 >has_language_privilege</CODE
742 >(<VAR
743 CLASS="PARAMETER"
744 >language</VAR
745 >,
746                                   <VAR
747 CLASS="PARAMETER"
748 >privilege</VAR
749 >)</TT
750 >
751        </TD
752 ><TD
753 ><TT
754 CLASS="TYPE"
755 >boolean</TT
756 ></TD
757 ><TD
758 >does current user have privilege for language</TD
759 ></TR
760 ><TR
761 ><TD
762 ><TT
763 CLASS="LITERAL"
764 ><CODE
765 CLASS="FUNCTION"
766 >has_schema_privilege</CODE
767 >(<VAR
768 CLASS="PARAMETER"
769 >user</VAR
770 >,
771                                   <VAR
772 CLASS="PARAMETER"
773 >schema</VAR
774 >,
775                                   <VAR
776 CLASS="PARAMETER"
777 >privilege</VAR
778 >)</TT
779 >
780        </TD
781 ><TD
782 ><TT
783 CLASS="TYPE"
784 >boolean</TT
785 ></TD
786 ><TD
787 >does user have privilege for schema</TD
788 ></TR
789 ><TR
790 ><TD
791 ><TT
792 CLASS="LITERAL"
793 ><CODE
794 CLASS="FUNCTION"
795 >has_schema_privilege</CODE
796 >(<VAR
797 CLASS="PARAMETER"
798 >schema</VAR
799 >,
800                                   <VAR
801 CLASS="PARAMETER"
802 >privilege</VAR
803 >)</TT
804 >
805        </TD
806 ><TD
807 ><TT
808 CLASS="TYPE"
809 >boolean</TT
810 ></TD
811 ><TD
812 >does current user have privilege for schema</TD
813 ></TR
814 ></TBODY
815 ></TABLE
816 ></DIV
817 ><A
818 NAME="AEN11716"
819 ></A
820 ><A
821 NAME="AEN11718"
822 ></A
823 ><A
824 NAME="AEN11720"
825 ></A
826 ><A
827 NAME="AEN11722"
828 ></A
829 ><A
830 NAME="AEN11724"
831 ></A
832 ><P
833 >    <CODE
834 CLASS="FUNCTION"
835 >has_table_privilege</CODE
836 > checks whether a user
837     can access a table in a particular way.  The user can be
838     specified by name or by ID
839     (<TT
840 CLASS="LITERAL"
841 >pg_user.usesysid</TT
842 >), or if the argument is
843     omitted
844     <CODE
845 CLASS="FUNCTION"
846 >current_user</CODE
847 > is assumed.  The table can be specified
848     by name or by OID.  (Thus, there are actually six variants of
849     <CODE
850 CLASS="FUNCTION"
851 >has_table_privilege</CODE
852 >, which can be distinguished by
853     the number and types of their arguments.)  When specifying by name,
854     the name can be schema-qualified if necessary.
855     The desired access privilege type
856     is specified by a text string, which must evaluate to one of the
857     values <TT
858 CLASS="LITERAL"
859 >SELECT</TT
860 >, <TT
861 CLASS="LITERAL"
862 >INSERT</TT
863 >, <TT
864 CLASS="LITERAL"
865 >UPDATE</TT
866 >,
867     <TT
868 CLASS="LITERAL"
869 >DELETE</TT
870 >, <TT
871 CLASS="LITERAL"
872 >RULE</TT
873 >, <TT
874 CLASS="LITERAL"
875 >REFERENCES</TT
876 >, or
877     <TT
878 CLASS="LITERAL"
879 >TRIGGER</TT
880 >.  (Case of the string is not significant, however.)
881     An example is:
882 </P><PRE
883 CLASS="PROGRAMLISTING"
884 >SELECT has_table_privilege('myschema.mytable', 'select');</PRE
885 ><P>
886    </P
887 ><P
888 >    <CODE
889 CLASS="FUNCTION"
890 >has_database_privilege</CODE
891 > checks whether a user
892     can access a database in a particular way.  The possibilities for its
893     arguments are analogous to <CODE
894 CLASS="FUNCTION"
895 >has_table_privilege</CODE
896 >.
897     The desired access privilege type must evaluate to
898     <TT
899 CLASS="LITERAL"
900 >CREATE</TT
901 >,
902     <TT
903 CLASS="LITERAL"
904 >TEMPORARY</TT
905 >, or
906     <TT
907 CLASS="LITERAL"
908 >TEMP</TT
909 > (which is equivalent to
910     <TT
911 CLASS="LITERAL"
912 >TEMPORARY</TT
913 >).
914    </P
915 ><P
916 >    <CODE
917 CLASS="FUNCTION"
918 >has_function_privilege</CODE
919 > checks whether a user
920     can access a function in a particular way.  The possibilities for its
921     arguments are analogous to <CODE
922 CLASS="FUNCTION"
923 >has_table_privilege</CODE
924 >.
925     When specifying a function by a text string rather than by OID,
926     the allowed input is the same as for the <TT
927 CLASS="TYPE"
928 >regprocedure</TT
929 > data type.
930     The desired access privilege type must currently evaluate to
931     <TT
932 CLASS="LITERAL"
933 >EXECUTE</TT
934 >.
935    </P
936 ><P
937 >    <CODE
938 CLASS="FUNCTION"
939 >has_language_privilege</CODE
940 > checks whether a user
941     can access a procedural language in a particular way.  The possibilities
942     for its arguments are analogous to <CODE
943 CLASS="FUNCTION"
944 >has_table_privilege</CODE
945 >.
946     The desired access privilege type must currently evaluate to
947     <TT
948 CLASS="LITERAL"
949 >USAGE</TT
950 >.
951    </P
952 ><P
953 >    <CODE
954 CLASS="FUNCTION"
955 >has_schema_privilege</CODE
956 > checks whether a user
957     can access a schema in a particular way.  The possibilities for its
958     arguments are analogous to <CODE
959 CLASS="FUNCTION"
960 >has_table_privilege</CODE
961 >.
962     The desired access privilege type must evaluate to
963     <TT
964 CLASS="LITERAL"
965 >CREATE</TT
966 > or
967     <TT
968 CLASS="LITERAL"
969 >USAGE</TT
970 >.
971    </P
972 ><P
973 >   To evaluate whether a user holds a grant option on the privilege,
974    append <TT
975 CLASS="LITERAL"
976 > WITH GRANT OPTION</TT
977 > to the privilege key
978    word; for example <TT
979 CLASS="LITERAL"
980 >'UPDATE WITH GRANT OPTION'</TT
981 >.
982   </P
983 ><P
984 >   <A
985 HREF="functions-misc.html#FUNCTIONS-MISC-SCHEMA-TABLE"
986 >Table 9-38</A
987 > shows functions that
988    determine whether a certain object is <I
989 CLASS="FIRSTTERM"
990 >visible</I
991 > in the
992    current schema search path.  A table is said to be visible if its
993    containing schema is in the search path and no table of the same
994    name appears earlier in the search path.  This is equivalent to the
995    statement that the table can be referenced by name without explicit
996    schema qualification.  For example, to list the names of all
997    visible tables:
998 </P><PRE
999 CLASS="PROGRAMLISTING"
1000 >SELECT relname FROM pg_class WHERE pg_table_is_visible(oid);</PRE
1001 ><P>
1002   </P
1003 ><DIV
1004 CLASS="TABLE"
1005 ><A
1006 NAME="FUNCTIONS-MISC-SCHEMA-TABLE"
1007 ></A
1008 ><P
1009 ><B
1010 >Table 9-38. Schema Visibility Inquiry Functions</B
1011 ></P
1012 ><TABLE
1013 BORDER="1"
1014 CLASS="CALSTABLE"
1015 ><COL><COL><COL><THEAD
1016 ><TR
1017 ><TH
1018 >Name</TH
1019 ><TH
1020 >Return Type</TH
1021 ><TH
1022 >Description</TH
1023 ></TR
1024 ></THEAD
1025 ><TBODY
1026 ><TR
1027 ><TD
1028 ><TT
1029 CLASS="LITERAL"
1030 ><CODE
1031 CLASS="FUNCTION"
1032 >pg_table_is_visible</CODE
1033 >(<VAR
1034 CLASS="PARAMETER"
1035 >table_oid</VAR
1036 >)</TT
1037 >
1038        </TD
1039 ><TD
1040 ><TT
1041 CLASS="TYPE"
1042 >boolean</TT
1043 ></TD
1044 ><TD
1045 >is table visible in search path</TD
1046 ></TR
1047 ><TR
1048 ><TD
1049 ><TT
1050 CLASS="LITERAL"
1051 ><CODE
1052 CLASS="FUNCTION"
1053 >pg_type_is_visible</CODE
1054 >(<VAR
1055 CLASS="PARAMETER"
1056 >type_oid</VAR
1057 >)</TT
1058 >
1059        </TD
1060 ><TD
1061 ><TT
1062 CLASS="TYPE"
1063 >boolean</TT
1064 ></TD
1065 ><TD
1066 >is type (or domain) visible in search path</TD
1067 ></TR
1068 ><TR
1069 ><TD
1070 ><TT
1071 CLASS="LITERAL"
1072 ><CODE
1073 CLASS="FUNCTION"
1074 >pg_function_is_visible</CODE
1075 >(<VAR
1076 CLASS="PARAMETER"
1077 >function_oid</VAR
1078 >)</TT
1079 >
1080        </TD
1081 ><TD
1082 ><TT
1083 CLASS="TYPE"
1084 >boolean</TT
1085 ></TD
1086 ><TD
1087 >is function visible in search path</TD
1088 ></TR
1089 ><TR
1090 ><TD
1091 ><TT
1092 CLASS="LITERAL"
1093 ><CODE
1094 CLASS="FUNCTION"
1095 >pg_operator_is_visible</CODE
1096 >(<VAR
1097 CLASS="PARAMETER"
1098 >operator_oid</VAR
1099 >)</TT
1100 >
1101        </TD
1102 ><TD
1103 ><TT
1104 CLASS="TYPE"
1105 >boolean</TT
1106 ></TD
1107 ><TD
1108 >is operator visible in search path</TD
1109 ></TR
1110 ><TR
1111 ><TD
1112 ><TT
1113 CLASS="LITERAL"
1114 ><CODE
1115 CLASS="FUNCTION"
1116 >pg_opclass_is_visible</CODE
1117 >(<VAR
1118 CLASS="PARAMETER"
1119 >opclass_oid</VAR
1120 >)</TT
1121 >
1122        </TD
1123 ><TD
1124 ><TT
1125 CLASS="TYPE"
1126 >boolean</TT
1127 ></TD
1128 ><TD
1129 >is operator class visible in search path</TD
1130 ></TR
1131 ><TR
1132 ><TD
1133 ><TT
1134 CLASS="LITERAL"
1135 ><CODE
1136 CLASS="FUNCTION"
1137 >pg_conversion_is_visible</CODE
1138 >(<VAR
1139 CLASS="PARAMETER"
1140 >conversion_oid</VAR
1141 >)</TT
1142 >
1143        </TD
1144 ><TD
1145 ><TT
1146 CLASS="TYPE"
1147 >boolean</TT
1148 ></TD
1149 ><TD
1150 >is conversion visible in search path</TD
1151 ></TR
1152 ></TBODY
1153 ></TABLE
1154 ></DIV
1155 ><A
1156 NAME="AEN11824"
1157 ></A
1158 ><A
1159 NAME="AEN11826"
1160 ></A
1161 ><A
1162 NAME="AEN11828"
1163 ></A
1164 ><A
1165 NAME="AEN11830"
1166 ></A
1167 ><A
1168 NAME="AEN11832"
1169 ></A
1170 ><A
1171 NAME="AEN11834"
1172 ></A
1173 ><P
1174 >   <CODE
1175 CLASS="FUNCTION"
1176 >pg_table_is_visible</CODE
1177 > performs the check for
1178    tables (or views, or any other kind of <TT
1179 CLASS="LITERAL"
1180 >pg_class</TT
1181 > entry).
1182    <CODE
1183 CLASS="FUNCTION"
1184 >pg_type_is_visible</CODE
1185 >,
1186    <CODE
1187 CLASS="FUNCTION"
1188 >pg_function_is_visible</CODE
1189 >,
1190    <CODE
1191 CLASS="FUNCTION"
1192 >pg_operator_is_visible</CODE
1193 >,
1194    <CODE
1195 CLASS="FUNCTION"
1196 >pg_opclass_is_visible</CODE
1197 >, and
1198    <CODE
1199 CLASS="FUNCTION"
1200 >pg_conversion_is_visible</CODE
1201 > perform the same sort of
1202    visibility check for types (and domains), functions, operators, operator classes
1203    and conversions, respectively.  For functions and operators, an object in
1204    the search path is visible if there is no object of the same name
1205    <SPAN
1206 CLASS="emphasis"
1207 ><I
1208 CLASS="EMPHASIS"
1209 >and argument data type(s)</I
1210 ></SPAN
1211 > earlier in the path.  For
1212    operator classes, both name and associated index access method are
1213    considered.
1214    </P
1215 ><P
1216 >    All these functions require object OIDs to identify the object to be
1217     checked.  If you want to test an object by name, it is convenient to use
1218     the OID alias types (<TT
1219 CLASS="TYPE"
1220 >regclass</TT
1221 >, <TT
1222 CLASS="TYPE"
1223 >regtype</TT
1224 >,
1225     <TT
1226 CLASS="TYPE"
1227 >regprocedure</TT
1228 >, or <TT
1229 CLASS="TYPE"
1230 >regoperator</TT
1231 >), for example
1232 </P><PRE
1233 CLASS="PROGRAMLISTING"
1234 >SELECT pg_type_is_visible('myschema.widget'::regtype);</PRE
1235 ><P>
1236     Note that it would not make much sense to test an unqualified name in
1237     this way --- if the name can be recognized at all, it must be visible.
1238    </P
1239 ><A
1240 NAME="AEN11851"
1241 ></A
1242 ><A
1243 NAME="AEN11853"
1244 ></A
1245 ><A
1246 NAME="AEN11855"
1247 ></A
1248 ><A
1249 NAME="AEN11857"
1250 ></A
1251 ><A
1252 NAME="AEN11859"
1253 ></A
1254 ><A
1255 NAME="AEN11861"
1256 ></A
1257 ><A
1258 NAME="AEN11863"
1259 ></A
1260 ><P
1261 >   <A
1262 HREF="functions-misc.html#FUNCTIONS-MISC-CATALOG-TABLE"
1263 >Table 9-39</A
1264 > lists functions that
1265    extract information from the system catalogs.
1266    <CODE
1267 CLASS="FUNCTION"
1268 >pg_get_viewdef</CODE
1269 >,
1270    <CODE
1271 CLASS="FUNCTION"
1272 >pg_get_ruledef</CODE
1273 >,
1274    <CODE
1275 CLASS="FUNCTION"
1276 >pg_get_indexdef</CODE
1277 >,
1278    <CODE
1279 CLASS="FUNCTION"
1280 >pg_get_triggerdef</CODE
1281 >, and
1282    <CODE
1283 CLASS="FUNCTION"
1284 >pg_get_constraintdef</CODE
1285 > respectively
1286    reconstruct the creating command for a view, rule, index, trigger, or
1287    constraint.  (Note that this is a decompiled reconstruction, not
1288    the original text of the command.)  Most of these come in two
1289    variants, one of which can optionally <SPAN
1290 CLASS="QUOTE"
1291 >"pretty-print"</SPAN
1292 > the result.
1293    The pretty-printed format is more readable, but the default format is more
1294    likely to be
1295    interpreted the same way by future versions of <SPAN
1296 CLASS="PRODUCTNAME"
1297 >PostgreSQL</SPAN
1298 >;
1299    avoid using pretty-printed output for dump purposes.
1300    Passing <TT
1301 CLASS="LITERAL"
1302 >false</TT
1303 > for the pretty-print parameter yields the
1304    same result as the variant that does not have the parameter at all.
1305    <CODE
1306 CLASS="FUNCTION"
1307 >pg_get_expr</CODE
1308 > decompiles the internal form of an
1309    individual expression, such as the default value for a column.  It
1310    may be useful when examining the contents of system catalogs.
1311    <CODE
1312 CLASS="FUNCTION"
1313 >pg_get_userbyid</CODE
1314 >
1315    extracts a user's name given a user ID number.
1316   </P
1317 ><DIV
1318 CLASS="TABLE"
1319 ><A
1320 NAME="FUNCTIONS-MISC-CATALOG-TABLE"
1321 ></A
1322 ><P
1323 ><B
1324 >Table 9-39. System Catalog Information Functions</B
1325 ></P
1326 ><TABLE
1327 BORDER="1"
1328 CLASS="CALSTABLE"
1329 ><COL><COL><COL><THEAD
1330 ><TR
1331 ><TH
1332 >Name</TH
1333 ><TH
1334 >Return Type</TH
1335 ><TH
1336 >Description</TH
1337 ></TR
1338 ></THEAD
1339 ><TBODY
1340 ><TR
1341 ><TD
1342 ><TT
1343 CLASS="LITERAL"
1344 ><CODE
1345 CLASS="FUNCTION"
1346 >pg_get_viewdef</CODE
1347 >(<VAR
1348 CLASS="PARAMETER"
1349 >view_name</VAR
1350 >)</TT
1351 ></TD
1352 ><TD
1353 ><TT
1354 CLASS="TYPE"
1355 >text</TT
1356 ></TD
1357 ><TD
1358 >get <TT
1359 CLASS="COMMAND"
1360 >CREATE VIEW</TT
1361 > command for view (<SPAN
1362 CLASS="emphasis"
1363 ><I
1364 CLASS="EMPHASIS"
1365 >deprecated</I
1366 ></SPAN
1367 >)</TD
1368 ></TR
1369 ><TR
1370 ><TD
1371 ><TT
1372 CLASS="LITERAL"
1373 ><CODE
1374 CLASS="FUNCTION"
1375 >pg_get_viewdef</CODE
1376 >(<VAR
1377 CLASS="PARAMETER"
1378 >view_name</VAR
1379 >, <VAR
1380 CLASS="PARAMETER"
1381 >pretty_bool</VAR
1382 >)</TT
1383 ></TD
1384 ><TD
1385 ><TT
1386 CLASS="TYPE"
1387 >text</TT
1388 ></TD
1389 ><TD
1390 >get <TT
1391 CLASS="COMMAND"
1392 >CREATE VIEW</TT
1393 > command for view (<SPAN
1394 CLASS="emphasis"
1395 ><I
1396 CLASS="EMPHASIS"
1397 >deprecated</I
1398 ></SPAN
1399 >)</TD
1400 ></TR
1401 ><TR
1402 ><TD
1403 ><TT
1404 CLASS="LITERAL"
1405 ><CODE
1406 CLASS="FUNCTION"
1407 >pg_get_viewdef</CODE
1408 >(<VAR
1409 CLASS="PARAMETER"
1410 >view_oid</VAR
1411 >)</TT
1412 ></TD
1413 ><TD
1414 ><TT
1415 CLASS="TYPE"
1416 >text</TT
1417 ></TD
1418 ><TD
1419 >get <TT
1420 CLASS="COMMAND"
1421 >CREATE VIEW</TT
1422 > command for view</TD
1423 ></TR
1424 ><TR
1425 ><TD
1426 ><TT
1427 CLASS="LITERAL"
1428 ><CODE
1429 CLASS="FUNCTION"
1430 >pg_get_viewdef</CODE
1431 >(<VAR
1432 CLASS="PARAMETER"
1433 >view_oid</VAR
1434 >, <VAR
1435 CLASS="PARAMETER"
1436 >pretty_bool</VAR
1437 >)</TT
1438 ></TD
1439 ><TD
1440 ><TT
1441 CLASS="TYPE"
1442 >text</TT
1443 ></TD
1444 ><TD
1445 >get <TT
1446 CLASS="COMMAND"
1447 >CREATE VIEW</TT
1448 > command for view</TD
1449 ></TR
1450 ><TR
1451 ><TD
1452 ><TT
1453 CLASS="LITERAL"
1454 ><CODE
1455 CLASS="FUNCTION"
1456 >pg_get_ruledef</CODE
1457 >(<VAR
1458 CLASS="PARAMETER"
1459 >rule_oid</VAR
1460 >)</TT
1461 ></TD
1462 ><TD
1463 ><TT
1464 CLASS="TYPE"
1465 >text</TT
1466 ></TD
1467 ><TD
1468 >get <TT
1469 CLASS="COMMAND"
1470 >CREATE RULE</TT
1471 > command for rule</TD
1472 ></TR
1473 ><TR
1474 ><TD
1475 ><TT
1476 CLASS="LITERAL"
1477 ><CODE
1478 CLASS="FUNCTION"
1479 >pg_get_ruledef</CODE
1480 >(<VAR
1481 CLASS="PARAMETER"
1482 >rule_oid</VAR
1483 >, <VAR
1484 CLASS="PARAMETER"
1485 >pretty_bool</VAR
1486 >)</TT
1487 ></TD
1488 ><TD
1489 ><TT
1490 CLASS="TYPE"
1491 >text</TT
1492 ></TD
1493 ><TD
1494 >get <TT
1495 CLASS="COMMAND"
1496 >CREATE RULE</TT
1497 > command for rule</TD
1498 ></TR
1499 ><TR
1500 ><TD
1501 ><TT
1502 CLASS="LITERAL"
1503 ><CODE
1504 CLASS="FUNCTION"
1505 >pg_get_indexdef</CODE
1506 >(<VAR
1507 CLASS="PARAMETER"
1508 >index_oid</VAR
1509 >)</TT
1510 ></TD
1511 ><TD
1512 ><TT
1513 CLASS="TYPE"
1514 >text</TT
1515 ></TD
1516 ><TD
1517 >get <TT
1518 CLASS="COMMAND"
1519 >CREATE INDEX</TT
1520 > command for index</TD
1521 ></TR
1522 ><TR
1523 ><TD
1524 ><TT
1525 CLASS="LITERAL"
1526 ><CODE
1527 CLASS="FUNCTION"
1528 >pg_get_indexdef</CODE
1529 >(<VAR
1530 CLASS="PARAMETER"
1531 >index_oid</VAR
1532 >, <VAR
1533 CLASS="PARAMETER"
1534 >column_no</VAR
1535 >, <VAR
1536 CLASS="PARAMETER"
1537 >pretty_bool</VAR
1538 >)</TT
1539 ></TD
1540 ><TD
1541 ><TT
1542 CLASS="TYPE"
1543 >text</TT
1544 ></TD
1545 ><TD
1546 >get <TT
1547 CLASS="COMMAND"
1548 >CREATE INDEX</TT
1549 > command for index,
1550        or definition of just one index column when
1551        <VAR
1552 CLASS="PARAMETER"
1553 >column_no</VAR
1554 > is not zero</TD
1555 ></TR
1556 ><TR
1557 ><TD
1558 ><CODE
1559 CLASS="FUNCTION"
1560 >pg_get_triggerdef</CODE
1561 >(<VAR
1562 CLASS="PARAMETER"
1563 >trigger_oid</VAR
1564 >)</TD
1565 ><TD
1566 ><TT
1567 CLASS="TYPE"
1568 >text</TT
1569 ></TD
1570 ><TD
1571 >get <TT
1572 CLASS="COMMAND"
1573 >CREATE [ CONSTRAINT ] TRIGGER</TT
1574 > command for trigger</TD
1575 ></TR
1576 ><TR
1577 ><TD
1578 ><TT
1579 CLASS="LITERAL"
1580 ><CODE
1581 CLASS="FUNCTION"
1582 >pg_get_constraintdef</CODE
1583 >(<VAR
1584 CLASS="PARAMETER"
1585 >constraint_oid</VAR
1586 >)</TT
1587 ></TD
1588 ><TD
1589 ><TT
1590 CLASS="TYPE"
1591 >text</TT
1592 ></TD
1593 ><TD
1594 >get definition of a constraint</TD
1595 ></TR
1596 ><TR
1597 ><TD
1598 ><TT
1599 CLASS="LITERAL"
1600 ><CODE
1601 CLASS="FUNCTION"
1602 >pg_get_constraintdef</CODE
1603 >(<VAR
1604 CLASS="PARAMETER"
1605 >constraint_oid</VAR
1606 >, <VAR
1607 CLASS="PARAMETER"
1608 >pretty_bool</VAR
1609 >)</TT
1610 ></TD
1611 ><TD
1612 ><TT
1613 CLASS="TYPE"
1614 >text</TT
1615 ></TD
1616 ><TD
1617 >get definition of a constraint</TD
1618 ></TR
1619 ><TR
1620 ><TD
1621 ><TT
1622 CLASS="LITERAL"
1623 ><CODE
1624 CLASS="FUNCTION"
1625 >pg_get_expr</CODE
1626 >(<VAR
1627 CLASS="PARAMETER"
1628 >expr_text</VAR
1629 >, <VAR
1630 CLASS="PARAMETER"
1631 >relation_oid</VAR
1632 >)</TT
1633 ></TD
1634 ><TD
1635 ><TT
1636 CLASS="TYPE"
1637 >text</TT
1638 ></TD
1639 ><TD
1640 >decompile internal form of an expression, assuming that any Vars
1641        in it refer to the relation indicated by the second parameter</TD
1642 ></TR
1643 ><TR
1644 ><TD
1645 ><TT
1646 CLASS="LITERAL"
1647 ><CODE
1648 CLASS="FUNCTION"
1649 >pg_get_expr</CODE
1650 >(<VAR
1651 CLASS="PARAMETER"
1652 >expr_text</VAR
1653 >, <VAR
1654 CLASS="PARAMETER"
1655 >relation_oid</VAR
1656 >, <VAR
1657 CLASS="PARAMETER"
1658 >pretty_bool</VAR
1659 >)</TT
1660 ></TD
1661 ><TD
1662 ><TT
1663 CLASS="TYPE"
1664 >text</TT
1665 ></TD
1666 ><TD
1667 >decompile internal form of an expression, assuming that any Vars
1668        in it refer to the relation indicated by the second parameter</TD
1669 ></TR
1670 ><TR
1671 ><TD
1672 ><TT
1673 CLASS="LITERAL"
1674 ><CODE
1675 CLASS="FUNCTION"
1676 >pg_get_userbyid</CODE
1677 >(<VAR
1678 CLASS="PARAMETER"
1679 >userid</VAR
1680 >)</TT
1681 ></TD
1682 ><TD
1683 ><TT
1684 CLASS="TYPE"
1685 >name</TT
1686 ></TD
1687 ><TD
1688 >get user name with given ID</TD
1689 ></TR
1690 ></TBODY
1691 ></TABLE
1692 ></DIV
1693 ><A
1694 NAME="AEN12018"
1695 ></A
1696 ><A
1697 NAME="AEN12020"
1698 ></A
1699 ><A
1700 NAME="AEN12022"
1701 ></A
1702 ><P
1703 >    The function shown in <A
1704 HREF="functions-misc.html#FUNCTIONS-MISC-COMMENT-TABLE"
1705 >Table 9-40</A
1706 > extract comments
1707     previously stored with the <TT
1708 CLASS="COMMAND"
1709 >COMMENT</TT
1710 > command.  A
1711     null value is returned if no comment could be found matching the
1712     specified parameters.
1713    </P
1714 ><DIV
1715 CLASS="TABLE"
1716 ><A
1717 NAME="FUNCTIONS-MISC-COMMENT-TABLE"
1718 ></A
1719 ><P
1720 ><B
1721 >Table 9-40. Comment Information Functions</B
1722 ></P
1723 ><TABLE
1724 BORDER="1"
1725 CLASS="CALSTABLE"
1726 ><COL><COL><COL><THEAD
1727 ><TR
1728 ><TH
1729 >Name</TH
1730 ><TH
1731 >Return Type</TH
1732 ><TH
1733 >Description</TH
1734 ></TR
1735 ></THEAD
1736 ><TBODY
1737 ><TR
1738 ><TD
1739 ><TT
1740 CLASS="LITERAL"
1741 ><CODE
1742 CLASS="FUNCTION"
1743 >obj_description</CODE
1744 >(<VAR
1745 CLASS="PARAMETER"
1746 >object_oid</VAR
1747 >, <VAR
1748 CLASS="PARAMETER"
1749 >catalog_name</VAR
1750 >)</TT
1751 ></TD
1752 ><TD
1753 ><TT
1754 CLASS="TYPE"
1755 >text</TT
1756 ></TD
1757 ><TD
1758 >get comment for a database object</TD
1759 ></TR
1760 ><TR
1761 ><TD
1762 ><TT
1763 CLASS="LITERAL"
1764 ><CODE
1765 CLASS="FUNCTION"
1766 >obj_description</CODE
1767 >(<VAR
1768 CLASS="PARAMETER"
1769 >object_oid</VAR
1770 >)</TT
1771 ></TD
1772 ><TD
1773 ><TT
1774 CLASS="TYPE"
1775 >text</TT
1776 ></TD
1777 ><TD
1778 >get comment for a database object (<SPAN
1779 CLASS="emphasis"
1780 ><I
1781 CLASS="EMPHASIS"
1782 >deprecated</I
1783 ></SPAN
1784 >)</TD
1785 ></TR
1786 ><TR
1787 ><TD
1788 ><TT
1789 CLASS="LITERAL"
1790 ><CODE
1791 CLASS="FUNCTION"
1792 >col_description</CODE
1793 >(<VAR
1794 CLASS="PARAMETER"
1795 >table_oid</VAR
1796 >, <VAR
1797 CLASS="PARAMETER"
1798 >column_number</VAR
1799 >)</TT
1800 ></TD
1801 ><TD
1802 ><TT
1803 CLASS="TYPE"
1804 >text</TT
1805 ></TD
1806 ><TD
1807 >get comment for a table column</TD
1808 ></TR
1809 ></TBODY
1810 ></TABLE
1811 ></DIV
1812 ><P
1813 >    The two-parameter form of <CODE
1814 CLASS="FUNCTION"
1815 >obj_description</CODE
1816 > returns the
1817     comment for a database object specified by its OID and the name of the
1818     containing system catalog.  For example,
1819     <TT
1820 CLASS="LITERAL"
1821 >obj_description(123456,'pg_class')</TT
1822 >
1823     would retrieve the comment for a table with OID 123456.
1824     The one-parameter form of <CODE
1825 CLASS="FUNCTION"
1826 >obj_description</CODE
1827 > requires only
1828     the object OID.  It is now deprecated since there is no guarantee that
1829     OIDs are unique across different system catalogs; therefore, the wrong
1830     comment could be returned.
1831    </P
1832 ><P
1833 >    <CODE
1834 CLASS="FUNCTION"
1835 >col_description</CODE
1836 > returns the comment for a table column,
1837     which is specified by the OID of its table and its column number.
1838     <CODE
1839 CLASS="FUNCTION"
1840 >obj_description</CODE
1841 > cannot be used for table columns since
1842     columns do not have OIDs of their own.
1843    </P
1844 ></DIV
1845 ><DIV
1846 CLASS="NAVFOOTER"
1847 ><HR
1848 ALIGN="LEFT"
1849 WIDTH="100%"><TABLE
1850 SUMMARY="Footer navigation table"
1851 WIDTH="100%"
1852 BORDER="0"
1853 CELLPADDING="0"
1854 CELLSPACING="0"
1855 ><TR
1856 ><TD
1857 WIDTH="33%"
1858 ALIGN="left"
1859 VALIGN="top"
1860 ><A
1861 HREF="functions-conditional.html"
1862 ACCESSKEY="P"
1863 >Prev</A
1864 ></TD
1865 ><TD
1866 WIDTH="34%"
1867 ALIGN="center"
1868 VALIGN="top"
1869 ><A
1870 HREF="index.html"
1871 ACCESSKEY="H"
1872 >Home</A
1873 ></TD
1874 ><TD
1875 WIDTH="33%"
1876 ALIGN="right"
1877 VALIGN="top"
1878 ><A
1879 HREF="functions-array.html"
1880 ACCESSKEY="N"
1881 >Next</A
1882 ></TD
1883 ></TR
1884 ><TR
1885 ><TD
1886 WIDTH="33%"
1887 ALIGN="left"
1888 VALIGN="top"
1889 >Conditional Expressions</TD
1890 ><TD
1891 WIDTH="34%"
1892 ALIGN="center"
1893 VALIGN="top"
1894 ><A
1895 HREF="functions.html"
1896 ACCESSKEY="U"
1897 >Up</A
1898 ></TD
1899 ><TD
1900 WIDTH="33%"
1901 ALIGN="right"
1902 VALIGN="top"
1903 >Array Functions and Operators</TD
1904 ></TR
1905 ></TABLE
1906 ></DIV
1907 ></BODY
1908 ></HTML
1909 >