|
1 |
| -<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.497 2010/01/19 05:50:18 tgl Exp $ --> |
| 1 | +<!-- $PostgreSQL: pgsql/doc/src/sgml/func.sgml,v 1.498 2010/01/25 20:55:32 tgl Exp $ --> |
2 | 2 |
|
3 | 3 | <chapter id="functions">
|
4 | 4 | <title>Functions and Operators</title>
|
|
2620 | 2620 | <entry>Return Type</entry>
|
2621 | 2621 | <entry>Description</entry>
|
2622 | 2622 | <entry>Example</entry>
|
2623 |
| - <entry>Result</entry> |
| 2623 | + <entry>Result</entry> |
2624 | 2624 | </row>
|
2625 | 2625 | </thead>
|
2626 | 2626 |
|
|
2640 | 2640 | <entry><literal>\\Post'gres\000</literal></entry>
|
2641 | 2641 | </row>
|
2642 | 2642 |
|
2643 |
| - <row> |
2644 |
| - <entry><function>get_bit</function>(<parameter>string</parameter>, <parameter>offset</parameter>)</entry> |
2645 |
| - <entry><type>int</type></entry> |
2646 |
| - <entry> |
2647 |
| - Extract bit from string |
2648 |
| - <indexterm> |
2649 |
| - <primary>get_bit</primary> |
2650 |
| - </indexterm> |
2651 |
| - </entry> |
2652 |
| - <entry><literal>get_bit(E'Th\\000omas'::bytea, 45)</literal></entry> |
2653 |
| - <entry><literal>1</literal></entry> |
2654 |
| - </row> |
2655 |
| - |
2656 |
| - <row> |
2657 |
| - <entry><function>get_byte</function>(<parameter>string</parameter>, <parameter>offset</parameter>)</entry> |
2658 |
| - <entry><type>int</type></entry> |
2659 |
| - <entry> |
2660 |
| - Extract byte from string |
2661 |
| - <indexterm> |
2662 |
| - <primary>get_byte</primary> |
2663 |
| - </indexterm> |
2664 |
| - </entry> |
2665 |
| - <entry><literal>get_byte(E'Th\\000omas'::bytea, 4)</literal></entry> |
2666 |
| - <entry><literal>109</literal></entry> |
2667 |
| - </row> |
2668 |
| - |
2669 | 2643 | <row>
|
2670 | 2644 | <entry><literal><function>octet_length</function>(<parameter>string</parameter>)</literal></entry>
|
2671 | 2645 | <entry><type>int</type></entry>
|
|
2675 | 2649 | </row>
|
2676 | 2650 |
|
2677 | 2651 | <row>
|
2678 |
| - <entry><literal><function>position</function>(<parameter>substring</parameter> in <parameter>string</parameter>)</literal></entry> |
2679 |
| - <entry><type>int</type></entry> |
2680 |
| - <entry>Location of specified substring</entry> |
2681 |
| - <entry><literal>position(E'\\000om'::bytea in E'Th\\000omas'::bytea)</literal></entry> |
2682 |
| - <entry><literal>3</literal></entry> |
2683 |
| - </row> |
2684 |
| - |
2685 |
| - <row> |
2686 |
| - <entry><function>set_bit</function>(<parameter>string</parameter>, |
2687 |
| - <parameter>offset</parameter>, <parameter>newvalue</>)</entry> |
| 2652 | + <entry><literal><function>overlay</function>(<parameter>string</parameter> placing <parameter>string</parameter> from <type>int</type> <optional>for <type>int</type></optional>)</literal></entry> |
2688 | 2653 | <entry><type>bytea</type></entry>
|
2689 | 2654 | <entry>
|
2690 |
| - Set bit in string |
2691 |
| - <indexterm> |
2692 |
| - <primary>set_bit</primary> |
2693 |
| - </indexterm> |
| 2655 | + Replace substring |
2694 | 2656 | </entry>
|
2695 |
| - <entry><literal>set_bit(E'Th\\000omas'::bytea, 45, 0)</literal></entry> |
2696 |
| - <entry><literal>Th\000omAs</literal></entry> |
| 2657 | + <entry><literal>overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3)</literal></entry> |
| 2658 | + <entry><literal>T\\002\\003mas</literal></entry> |
2697 | 2659 | </row>
|
2698 | 2660 |
|
2699 | 2661 | <row>
|
2700 |
| - <entry><function>set_byte</function>(<parameter>string</parameter>, |
2701 |
| - <parameter>offset</parameter>, <parameter>newvalue</>)</entry> |
2702 |
| - <entry><type>bytea</type></entry> |
2703 |
| - <entry> |
2704 |
| - Set byte in string |
2705 |
| - <indexterm> |
2706 |
| - <primary>set_byte</primary> |
2707 |
| - </indexterm> |
2708 |
| - </entry> |
2709 |
| - <entry><literal>set_byte(E'Th\\000omas'::bytea, 4, 64)</literal></entry> |
2710 |
| - <entry><literal>Th\000o@as</literal></entry> |
| 2662 | + <entry><literal><function>position</function>(<parameter>substring</parameter> in <parameter>string</parameter>)</literal></entry> |
| 2663 | + <entry><type>int</type></entry> |
| 2664 | + <entry>Location of specified substring</entry> |
| 2665 | + <entry><literal>position(E'\\000om'::bytea in E'Th\\000omas'::bytea)</literal></entry> |
| 2666 | + <entry><literal>3</literal></entry> |
2711 | 2667 | </row>
|
2712 | 2668 |
|
2713 | 2669 | <row>
|
|
2784 | 2740 | </entry>
|
2785 | 2741 | <entry><type>bytea</type></entry>
|
2786 | 2742 | <entry>
|
2787 |
| - Decode binary string from <parameter>string</parameter> previously |
| 2743 | + Decode binary string from <parameter>string</parameter> previously |
2788 | 2744 | encoded with <function>encode</>. Parameter type is same as in <function>encode</>.
|
2789 | 2745 | </entry>
|
2790 | 2746 | <entry><literal>decode(E'123\\000456', 'escape')</literal></entry>
|
|
2805 | 2761 | <entry><literal>123\000456</literal></entry>
|
2806 | 2762 | </row>
|
2807 | 2763 |
|
| 2764 | + <row> |
| 2765 | + <entry> |
| 2766 | + <literal><function>get_bit</function>(<parameter>string</parameter>, <parameter>offset</parameter>)</literal> |
| 2767 | + </entry> |
| 2768 | + <entry><type>int</type></entry> |
| 2769 | + <entry> |
| 2770 | + Extract bit from string |
| 2771 | + <indexterm> |
| 2772 | + <primary>get_bit</primary> |
| 2773 | + </indexterm> |
| 2774 | + </entry> |
| 2775 | + <entry><literal>get_bit(E'Th\\000omas'::bytea, 45)</literal></entry> |
| 2776 | + <entry><literal>1</literal></entry> |
| 2777 | + </row> |
| 2778 | + |
| 2779 | + <row> |
| 2780 | + <entry> |
| 2781 | + <literal><function>get_byte</function>(<parameter>string</parameter>, <parameter>offset</parameter>)</literal> |
| 2782 | + </entry> |
| 2783 | + <entry><type>int</type></entry> |
| 2784 | + <entry> |
| 2785 | + Extract byte from string |
| 2786 | + <indexterm> |
| 2787 | + <primary>get_byte</primary> |
| 2788 | + </indexterm> |
| 2789 | + </entry> |
| 2790 | + <entry><literal>get_byte(E'Th\\000omas'::bytea, 4)</literal></entry> |
| 2791 | + <entry><literal>109</literal></entry> |
| 2792 | + </row> |
| 2793 | + |
2808 | 2794 | <row>
|
2809 | 2795 | <entry><literal><function>length</function>(<parameter>string</parameter>)</literal></entry>
|
2810 | 2796 | <entry><type>int</type></entry>
|
|
2834 | 2820 | <entry><literal>md5(E'Th\\000omas'::bytea)</literal></entry>
|
2835 | 2821 | <entry><literal>8ab2d3c9689aaf18 b4958c334c82d8b1</literal></entry>
|
2836 | 2822 | </row>
|
| 2823 | + |
| 2824 | + <row> |
| 2825 | + <entry> |
| 2826 | + <literal><function>set_bit</function>(<parameter>string</parameter>, |
| 2827 | + <parameter>offset</parameter>, <parameter>newvalue</>)</literal> |
| 2828 | + </entry> |
| 2829 | + <entry><type>bytea</type></entry> |
| 2830 | + <entry> |
| 2831 | + Set bit in string |
| 2832 | + <indexterm> |
| 2833 | + <primary>set_bit</primary> |
| 2834 | + </indexterm> |
| 2835 | + </entry> |
| 2836 | + <entry><literal>set_bit(E'Th\\000omas'::bytea, 45, 0)</literal></entry> |
| 2837 | + <entry><literal>Th\000omAs</literal></entry> |
| 2838 | + </row> |
| 2839 | + |
| 2840 | + <row> |
| 2841 | + <entry> |
| 2842 | + <literal><function>set_byte</function>(<parameter>string</parameter>, |
| 2843 | + <parameter>offset</parameter>, <parameter>newvalue</>)</literal> |
| 2844 | + </entry> |
| 2845 | + <entry><type>bytea</type></entry> |
| 2846 | + <entry> |
| 2847 | + Set byte in string |
| 2848 | + <indexterm> |
| 2849 | + <primary>set_byte</primary> |
| 2850 | + </indexterm> |
| 2851 | + </entry> |
| 2852 | + <entry><literal>set_byte(E'Th\\000omas'::bytea, 4, 64)</literal></entry> |
| 2853 | + <entry><literal>Th\000o@as</literal></entry> |
| 2854 | + </row> |
2837 | 2855 | </tbody>
|
2838 | 2856 | </tgroup>
|
2839 | 2857 | </table>
|
|
2934 | 2952 | <literal><function>bit_length</function></literal>,
|
2935 | 2953 | <literal><function>octet_length</function></literal>,
|
2936 | 2954 | <literal><function>position</function></literal>,
|
2937 |
| - <literal><function>substring</function></literal>. |
| 2955 | + <literal><function>substring</function></literal>, |
| 2956 | + <literal><function>overlay</function></literal>. |
| 2957 | + </para> |
| 2958 | + |
| 2959 | + <para> |
| 2960 | + The following functions work on bit strings as well as binary |
| 2961 | + strings: |
| 2962 | + <literal><function>get_bit</function></literal>, |
| 2963 | + <literal><function>set_bit</function></literal>. |
2938 | 2964 | </para>
|
2939 | 2965 |
|
2940 | 2966 | <para>
|
|
0 commit comments