Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
69cf3356
Commit
69cf3356
authored
Aug 24, 2000
by
Tom Lane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Documentation updates to reflect TOAST and new-style fmgr.
parent
0813fcbc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
20 deletions
+15
-20
doc/src/sgml/trigger.sgml
doc/src/sgml/trigger.sgml
+4
-3
doc/src/sgml/xtypes.sgml
doc/src/sgml/xtypes.sgml
+11
-17
No files found.
doc/src/sgml/trigger.sgml
View file @
69cf3356
...
...
@@ -509,12 +509,13 @@ trigf(PG_FUNCTION_ARGS)
</para>
<para>
Now, compile and
create table ttest (x int4):
Now, compile and create the trigger function:
<programlisting>
create function trigf () returns opaque as
'...path_to_so' language 'c';
'...path_to_so' language 'newC';
create table ttest (x int4);
</programlisting>
<programlisting>
...
...
doc/src/sgml/xtypes.sgml
View file @
69cf3356
...
...
@@ -55,7 +55,7 @@ complex_in(char *str)
double x, y;
Complex *result;
if (sscanf(str, " ( %lf , %lf )", &x, &y) != 2) {
elog(
NOTICE, "complex_in: error in parsing
elog(
ERROR, "complex_in: error in parsing %s", str);
return NULL;
}
result = (Complex *)palloc(sizeof(Complex));
...
...
@@ -138,22 +138,16 @@ CREATE TYPE complex (
<title>Large Objects</title>
<para>
The types discussed to this point are all "small"
objects -- that is, they are smaller than 8KB in size.
<note>
<para>
1024 longwords == 8192 bytes. In fact, the type must be considerably smaller than 8192 bytes,
since the <productname>Postgres</productname> tuple
and page overhead must also fit into this 8KB limitation.
The actual value that fits depends on the machine architecture.
</para>
</note>
If you require a larger type for something like a document
retrieval system or for storing bitmaps, you will
need to use the <productname>Postgres</productname> large object
interface, or will need to recompile the
<productname>Postgres</productname> backend to use internal
storage blocks greater than 8kbytes..
If the values of your datatype might exceed a few hundred bytes in
size (in internal form), you should be careful to mark them TOASTable.
To do this, the internal representation must follow the standard
layout for variable-length data: the first four bytes must be an int32
containing the total length in bytes of the datum (including itself).
Then, all your functions that accept values of the type must be careful
to call pg_detoast_datum() on the supplied values --- after checking
that the value is not NULL, if your function is not strict. Finally,
select the appropriate storage option when giving the CREATE TYPE
command.
</para>
</sect2>
</sect1>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment