diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2021-12-08 16:54:31 -0500 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2021-12-08 16:54:31 -0500 |
commit | a96a1d656274d3e1ca7cd4c34b7ba79a2754b71d (patch) | |
tree | ab8e820503d8380dff2aaa93657ad097b00680bd | |
parent | 9acea52ea3d48627f12b9a2b4498197d3b05fe2e (diff) |
Doc: improve xfunc-c-type-table.
List types numeric and timestamptz, which don't seem to have ever been
included here. Restore bigint, which was no-doubt-accidentally deleted
in v12. Fix some errors, or at least obsolete usages (nobody declares
float arguments as "float8*" anymore, even though they might be that
under the hood). Re-alphabetize. Remove the seeming claim that this
is a complete list of built-in types.
Per question from Oskar Stenberg.
Discussion: https://postgr.es/m/HE1PR03MB2971DE2527ECE1E99D6C19A8F96E9@HE1PR03MB2971.eurprd03.prod.outlook.com
-rw-r--r-- | doc/src/sgml/xfunc.sgml | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index 8d403591939..365df66ee1d 100644 --- a/doc/src/sgml/xfunc.sgml +++ b/doc/src/sgml/xfunc.sgml @@ -2104,16 +2104,18 @@ memcpy(destination->data, buffer, 40); </para> <para> - <xref linkend="xfunc-c-type-table"/> specifies which C type - corresponds to which SQL type when writing a C-language function - that uses a built-in type of <productname>PostgreSQL</productname>. + <xref linkend="xfunc-c-type-table"/> shows the C types + corresponding to many of the built-in SQL data types + of <productname>PostgreSQL</productname>. The <quote>Defined In</quote> column gives the header file that needs to be included to get the type definition. (The actual definition might be in a different file that is included by the listed file. It is recommended that users stick to the defined interface.) Note that you should always include - <filename>postgres.h</filename> first in any source file, because - it declares a number of things that you will need anyway. + <filename>postgres.h</filename> first in any source file of server + code, because it declares a number of things that you will need + anyway, and because including other headers first can cause + portability issues. </para> <table tocentry="1" id="xfunc-c-type-table"> @@ -2172,28 +2174,28 @@ memcpy(destination->data, buffer, 40); <entry><filename>utils/date.h</filename></entry> </row> <row> - <entry><type>smallint</type> (<type>int2</type>)</entry> - <entry><type>int16</type></entry> - <entry><filename>postgres.h</filename></entry> + <entry><type>float4</type> (<type>real</type>)</entry> + <entry><type>float4</type></entry> + <entry><filename>postgres.h</filename></entry> </row> <row> - <entry><type>int2vector</type></entry> - <entry><type>int2vector*</type></entry> + <entry><type>float8</type> (<type>double precision</type>)</entry> + <entry><type>float8</type></entry> <entry><filename>postgres.h</filename></entry> </row> <row> - <entry><type>integer</type> (<type>int4</type>)</entry> - <entry><type>int32</type></entry> + <entry><type>int2</type> (<type>smallint</type>)</entry> + <entry><type>int16</type></entry> <entry><filename>postgres.h</filename></entry> </row> <row> - <entry><type>real</type> (<type>float4</type>)</entry> - <entry><type>float4*</type></entry> - <entry><filename>postgres.h</filename></entry> + <entry><type>int4</type> (<type>integer</type>)</entry> + <entry><type>int32</type></entry> + <entry><filename>postgres.h</filename></entry> </row> <row> - <entry><type>double precision</type> (<type>float8</type>)</entry> - <entry><type>float8*</type></entry> + <entry><type>int8</type> (<type>bigint</type>)</entry> + <entry><type>int64</type></entry> <entry><filename>postgres.h</filename></entry> </row> <row> @@ -2212,6 +2214,11 @@ memcpy(destination->data, buffer, 40); <entry><filename>postgres.h</filename></entry> </row> <row> + <entry><type>numeric</type></entry> + <entry><type>Numeric</type></entry> + <entry><filename>utils/numeric.h</filename></entry> + </row> + <row> <entry><type>oid</type></entry> <entry><type>Oid</type></entry> <entry><filename>postgres.h</filename></entry> @@ -2233,7 +2240,7 @@ memcpy(destination->data, buffer, 40); </row> <row> <entry><type>regproc</type></entry> - <entry><type>regproc</type></entry> + <entry><type>RegProcedure</type></entry> <entry><filename>postgres.h</filename></entry> </row> <row> @@ -2262,6 +2269,11 @@ memcpy(destination->data, buffer, 40); <entry><filename>datatype/timestamp.h</filename></entry> </row> <row> + <entry><type>timestamp with time zone</type></entry> + <entry><type>TimestampTz</type></entry> + <entry><filename>datatype/timestamp.h</filename></entry> + </row> + <row> <entry><type>varchar</type></entry> <entry><type>VarChar*</type></entry> <entry><filename>postgres.h</filename></entry> |