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>
|
<entry>signed two-byte integer</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><type>smallserial</type></entry>
|
||||||
|
<entry><type>serial2</type></entry>
|
||||||
|
<entry>autoincrementing two-byte integer</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry><type>serial</type></entry>
|
<entry><type>serial</type></entry>
|
||||||
<entry><type>serial4</type></entry>
|
<entry><type>serial4</type></entry>
|
||||||
@ -368,6 +374,13 @@
|
|||||||
<entry>15 decimal digits precision</entry>
|
<entry>15 decimal digits precision</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><type>smallserial</type></entry>
|
||||||
|
<entry>2 bytes</entry>
|
||||||
|
<entry>small autoincrementing integer</entry>
|
||||||
|
<entry>1 to 32767</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry><type>serial</></entry>
|
<entry><type>serial</></entry>
|
||||||
<entry>4 bytes</entry>
|
<entry>4 bytes</entry>
|
||||||
@ -742,6 +755,10 @@ NUMERIC
|
|||||||
<sect2 id="datatype-serial">
|
<sect2 id="datatype-serial">
|
||||||
<title>Serial Types</title>
|
<title>Serial Types</title>
|
||||||
|
|
||||||
|
<indexterm zone="datatype-serial">
|
||||||
|
<primary>smallserial</primary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
<indexterm zone="datatype-serial">
|
<indexterm zone="datatype-serial">
|
||||||
<primary>serial</primary>
|
<primary>serial</primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
@ -750,6 +767,10 @@ NUMERIC
|
|||||||
<primary>bigserial</primary>
|
<primary>bigserial</primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
|
<indexterm zone="datatype-serial">
|
||||||
|
<primary>serial2</primary>
|
||||||
|
</indexterm>
|
||||||
|
|
||||||
<indexterm zone="datatype-serial">
|
<indexterm zone="datatype-serial">
|
||||||
<primary>serial4</primary>
|
<primary>serial4</primary>
|
||||||
</indexterm>
|
</indexterm>
|
||||||
@ -769,8 +790,8 @@ NUMERIC
|
|||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The data types <type>serial</type> and <type>bigserial</type>
|
The data types <type>smallserial</type>, <type>serial</type> and
|
||||||
are not true types, but merely
|
<type>bigserial</type> are not true types, but merely
|
||||||
a notational convenience for creating unique identifier columns
|
a notational convenience for creating unique identifier columns
|
||||||
(similar to the <literal>AUTO_INCREMENT</literal> property
|
(similar to the <literal>AUTO_INCREMENT</literal> property
|
||||||
supported by some other databases). In the current
|
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>
|
the same way, except that they create a <type>bigint</type>
|
||||||
column. <type>bigserial</type> should be used if you anticipate
|
column. <type>bigserial</type> should be used if you anticipate
|
||||||
the use of more than 2<superscript>31</> identifiers over the
|
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>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
@ -844,6 +844,11 @@ do
|
|||||||
<entry><type>double</type></entry>
|
<entry><type>double</type></entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry><type>smallserial</type></entry>
|
||||||
|
<entry><type>short</type></entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
<entry><type>serial</type></entry>
|
<entry><type>serial</type></entry>
|
||||||
<entry><type>int</type></entry>
|
<entry><type>int</type></entry>
|
||||||
|
@ -13366,7 +13366,7 @@ SELECT pg_type_is_visible('myschema.widget'::regtype);
|
|||||||
<row>
|
<row>
|
||||||
<entry><literal><function>pg_get_serial_sequence(<parameter>table_name</parameter>, <parameter>column_name</parameter>)</function></literal></entry>
|
<entry><literal><function>pg_get_serial_sequence(<parameter>table_name</parameter>, <parameter>column_name</parameter>)</function></literal></entry>
|
||||||
<entry><type>text</type></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>
|
uses</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
|
@ -307,7 +307,14 @@ transformColumnDefinition(CreateStmtContext *cxt, ColumnDef *column)
|
|||||||
{
|
{
|
||||||
char *typname = strVal(linitial(column->typeName->names));
|
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)
|
strcmp(typname, "serial4") == 0)
|
||||||
{
|
{
|
||||||
is_serial = true;
|
is_serial = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user