mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-21 08:29:39 +08:00
Add smallserial pseudotype.
This is just like serial and bigserial, except it generates an int2 column rather than int4 or int8. Mike Pultz, reviewed by Brar Piening and Josh Kupershmidt
This commit is contained in:
parent
7095003cbe
commit
61307dccc5
@ -198,6 +198,12 @@
|
||||
<entry>signed two-byte integer</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><type>smallserial</type></entry>
|
||||
<entry><type>serial2</type></entry>
|
||||
<entry>autoincrementing two-byte integer</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><type>serial</type></entry>
|
||||
<entry><type>serial4</type></entry>
|
||||
@ -368,6 +374,13 @@
|
||||
<entry>15 decimal digits precision</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><type>smallserial</type></entry>
|
||||
<entry>2 bytes</entry>
|
||||
<entry>small autoincrementing integer</entry>
|
||||
<entry>1 to 32767</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><type>serial</></entry>
|
||||
<entry>4 bytes</entry>
|
||||
@ -742,6 +755,10 @@ NUMERIC
|
||||
<sect2 id="datatype-serial">
|
||||
<title>Serial Types</title>
|
||||
|
||||
<indexterm zone="datatype-serial">
|
||||
<primary>smallserial</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="datatype-serial">
|
||||
<primary>serial</primary>
|
||||
</indexterm>
|
||||
@ -750,6 +767,10 @@ NUMERIC
|
||||
<primary>bigserial</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="datatype-serial">
|
||||
<primary>serial2</primary>
|
||||
</indexterm>
|
||||
|
||||
<indexterm zone="datatype-serial">
|
||||
<primary>serial4</primary>
|
||||
</indexterm>
|
||||
@ -769,8 +790,8 @@ NUMERIC
|
||||
</indexterm>
|
||||
|
||||
<para>
|
||||
The data types <type>serial</type> and <type>bigserial</type>
|
||||
are not true types, but merely
|
||||
The data types <type>smallserial</type>, <type>serial</type> and
|
||||
<type>bigserial</type> are not true types, but merely
|
||||
a notational convenience for creating unique identifier columns
|
||||
(similar to the <literal>AUTO_INCREMENT</literal> property
|
||||
supported by some other databases). In the current
|
||||
@ -828,7 +849,9 @@ ALTER SEQUENCE <replaceable class="parameter">tablename</replaceable>_<replaceab
|
||||
the same way, except that they create a <type>bigint</type>
|
||||
column. <type>bigserial</type> should be used if you anticipate
|
||||
the use of more than 2<superscript>31</> identifiers over the
|
||||
lifetime of the table.
|
||||
lifetime of the table. The type names <type>smallserial</type> and
|
||||
<type>serial2</type> also work the same way, execpt that they
|
||||
create a <type>smallint</type> column.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
|
@ -844,6 +844,11 @@ do
|
||||
<entry><type>double</type></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><type>smallserial</type></entry>
|
||||
<entry><type>short</type></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry><type>serial</type></entry>
|
||||
<entry><type>int</type></entry>
|
||||
|
@ -13366,7 +13366,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
||||
<row>
|
||||
<entry><literal><function>pg_get_serial_sequence(<parameter>table_name</parameter>, <parameter>column_name</parameter>)</function></literal></entry>
|
||||
<entry><type>text</type></entry>
|
||||
<entry>get name of the sequence that a <type>serial</type> or <type>bigserial</type> column
|
||||
<entry>get name of the sequence that a <type>serial</type>, <type>smallserial</type> or <type>bigserial</type> column
|
||||
uses</entry>
|
||||
</row>
|
||||
<row>
|
||||
|
@ -307,7 +307,14 @@ transformColumnDefinition(CreateStmtContext *cxt, ColumnDef *column)
|
||||
{
|
||||
char *typname = strVal(linitial(column->typeName->names));
|
||||
|
||||
if (strcmp(typname, "serial") == 0 ||
|
||||
if (strcmp(typname, "smallserial") == 0 ||
|
||||
strcmp(typname, "serial2") == 0)
|
||||
{
|
||||
is_serial = true;
|
||||
column->typeName->names = NIL;
|
||||
column->typeName->typeOid = INT2OID;
|
||||
}
|
||||
else if (strcmp(typname, "serial") == 0 ||
|
||||
strcmp(typname, "serial4") == 0)
|
||||
{
|
||||
is_serial = true;
|
||||
|
Loading…
Reference in New Issue
Block a user