PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Fast Forward | Next |
PostgreSQL �����û�����ĺ���ʹ�� SQL �� C ֮������Ա�д�� ͨ����Щ��������Խ���������(PL)�� ���������һ�ֹ���������д��һ�������� ��ô���ݿ��������û���κ��ڽ���֪ʶ��֪��ν����ú�����Դ�ı��ġ� ʵ������Щ�����ݸ�һ��֪����δ�����Щϸ�ڵľ������ �������ȿ����Լ������еķ������������ִ�еȵĹ�����Ҳ���Գ䵱PostgreSQL ��һ�����еı������ʵ��֮���"��ˮ"�����������һ�� C ���Ժ����� ���������һ�ֹ������������Ҫ��ʱ��װ�أ��������� C ����һ����
Ŀǰ�ڱ��� PostgreSQL �����������ֹ������Կ��ã� PL/pgSQL��Chapter 35���� PL/Tcl��Chapter 36���� PL/Perl��Chapter 37������ PL/Python��Chapter 38���� �û����Զ����������ԡ�����һ���µĹ������ԵĻ�����Ϣ�� Chapter 45 ����ܡ�
���м��ֶ���Ĺ�������û�а����ں��ķ����Appendix H ����������ҵ����ǵ���Ϣ��
�����Ҫʹ��ij�ֹ������ԣ���ô��������"��װ"��Ҫ���������ݿ�� ������Щ��װ�����ݿ� template1 ��Ĺ������Ի��Զ�����������ݿ��а�װ�� ������ݿ����Ա���Ծ����ĸ����ݿ����ʹ���������ԣ��Լ����Ծ���ȱʡʱ����ʹ����Щ���ԡ�
������Щ���ű��汾���������ԣ������ʹ�� createlang ��������װ���Զ������Լ�����ϸ���Լ����� ���磬Ҫ��װPL/pgSQL�� template1 ���ݿ��У�ʹ��
createlang plpgsql template1
�����������ֹ���װ�ķ���ֻ����������Щ createlang ����֪���Ŀͻ����ԡ�
�ֹ��Ĺ�������װ
һ�����������ǰ��ĸ����谲װ�����ݿ�����ȥ�ģ� ��Щ������������ݿⳬ���û�ִ�С� createlang ����ѳ��� step 1 ֮��Ķ��Զ����ˡ�
���DZ��뱻����Ͱ�װ�����Ծ���Ĺ������Ŀ�꣩���밲װ��һ�����ʵĿ�Ŀ¼�� �����õķ�����������װ�û������ C �����ķ�����һ���ġ��� Section 31.9.6�� ͨ�������Ծ����Ҫ�ⲿ�Ŀ��ṩʵ�ʵı���������棻�������������ô��Щ��Ҳ���밲װ��
���Ծ�������ṩһ��"��֤��"���������������麯�������Ƿ���ȷ�� ������ʵ��ִ���������������֤����������ô�� CREATE FUNCTION ���á� ���һ����֤�������ɾ���ṩ����ô���������������
CREATE FUNCTION validator_function_name(oid) RETURNS void AS 'path-to-shared-object' LANGUAGE C;
PL ���������������
CREATE [TRUSTED] [PROCEDURAL] LANGUAGE 'language-name' HANDLER handler_function_name [VALIDATOR validator_function_name] ;
��ѡ�Ĺؼ��� TRUSTED ����һ��û�г����û�Ȩ����ͨ���ݿ��û��ܷ�ʹ���������Դ��������ʹ��������̡� ��Ϊ PL ���������ݿ����ڲ�ִ�У� ����TRUSTED��־Ӧ��ֻ��������Щ������������ݿ�������ڲ����ļ�ϵͳ�����ԡ� ����PL/pgSQL��PL/Tcl�� PL/Perl�Լ� PL/Python������Ϊ�ǿ��ŵġ� PL/TclU��PL/PerlU���� PL/PythonU ����Ƴ��ṩ���Ĺ��ܵأ������Ӧ�ñ��Ϊ���ŵġ�
Example 34-1 ��ʾ���ֹ�������ΰ�װ PL/pgSQL ���ԡ�
Example 34-1. �ֹ���װ PL/pgSQL
���������������ݿ��������ҵ����� PL/pgSQL���Եĵ��þ�������Ĺ������Ŀ�꣩��
CREATE FUNCTION plpgsql_call_handler () RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C;
PL/pgSQL ��һ����֤���������������ǻ�Ҫ��������
CREATE FUNCTION plpgsql_validator(oid) RETURNS void AS '$libdir/plpgsql' LANGUAGE C;
���������
CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler VALIDATOR plpgsql_validator;
������ǰ��������ĺ���Ӧ��Ϊ��Щ�������������� plpgsql �ĺ����������̱����õ�ʱ��ʹ�á�
��ȱʡ�� PostgreSQL ��װ�PL/pgSQL ���Եľ������������װ�� "library" Ŀ¼��ȥ�ġ���������� Tcl ֧�֣���ô PL/Tcl �� PL/TclU �ľ��Ҳ����������װ��ͬһ�� δ֪�����ƵĻ��У���������� Perl����ôPL/Perl �� PL/PerlU �������õ������Ͱ�װ�� ��������� Python����������װ PL/PythonU��