mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Add bit_count SQL function
This function for bit and bytea counts the set bits in the bit or byte string. Internally, we use the existing popcount functionality. For the name, after some discussion, we settled on bit_count, which also exists with this meaning in MySQL, Java, and Python. Author: David Fetter <david@fetter.org> Discussion: https://www.postgresql.org/message-id/flat/20201230105535.GJ13234@fetter.org
This commit is contained in:
@ -4010,6 +4010,28 @@ SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three');
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry role="func_table_entry"><para role="func_signature">
|
||||
<indexterm>
|
||||
<primary>bit_count</primary>
|
||||
</indexterm>
|
||||
<indexterm>
|
||||
<primary>popcount</primary>
|
||||
<see>bit_count</see>
|
||||
</indexterm>
|
||||
<function>bit_count</function> ( <parameter>bytes</parameter> <type>bytea</type> )
|
||||
<returnvalue>bigint</returnvalue>
|
||||
</para>
|
||||
<para>
|
||||
Returns the number of bits set in the binary string (also known as
|
||||
<quote>popcount</quote>).
|
||||
</para>
|
||||
<para>
|
||||
<literal>bit_count('\x1234567890'::bytea)</literal>
|
||||
<returnvalue>31</returnvalue>
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="func_table_entry"><para role="func_signature">
|
||||
<indexterm>
|
||||
@ -4714,6 +4736,24 @@ SELECT format('Testing %3$s, %2$s, %s', 'one', 'two', 'three');
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry role="func_table_entry"><para role="func_signature">
|
||||
<indexterm>
|
||||
<primary>bit_count</primary>
|
||||
</indexterm>
|
||||
<function>bit_count</function> ( <type>bit</type> )
|
||||
<returnvalue>bigint</returnvalue>
|
||||
</para>
|
||||
<para>
|
||||
Returns the number of bits set in the bit string (also known as
|
||||
<quote>popcount</quote>).
|
||||
</para>
|
||||
<para>
|
||||
<literal>bit_count(B'10111')</literal>
|
||||
<returnvalue>4</returnvalue>
|
||||
</para></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry role="func_table_entry"><para role="func_signature">
|
||||
<indexterm>
|
||||
|
Reference in New Issue
Block a user