From 8e8aaa843c091961407707bc0764b91d14c36a09 Mon Sep 17 00:00:00 2001 From: Thomas Ubensee <34603111+tomuben@users.noreply.github.com> Date: Fri, 1 Nov 2024 09:50:15 -0300 Subject: [PATCH] Removed `fresh install section` Added Python2 --- .../check_rollback_7.1.30_script.yml | 74 ++++++++++--------- .../workflows/scripts/install_python2_udf.sql | 10 +++ .github/workflows/scripts/install_r_udf.sql | 1 + ...uct_alter_system_command_before_update.sql | 9 ++- ...stem_command_from_downloaded_container.sql | 48 ------------ .../resources/install_slc_v6.0.0_on_db.sh | 39 ---------- doc/user_guide/resources/pre_update_check.sql | 6 +- ...use_R3_and_Python2_on_7.1.30_and_above.md} | 46 ++++-------- doc/user_guide/user_guide.md | 2 +- 9 files changed, 77 insertions(+), 158 deletions(-) create mode 100644 .github/workflows/scripts/install_python2_udf.sql delete mode 100644 doc/user_guide/resources/construct_alter_system_command_from_downloaded_container.sql delete mode 100644 doc/user_guide/resources/install_slc_v6.0.0_on_db.sh rename doc/user_guide/{use_R3_on_7.1.30_and_above.md => use_R3_and_Python2_on_7.1.30_and_above.md} (60%) diff --git a/.github/workflows/check_rollback_7.1.30_script.yml b/.github/workflows/check_rollback_7.1.30_script.yml index 92830806..861e2928 100644 --- a/.github/workflows/check_rollback_7.1.30_script.yml +++ b/.github/workflows/check_rollback_7.1.30_script.yml @@ -9,6 +9,22 @@ on: jobs: Check: runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + include: + - db-version: "7.1.29" + expected-original-alter-system-parameter: "ALTER SYSTEM SET SCRIPT_LANGUAGES='R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3'" + expected-new-alter-system-command: "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/exaudf/exaudfclient_py3';" + support-python2: "no" + - db-version: "7.1.19" + expected-original-alter-system-parameter: "ALTER SYSTEM SET SCRIPT_LANGUAGES='PYTHON=builtin_python R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3';" + expected-new-alter-system-command: "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 PYTHON=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R/?lang=python#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R/exaudf/exaudfclient R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R/exaudf/exaudfclient_py3';" + support-python2: "yes" + - db-version: "7.1.6" + expected-original-alter-system-parameter: "ALTER SYSTEM SET SCRIPT_LANGUAGES='PYTHON=builtin_python R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3';" + expected-new-alter-system-command: "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 PYTHON=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-release-standard-exasol-7.1.0-1.1.0/?lang=python#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-release-standard-exasol-7.1.0-1.1.0/exaudf/exaudfclient R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-release-standard-exasol-7.1.0-1.1.0/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-release-standard-exasol-7.1.0-1.1.0/exaudf/exaudfclient_py3';" + support-python2: "yes" steps: - uses: actions/checkout@v4 with: @@ -21,7 +37,7 @@ jobs: python-version: "3.10" poetry-version: '1.8.2' - name: Start ITDE - run: poetry run itde spawn-test-environment --environment-name exasol_test --database-port-forward 8888 --bucketfs-port-forward 6583 --docker-db-image-version=7.1.29; + run: poetry run itde spawn-test-environment --environment-name exasol_test --database-port-forward 8888 --bucketfs-port-forward 6583 --docker-db-image-version=${{ matrix.db-version }}; - name: Install dependencies run: sudo apt update && sudo apt install -y perl default-jre - name: Install EXAPlus @@ -32,48 +48,40 @@ jobs: - name: Check if get_original_script_languages_parameters.sql works run: | RESULT=`exaplus -x -q -c localhost:8888 -u sys -p exasol -f ./get_original_script_languages_parameter.sql` - echo "$RESULT" | grep "ALTER SYSTEM SET SCRIPT_LANGUAGES='R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3'" || (echo SCRIPT_LANGUAGES parameter not as expected && exit 1) - working-directory: doc/user_guide/resources - - name: Check if get_original_script_languages_parameters.sql works - run: | - RESULT=`exaplus -x -q -c localhost:8888 -u sys -p exasol -f ./get_original_script_languages_parameter.sql` - echo "$RESULT" | grep "ALTER SYSTEM SET SCRIPT_LANGUAGES='R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3'" || (echo SCRIPT_LANGUAGES parameter not as expected && exit 1) + echo "$RESULT" | grep ${{ matrix.expected-original-alter-system-parameter }} || (echo SCRIPT_LANGUAGES parameter not as expected && exit 1) working-directory: doc/user_guide/resources - name: Install a simple R UDF run: | exaplus -x -q -c localhost:8888 -u sys -p exasol -f install_r_udf.sql exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "SELECT TEST.R_DEMO();" working-directory: .github/workflows/scripts - - name: Check if pre_update_check.sql works + - name: Install a simple Python2 UDF + if: ${{ matrix.support-python2=='yes' }} + run: | + exaplus -x -q -c localhost:8888 -u sys -p exasol -f install_python2_udf.sql + exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "SELECT TEST.TEST_PYTHON_VERSION();" + working-directory: .github/workflows/scripts + - name: Check if pre_update_check.sql works for R only + if: ${{ matrix.support-python2=='yes' }} run: | RESULT=`exaplus -x -q -c localhost:8888 -u sys -p exasol -f ./pre_update_check.sql` - echo "$RESULT" | grep "You have 1 UDFs using the pre-shipped R" + echo "$RESULT" | grep "You have 1 UDFs using the pre-shipped R/Python2" working-directory: doc/user_guide/resources - - name: Check if construct_alter_system_command_before_update.sql works + - name: Check if pre_update_check.sql works for R and Python2 + if: ${{ matrix.support-python2=='yes' }} run: | - RESULT=`exaplus -c localhost:8888 -u sys -p exasol -f ./construct_alter_system_command_before_update.sql` - echo "$RESULT" | tr -d '\n' | grep "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/exaudf/exaudfclient_py3';" - exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/exaudf/exaudfclient_py3';" - exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "SELECT TEST.R_DEMO();" - working-directory: doc/user_guide/resources - - name: Run Skript - run: bash install_slc_v6.0.0_on_db.sh localhost 6583 write default HTTP + RESULT=`exaplus -x -q -c localhost:8888 -u sys -p exasol -f ./pre_update_check.sql` + echo "$RESULT" | grep "You have 2 UDFs using the pre-shipped R/Python2" working-directory: doc/user_guide/resources - - name: Check if construct_alter_system_command_from_downloaded.sql works + - name: Run construct_alter_system_command_before_update.sql run: | - sed -i 's//bfsdefault/g' construct_alter_system_command_from_downloaded_container.sql - sed -i 's//default/g' construct_alter_system_command_from_downloaded_container.sql - sed -i 's///g' construct_alter_system_command_from_downloaded_container.sql - sed -i 's//standard-EXASOL-7.1.0_release\.tar\.gz/g' construct_alter_system_command_from_downloaded_container.sql - echo babla1 - RESULT=`exaplus -q -c localhost:8888 -u sys -p exasol -f ./construct_alter_system_command_from_downloaded_container.sql` - echo babla2 - echo "$RESULT" - echo blabla2.1 - echo "$RESULT" | tr -d '\n' | grep "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default//standard-EXASOL-7.1.0_release.tar.gz/?lang=r#/buckets/bfsdefault/default//standard-EXASOL-7.1.0_release.tar.gz/exaudf/exaudfclient_py3';" - echo babla3 - exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default//standard-EXASOL-7.1.0_release.tar.gz/?lang=r#/buckets/bfsdefault/default//standard-EXASOL-7.1.0_release.tar.gz/exaudf/exaudfclient_py3';" - echo babla4 - exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "SELECT TEST.R_DEMO();" - echo babla5 + RESULT=`exaplus -c localhost:8888 -u sys -p exasol -f ./construct_alter_system_command_before_update.sql` + echo "$RESULT" | tr -d '\n' | grep "${{ matrix.expected-new-alter-system-command }}" || (echo ALTER SYSTEM command not as expected && exit 1) + exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "${{ matrix.expected-new-alter-system-command }}" working-directory: doc/user_guide/resources + - name: Test if R UDF still works + run: exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "SELECT TEST.R_DEMO();" + - name: Test if Python2 UDF still works + if: ${{ matrix.support-python2=='yes' }} + run: exaplus -x -q -c localhost:8888 -u sys -p exasol -sql "SELECT TEST.TEST_PYTHON_VERSION();" + diff --git a/.github/workflows/scripts/install_python2_udf.sql b/.github/workflows/scripts/install_python2_udf.sql new file mode 100644 index 00000000..08adedfb --- /dev/null +++ b/.github/workflows/scripts/install_python2_udf.sql @@ -0,0 +1,10 @@ +CREATE SCHEMA IF NOT EXISTS TEST; +OPEN SCHEMA TEST; +--/ + +CREATE OR REPLACE PYTHON SET SCRIPT "TEST_PYTHON_VERSION" ("i" DECIMAL(18,0)) EMITS ("O" VARCHAR(2000000) UTF8) AS +import sys +def run(ctx): + ctx.emit(sys.version) +/ + diff --git a/.github/workflows/scripts/install_r_udf.sql b/.github/workflows/scripts/install_r_udf.sql index cb63d1f6..69fb0415 100644 --- a/.github/workflows/scripts/install_r_udf.sql +++ b/.github/workflows/scripts/install_r_udf.sql @@ -1,4 +1,5 @@ CREATE SCHEMA IF NOT EXISTS TEST; +OPEN SCHEMA TEST; --/ CREATE OR REPLACE R SCALAR SCRIPT TEST.R_DEMO() RETURNS VARCHAR(2000) AS diff --git a/doc/user_guide/resources/construct_alter_system_command_before_update.sql b/doc/user_guide/resources/construct_alter_system_command_before_update.sql index 25acd9df..96518749 100644 --- a/doc/user_guide/resources/construct_alter_system_command_before_update.sql +++ b/doc/user_guide/resources/construct_alter_system_command_before_update.sql @@ -46,11 +46,18 @@ new_alias_content as ( join parsed_lang_pairs on true where alias_content='builtin_r' union all + select + alias_name, + 'localzmq+protobuf:///bfsdefault/default/EXAClusterOS/' || container_name || '/?lang=python#/buckets/bfsdefault/default/EXAClusterOS/' || container_name || '/exaudf/exaudfclient' as alias_content + from container_name + join parsed_lang_pairs on true + where alias_content='builtin_python' + union all select alias_name, alias_content from parsed_lang_pairs - where alias_content<>'builtin_r' + where alias_content<>'builtin_r' and alias_content<>'builtin_python' ), new_system_value as ( select GROUP_CONCAT(alias_name || '=' || alias_content SEPARATOR ' ') as new_system_value diff --git a/doc/user_guide/resources/construct_alter_system_command_from_downloaded_container.sql b/doc/user_guide/resources/construct_alter_system_command_from_downloaded_container.sql deleted file mode 100644 index 9193d5e3..00000000 --- a/doc/user_guide/resources/construct_alter_system_command_from_downloaded_container.sql +++ /dev/null @@ -1,48 +0,0 @@ -with minor_version as ( - select CAST(SUBSTR(PARAM_VALUE,INSTR(PARAM_VALUE,'.',-1,1)+1) as INT) as minor_version - from EXA_METADATA - where PARAM_NAME='databaseProductVersion' and PARAM_VALUE like '7.1%' -), -container_path as ( - select '///' as container_path -), -num_of_pairs as( - SELECT - p.system_value, - length(p.system_value)-length(replace(p.system_value, '=')) as num_of_pairs - FROM exa_parameters p - WHERE p.parameter_name in ('SCRIPT_LANGUAGES') -), -lang_pairs as( - SELECT - regexp_substr(nop.system_value, '[^ =]+=[^ ]+', 1, level) as pair_val, - nop.system_value - FROM num_of_pairs nop - connect by level <= nop.num_of_pairs -), -parsed_lang_pairs as( - SELECT - instr(lp.pair_val, '=') as eq_pos, - substr(lp.pair_val, 1, local.eq_pos-1) as alias_name, - substr(lp.pair_val, local.eq_pos + 1, length(lp.pair_val) - local.eq_pos) as alias_content - FROM lang_pairs lp -), -new_alias_content as ( - select - alias_name, - 'localzmq+protobuf:///' || container_path || '/?lang=r#/buckets/' || container_path || '/exaudf/exaudfclient_py3' as alias_content - from container_path - join parsed_lang_pairs on true - where alias_content='builtin_r' - union all - select - alias_name, - alias_content - from parsed_lang_pairs - where alias_content<>'builtin_r' -), -new_system_value as ( - select GROUP_CONCAT(alias_name || '=' || alias_content SEPARATOR ' ') as new_system_value - from new_alias_content -) -select 'ALTER SYSTEM SET SCRIPT_LANGUAGES=''' || new_system_value || ''';' as command_text from new_system_value; \ No newline at end of file diff --git a/doc/user_guide/resources/install_slc_v6.0.0_on_db.sh b/doc/user_guide/resources/install_slc_v6.0.0_on_db.sh deleted file mode 100644 index 6f8cdc93..00000000 --- a/doc/user_guide/resources/install_slc_v6.0.0_on_db.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -curl --help &>/dev/null || (echo This script requires `curl` command. && exit 1) - -if [ $# -lt 5 ]; then - me=$(basename "$0") - echo "Usage: $me BucketFSHost BucketFSPort BucketFSWritePassword BucketName HTTP/HTTPS" - exit 1 -fi - -TMPDIR=`mktemp -d` -trap 'rm -rf "$TMPDIR"' EXIT -pushd $TMPDIR &>/dev/null -curl -s -LO "https://github.com/exasol/script-languages-release/releases/download/6.0.0/standard-EXASOL-7.1.0_release.tar.gz" -curl -s -LO "https://github.com/exasol/script-languages-release/releases/download/6.0.0/standard-EXASOL-7.1.0_release.tar.gz.sha512sum" -sed -i 's/standard-EXASOL-7.1.0-release-VYP23K363DK7WSX66BHZKSO5JFUOIZJMEGFY3LOJ7LTR6KH7VSUA\.tar\.gz/standard-EXASOL-7.1.0_release\.tar\.gz/g' standard-EXASOL-7.1.0_release.tar.gz.sha512sum -sha512sum --quiet --strict -c standard-EXASOL-7.1.0_release.tar.gz.sha512sum || (echo Checksum of download container does not match. && exit 1) - -local_container_file="$TMPDIR/standard-EXASOL-7.1.0_release.tar.gz" -bucketfs_host=$1 -bucketfs_port=$2 -write_password=$3 -bucket_name=$4 -protocol=$5 # HTTP or HTTPS -path_in_bucket="" - - -container_file_in_bucket="standard-EXASOL-7.1.0_release.tar.gz" - -curl --silent -vkX PUT -T "$local_container_file" "$protocol://w:$write_password@$bucketfs_host:$bucketfs_port/$bucket_name/$path_in_bucket$container_file_in_bucket" - -echo Upload completed. -echo The file was uploaded to \""$protocol"://"$bucketfs_host":"$bucketfs_port"/"$bucket_name"/"$path_in_bucket""$container_file_in_bucket"\" - -popd &>/dev/null -rm -rf $TMPDIR \ No newline at end of file diff --git a/doc/user_guide/resources/pre_update_check.sql b/doc/user_guide/resources/pre_update_check.sql index b9e88ce0..29d19a9d 100644 --- a/doc/user_guide/resources/pre_update_check.sql +++ b/doc/user_guide/resources/pre_update_check.sql @@ -29,8 +29,8 @@ num_of_pairs as( ) select case - when count(*) = 0 then 'You are not using the pre-shipped R in UDFs.' - else 'You have '||to_char(count(*))||' UDFs using the pre-shipped R: + when count(*) = 0 then 'You are not using the pre-shipped R/Python2 in UDFs.' + else 'You have '||to_char(count(*))||' UDFs using the pre-shipped R/Python2: ' || GROUP_CONCAT('"'||s.script_schema||'"."'||s.script_name||'"' separator ' ') @@ -41,5 +41,5 @@ FROM on upper(p.alias_name)=s.script_language WHERE 1=1 - and p.alias_content = 'builtin_r' + and (p.alias_content = 'builtin_r' or p.alias_content = 'builtin_python') ; diff --git a/doc/user_guide/use_R3_on_7.1.30_and_above.md b/doc/user_guide/use_R3_and_Python2_on_7.1.30_and_above.md similarity index 60% rename from doc/user_guide/use_R3_on_7.1.30_and_above.md rename to doc/user_guide/use_R3_and_Python2_on_7.1.30_and_above.md index e2d76adf..4c136952 100644 --- a/doc/user_guide/use_R3_on_7.1.30_and_above.md +++ b/doc/user_guide/use_R3_and_Python2_on_7.1.30_and_above.md @@ -9,14 +9,14 @@ In case, customers want to use the previous Script-Languages-Container [6.0.0](h ## Pre-update Check -ⓘ This script will detect most occurences of R usage in UDFs. We cannot guarantee that all occurences are detected. +ⓘ This script will detect most occurrences of R and Python2 usage in UDFs. We cannot guarantee that all occurrences are detected. See [pre_update_check.sql](./resources/pre_update_check.sql) ## Update From 7.1.x To 7.1.30 or newer -After the Script-Languages-Contaier was installed in BucketFS, it necessary to change the SCRIPT_LANGUAGES parameter to activate a script language container that supports R 3.x. The new parameter value can be generated automatically or manually. +To use Python 2.7 or R3.4 with UDFs after updating from Exasol 7.1.x to Exasol 7.1.30 or later you need to change the SCRIPT_LANGUAGES parameter to activate a script language container that supports Python 2.7/R3.4. The new parameter value can be generated automatically or manually. ### Automatic generation of the new SCRIPT_LANGUAGES parameter value @@ -24,10 +24,14 @@ After the Script-Languages-Contaier was installed in BucketFS, it necessary to c See [get_original_script_languages_parameter.sql](./resources/get_original_script_languages_parameter.sql) -Expected result (the example shows the default values - actual values may be different if the parameter has been changed): +Expected result for an Exasol 7.1.20 database or later (the example shows the default values - actual values may be different if the parameter has been changed): ```sql ALTER SYSTEM SET SCRIPT_LANGUAGES='R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3'; ``` +Expected result for an Exasol 7.1.19 database or lower (the example shows the default values - actual values may be different if the parameter has been changed): +```sql +ALTER SYSTEM SET SCRIPT_LANGUAGES='PYTHON=builtin_python R=builtin_r JAVA=builtin_java PYTHON3=builtin_python3'; +``` 2. Run the following query before updating to 7.1.30: @@ -46,7 +50,9 @@ ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=l See [get_original_script_languages_parameter.sql](./resources/get_original_script_languages_parameter.sql) -2. Using the output from the query in the previous step, replace builtin_python with `localzmq+protobuf:///bfsdefault/default/EXAClusterOS//?lang=r#/buckets/bfsdefault/default/EXAClusterOS//exaudf/exaudfclient_py3` +2. Using the output from the query in the previous step, replace: +- `builtin_r` with `localzmq+protobuf:///bfsdefault/default/EXAClusterOS//?lang=r#/buckets/bfsdefault/default/EXAClusterOS//exaudf/exaudfclient_py3` +- `builtin_python` with `localzmq+protobuf:///bfsdefault/default/EXAClusterOS//?lang=r#/buckets/bfsdefault/default/EXAClusterOS//exaudf/exaudfclient` (in case you need Python2 in UDF's) Replace in this string with the following value depending on which version you are upgrading from: @@ -56,36 +62,10 @@ Replace in this string with the following value depending on wh | 7.1.7 | 7.1.19 |ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R | | 7.1.0 | 7.1.6 |ScriptLanguages-release-standard-exasol-7.1.0-1.1.0 | +ⓘ If you already had updated the `SCRIPT_LANGUAGES` parameter during a previous update, following steps in https://docs.exasol.com/db/7.1/database_concepts/udf_scripts/python2_extended_use.htm, leave the value for Python2 unchanged. + 3. Run the updated ALTER SYSTEM statement after changing the values as described in the previous step. For example: ```sql -ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/exaudf/exaudfclient_py3'; +ALTER SYSTEM SET SCRIPT_LANGUAGES='JAVA=builtin_java PYTHON3=builtin_python3 R=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/?lang=r#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v6.0.0-VYP23K36/exaudf/exaudfclient_py3 PYTHON=localzmq+protobuf:///bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R/?lang=python#/buckets/bfsdefault/default/EXAClusterOS/ScriptLanguages-standard-EXASOL-7.1.0-slc-v4.0.0-CM4RWW6R/exaudf/exaudfclient'; ``` ⓘ We recommend that you test parameter changes using ALTER SESSION before making system-wide changes using ALTER SYSTEM. - -## Fresh Install Of 7.1 Or Update From 7.0 - -If you do a fresh install of the latest 7.1 release, or if you update from Exasol 7.0, you need to install a pre-built script language container from GitHub and then update the SCRIPT_LANGUAGE parameter to point to the container. - -For more details of how to install a script language container, see [Adding New Packages to Existing Script Languages](https://docs.exasol.com/db/7.1/database_concepts/udf_scripts/adding_new_packages_script_languages.htm). - -Under Linux/MacOsX, for steps 1-3, you can use the following script to download the container from Github and upload it to BucketFS: [install_slc_v6.0.0_on_db.sh](./resources/install_slc_v6.0.0_on_db.sh) - -1. Download the latest version of the container that contained R 3.x: - -Container: https://github.com/exasol/script-languages-release/releases/download/6.0.0/standard-EXASOL-7.1.0_release.tar.gz - -Checksum:https://github.com/exasol/script-languages-release/releases/download/6.0.0/standard-EXASOL-7.1.0_release.tar.gz.sha512sum - -2. Control the checksum of the downloaded container. - -3. Upload the container to BucketFS. - -4. Run the following query to generate the ALTER SYSTEM command to update the SCRIPT_LANGUAGES parameter. - -Replace the variables , , , and in the query to match the path to the uploaded container in BucketFS. - -See [construct_alter_system_command_from_downloaded_container.sql](./resources/construct_alter_system_command_from_downloaded_container.sql) - -5. Run the ALTER SYSTEM statement returned by the query. - -ⓘ We recommend that you test parameter changes using ALTER SESSION before making system-wide changes using ALTER SYSTEM. \ No newline at end of file diff --git a/doc/user_guide/user_guide.md b/doc/user_guide/user_guide.md index b47bc25c..255b78b3 100644 --- a/doc/user_guide/user_guide.md +++ b/doc/user_guide/user_guide.md @@ -6,4 +6,4 @@ - [Python Dataframe Support](py_dataframe.md) - [Using Vagrant as development environment](vagrant.md) - [FAQ](FAQ.md) -- [Use R3.x on an Exasol 7.1.3.0 database and above](use_R3_on_7.1.30_and_above.md) +- [Use R3.x and Python2 on an Exasol 7.1.3.0 database and above](use_R3_and_Python2_on_7.1.30_and_above)