[ https://issues.apache.org/jira/browse/HAWQ-1216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15796691#comment-15796691 ]
ASF GitHub Bot commented on HAWQ-1216: -------------------------------------- Github user dyozie commented on a diff in the pull request: https://github.com/apache/incubator-hawq-docs/pull/77#discussion_r94511905 --- Diff: plext/using_plpython.html.md.erb --- @@ -2,374 +2,608 @@ title: Using PL/Python in HAWQ --- -This section contains an overview of the HAWQ PL/Python language extension. +This section provides an overview of the HAWQ PL/Python procedural language extension. ## <a id="abouthawqplpython"></a>About HAWQ PL/Python -PL/Python is a loadable procedural language. With the HAWQ PL/Python extension, you can write HAWQ user-defined functions in Python that take advantage of Python features and modules to quickly build robust database applications. +PL/Python is embedded in your HAWQ product distribution or within your HAWQ build if you chose to enable it as a build option. + +With the HAWQ PL/Python extension, you can write user-defined functions in Python that take advantage of Python features and modules, enabling you to quickly build robust HAWQ database applications. HAWQ uses the system Python installation. ### <a id="hawqlimitations"></a>HAWQ PL/Python Limitations -- HAWQ does not support PL/Python triggers. +- HAWQ does not support PL/Python trigger functions. - PL/Python is available only as a HAWQ untrusted language. ## <a id="enableplpython"></a>Enabling and Removing PL/Python Support -To use PL/Python in HAWQ, you must either use a pre-compiled version of HAWQ that includes PL/Python or specify PL/Python as a build option when compiling HAWQ. +To use PL/Python in HAWQ, you must either install a binary version of HAWQ that includes PL/Python or specify PL/Python as a build option when compiling HAWQ from source. + +PL/Python user-defined functions (UDFs) are registered at the database level. To create and run a PL/Python UDF on a database, you must register the PL/Python language with the database. + +On every database to which you want to install and enable PL/Python: + +1. Connect to the database using the `psql` client: + + ``` shell + $ psql -d <dbname> + ``` + + Replace \<dbname\> with the name of the target database. + +2. Run the following SQL command to register the PL/Python procedural language; you must be a database superuser to register new languages: + + ``` sql + dbname=# CREATE LANGUAGE plpythonu; + ``` -To create and run a PL/Python user-defined function (UDF) in a database, you must register the PL/Python language with the database. On every database where you want to install and enable PL/Python, connect to the database using the `psql` client. + **Note**: `plpythonu` is installed as an *untrusted* language; it offers no way of restricting what you can program in UDFs created with the language. --- End diff -- Given the definition, it seems like HAWQ treats plpythonu as a "trusted" language. Meaning, it's permitted to do what it likes. I'd expect an untrusted language to have restrictions applied to it. > PL/Python doc page - validate and enhance info > ---------------------------------------------- > > Key: HAWQ-1216 > URL: https://issues.apache.org/jira/browse/HAWQ-1216 > Project: Apache HAWQ > Issue Type: Improvement > Components: Documentation > Reporter: Lisa Owen > Assignee: David Yozie > Priority: Minor > > PL/Python docs section: > - review and validate current content > - update module installation instructions - need to be root to install > modules to system python dirs > - make sure examples run and are relevant > - develop new examples as appropriate -- This message was sent by Atlassian JIRA (v6.3.4#6332)