|
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