Skip to content

Commit 24cde95

Browse files
authored
Merge pull request #1165 from utPLSQL/release/v3.1.11
Preparing for Release v3.1.11
2 parents 624f244 + 5eaefd3 commit 24cde95

File tree

408 files changed

+4500
-3722
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

408 files changed

+4500
-3722
lines changed

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@ Add any other context or screenshots about the feature request here.
2323
> Please do not create issues for generic SQL or PL/SQL questions. There are other forums and communities to help you with those. See [ASKTom](https://asktom.oracle.com) for example.
2424
2525
**Want to discuss**
26-
If you want to discuss your issue, join [our SLACK chat](http://utplsql-slack-invite.herokuapp.com/).
26+
If you want to discuss your issue, join [our SLACK chat](https://join.slack.com/t/utplsql/shared_invite/zt-d6zor80g-WWqAhbLWioJZUtLYeXetzA).

.travis.yml

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
sudo: required
22
language: python
3+
os: linux
4+
5+
jdk: openjdk10
36

47
addons:
5-
apt:
6-
packages:
7-
- unzip
8-
# Java9+ Required for Sonar and SQLCL
9-
- openjdk-9-jre-headless
108
sonarcloud:
119
organization: utplsql
1210
token: ${SONAR_TOKEN}
@@ -16,16 +14,26 @@ services:
1614

1715
env:
1816
global:
19-
- UT3_OWNER=ut3
20-
- UT3_OWNER_PASSWORD=ut3
21-
- UT3_RELEASE_VERSION_SCHEMA=UT3_LATEST_RELEASE
17+
- UT3_DEVELOP_SCHEMA=UT3_DEVELOP
18+
- UT3_DEVELOP_SCHEMA_PASSWORD=ut3
19+
- UT3_RELEASE_VERSION_SCHEMA=UT3
20+
- UT3_RELEASE_VERSION_SCHEMA_PASSWORD=ut3
2221
- UT3_USER="UT3\$USER#"
2322
- UT3_USER_PASSWORD=ut3
24-
- UT3_TESTER=ut3_tester
23+
- UT3_TESTER=UT3_TESTER
2524
- UT3_TESTER_PASSWORD=ut3
26-
- UT3_TESTER_HELPER=ut3_tester_helper
25+
- UT3_TESTER_HELPER=UT3_TESTER_HELPER
2726
- UT3_TESTER_HELPER_PASSWORD=ut3
2827
- UT3_TABLESPACE=users
28+
- BUILD_DIR=${TRAVIS_BUILD_DIR}
29+
- JOB_ID=${TRAVIS_JOB_ID}
30+
- JOB_NUMBER=${TRAVIS_JOB_NUMBER}
31+
- PULL_REQUEST_NAME=${TRAVIS_PULL_REQUEST}
32+
- PULL_REQUEST_BRANCH=${TRAVIS_PULL_REQUEST_BRANCH}
33+
- TAG_NAME=${TRAVIS_TAG}
34+
- REPO_SLUG=${TRAVIS_REPO_SLUG}
35+
- PR_SLUG=${TRAVIS_PULL_REQUEST_SLUG}
36+
- BRANCH_NAME=${TRAVIS_BRANCH}
2937
# Environment for building a release
3038
- CURRENT_BRANCH=${TRAVIS_BRANCH}
3139
- UTPLSQL_REPO="utPLSQL/utPLSQL"
@@ -36,24 +44,28 @@ env:
3644
- UTPLSQL_BUILD_USER_NAME="Travis CI"
3745
- CACHE_DIR=$HOME/.cache
3846
# Database Env
39-
- SQLCLI="$HOME/sqlcl/bin/sql"
40-
- OJDBC_HOME="$HOME/sqlcl/lib"
47+
- SQLCLI="${BUILD_DIR}/sqlcl/bin/sql"
48+
- OJDBC_HOME="${BUILD_DIR}/ojdbc"
4149
- ORACLE_PWD="oracle"
42-
- UT3_DOCKER_REPO="utplsqlv3/oracledb"
43-
- DOCKHER_HUB_REPO="${DOCKER_BASE_TAG:-$UT3_DOCKER_REPO}"
50+
- DOCKHER_HUB_REPO="utplsqlv3/oracledb"
51+
- DOCKER_VOLUME="/home/oracle/host"
52+
- DOCKER_ENV="-e SQLCLI=sqlplus -e UT3_DEVELOP_SCHEMA -e UT3_DEVELOP_SCHEMA_PASSWORD -e UT3_RELEASE_VERSION_SCHEMA -e UT3_RELEASE_VERSION_SCHEMA_PASSWORD -e UT3_USER -e UT3_USER_PASSWORD -e UT3_TESTER -e UT3_TESTER_PASSWORD -e UT3_TESTER_HELPER -e UT3_TESTER_HELPER_PASSWORD -e UT3_TABLESPACE -e ORACLE_PWD -e CONNECTION_STR -e UTPLSQL_DIR"
4453
#utPLSQL released version directory
4554
- UTPLSQL_DIR="utPLSQL_latest_release"
4655
- SELFTESTING_BRANCH=${TRAVIS_BRANCH}
4756
- UTPLSQL_CLI_VERSION="3.1.8"
4857
# Maven
4958
- MAVEN_HOME=/usr/local/maven
5059
- MAVEN_CFG=$HOME/.m2
51-
matrix:
52-
- ORACLE_VERSION="${DOCKER_TAG_11G:-11g-r2-xe}" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_OPTIONS='--shm-size=1g'
53-
- ORACLE_VERSION="${DOCKER_TAG_12C:-12c-r1-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
54-
- ORACLE_VERSION="${DOCKER_TAG_12C2:-12c-r2-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
55-
- ORACLE_VERSION="${DOCKER_TAG_18:-18c-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
56-
- ORACLE_VERSION="${DOCKER_TAG_19:-19c-se2-small}" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
60+
jobs:
61+
- ORACLE_VERSION="11g-r2-xe" CONNECTION_STR='127.0.0.1:1521/XE' DOCKER_VOLUME="/mnt/host" DOCKER_OPTIONS='--shm-size=1g'
62+
# - ORACLE_VERSION="11-full" CONNECTION_STR='127.0.0.1:1521/XE' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle --shm-size=1g' DOCKER_VOLUME="/mnt/host"
63+
- ORACLE_VERSION="12c-r1-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
64+
- ORACLE_VERSION="12c-r2-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
65+
- ORACLE_VERSION="18-slim" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'
66+
- ORACLE_VERSION="18c-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
67+
- ORACLE_VERSION="19c-se2-small" CONNECTION_STR='127.0.0.1:1521/ORCLCDB'
68+
- ORACLE_VERSION="21-full" CONNECTION_STR='127.0.0.1:1521/XEPDB1' DOCKHER_HUB_REPO="gvenzl/oracle-xe" DOCKER_OPTIONS='-e ORACLE_PASSWORD=oracle'
5769

5870
cache:
5971
pip: true
@@ -64,6 +76,7 @@ cache:
6476
- $MAVEN_CFG
6577

6678
before_install:
79+
6780
#cache to be used between stages. Based on https://github.com/travis-ci/docs-travis-ci-com/issues/1329
6881
#delete all files in cache that are older than 5 days
6982
- mkdir -p $CACHE_DIR/stages_cache; find $CACHE_DIR/stages_cache/ -mtime +5 -exec rm {} \;
@@ -72,24 +85,29 @@ before_install:
7285
#Allow for sonar to blame issues
7386
- git fetch --unshallow
7487
# download latest utPLSQL release
75-
#- curl -LOk $(curl --silent https://api.github.com/repos/utPLSQL/utPLSQL/releases/latest | awk '/browser_download_url/ { print $2 }' | grep ".zip" | sed 's/"//g')
76-
- git clone --depth=1 --branch=${SELFTESTING_BRANCH:-master} https://github.com/utPLSQL/utPLSQL.git $UTPLSQL_DIR
88+
- git clone --depth=1 --branch=${SELFTESTING_BRANCH:-main} https://github.com/utPLSQL/utPLSQL.git $UTPLSQL_DIR
7789
# download latest utPLSQL-cli release
7890
- curl -Lk -o utPLSQL-cli.zip https://github.com/utPLSQL/utPLSQL-cli/releases/download/v${UTPLSQL_CLI_VERSION}/utPLSQL-cli.zip
7991

8092
install:
81-
#- unzip utPLSQL.zip
8293
- unzip utPLSQL-cli.zip && chmod -R u+x utPLSQL-cli
83-
- bash .travis/install_sqlcl.sh
94+
# - curl -Lk -o sqlcl-latest.zip https://download.oracle.com/otn_software/java/sqldeveloper/sqlcl-latest.zip
95+
# - unzip -q sqlcl-latest.zip -d $HOME
96+
- mkdir -p ${OJDBC_HOME} #get JDBC driver and orai18n
97+
- curl -Lk -o ${OJDBC_HOME}/ojdbc8.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/ojdbc8.jar
98+
- curl -Lk -o ${OJDBC_HOME}/orai18n.jar https://download.oracle.com/otn-pub/otn_software/jdbc/213/orai18n.jar
99+
# Chmod is needed to allow for write access within from docker container volume
100+
- chmod -R go+w ./{source,test,examples,${UTPLSQL_DIR}/source}
84101
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/start_db.sh; fi
102+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install.sh; fi
103+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/install_utplsql_release.sh; fi
85104

86105
before_script:
87-
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/install.sh; fi
88-
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/install_utplsql_release.sh; fi
89-
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/run_examples.sh; fi
106+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/.travis/run_examples.sh; fi
107+
- if [[ ! $TRAVIS_TAG ]]; then docker exec ${ORACLE_VERSION} ${DOCKER_VOLUME}/test/install_tests.sh; fi
90108

91109
script:
92-
- if [[ ! $TRAVIS_TAG ]]; then bash test/install_and_run_tests.sh; fi
110+
- if [[ ! $TRAVIS_TAG ]]; then bash test/run_tests.sh; fi
93111
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/validate_report_files.sh; fi
94112
- if [[ ! $TRAVIS_TAG ]] && [[ ("${TRAVIS_REPO_SLUG}" = "${UTPLSQL_REPO}" && "${TRAVIS_PULL_REQUEST}" == false) || ("${TRAVIS_PULL_REQUEST_SLUG}" = "${UTPLSQL_REPO}") ]]; then bash .travis/run_sonar_scanner.sh; fi
95113
- if [[ ! $TRAVIS_TAG ]]; then bash .travis/coveralls_uploader.sh; fi

.travis/coveralls_uploader.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fs.readFile('../coverage.json',function (err,data) {
1414
return console.log(err);
1515
}
1616
req = JSON.parse(data);
17-
req.service_job_id = process.env.TRAVIS_JOB_ID;
17+
req.service_job_id = process.env.JOB_ID;
1818
req.service_name = 'travis-ci';
1919
if (process.env.COVERALLS_REPO_TOKEN) {
2020
req.repo_token = process.env.COVERALLS_REPO_TOKEN;

.travis/install.sh

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
#!/bin/bash
22

3-
cd source
43
set -ev
4+
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
5+
cd ${SCRIPT_DIR}/../source
6+
7+
INSTALL_FILE="install_headless_with_trigger.sql"
8+
if [[ ! -f "${INSTALL_FILE}" ]]; then
9+
INSTALL_FILE="install_headless.sql"
10+
fi
511

612
#install core of utplsql
713
time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL
@@ -11,33 +17,33 @@ set verify off
1117
1218
--alter session set plsql_warnings = 'ENABLE:ALL', 'DISABLE:(5004,5018,6000,6001,6003,6009,6010,7206)';
1319
alter session set plsql_optimize_level=0;
14-
@install_headless_with_trigger.sql $UT3_OWNER $UT3_OWNER_PASSWORD
20+
@${INSTALL_FILE} $UT3_DEVELOP_SCHEMA $UT3_DEVELOP_SCHEMA_PASSWORD
1521
SQL
1622

1723
#Run this step only on second child job (12.1 - at it's fastest)
18-
if [[ "${TRAVIS_JOB_NUMBER}" =~ \.2$ ]]; then
24+
if [[ "${JOB_NUMBER}" =~ \.2$ ]]; then
1925

2026
#check code-style for errors
21-
time "$SQLCLI" $UT3_OWNER/$UT3_OWNER_PASSWORD@//$CONNECTION_STR @../development/utplsql_style_check.sql
27+
time "$SQLCLI" $UT3_DEVELOP_SCHEMA/$UT3_DEVELOP_SCHEMA_PASSWORD@//$CONNECTION_STR @../development/utplsql_style_check.sql
2228

2329
#test install/uninstall process
2430
time "$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<-SQL
2531
set feedback off
2632
set verify off
2733
whenever sqlerror exit failure rollback
2834
29-
@uninstall_all.sql $UT3_OWNER
35+
@uninstall_all.sql $UT3_DEVELOP_SCHEMA
3036
whenever sqlerror exit failure rollback
3137
declare
3238
v_leftover_objects_count integer;
3339
begin
3440
select sum(cnt)
3541
into v_leftover_objects_count
3642
from (
37-
select count(1) cnt from dba_objects where owner = '$UT3_OWNER'
43+
select count(1) cnt from dba_objects where owner = '$UT3_DEVELOP_SCHEMA'
3844
where object_name not like 'PLSQL_PROFILER%' and object_name not like 'DBMSPCC_%'
3945
union all
40-
select count(1) cnt from dba_synonyms where table_owner = '$UT3_OWNER'
46+
select count(1) cnt from dba_synonyms where table_owner = '$UT3_DEVELOP_SCHEMA'
4147
where table_name not like 'PLSQL_PROFILER%' and table_name not like 'DBMSPCC_%'
4248
);
4349
if v_leftover_objects_count > 0 then
@@ -52,9 +58,9 @@ SQL
5258
set verify off
5359
5460
alter session set plsql_optimize_level=0;
55-
@install.sql $UT3_OWNER
56-
@install_ddl_trigger.sql $UT3_OWNER
57-
@create_synonyms_and_grants_for_public.sql $UT3_OWNER
61+
@install.sql $UT3_DEVELOP_SCHEMA
62+
@install_ddl_trigger.sql $UT3_DEVELOP_SCHEMA
63+
@create_synonyms_and_grants_for_public.sql $UT3_DEVELOP_SCHEMA
5864
SQL
5965

6066
fi
@@ -65,8 +71,8 @@ set feedback off
6571
whenever sqlerror exit failure rollback
6672
6773
--------------------------------------------------------------------------------
68-
PROMPT Adding back create-trigger privilege to $UT3_OWNER for testing
69-
grant administer database trigger to $UT3_OWNER;
74+
PROMPT Adding back create-trigger privilege to $UT3_DEVELOP_SCHEMA for testing
75+
grant administer database trigger to $UT3_DEVELOP_SCHEMA;
7076
7177
--------------------------------------------------------------------------------
7278
PROMPT Creating $UT3_TESTER - Power-user for testing internal framework code
@@ -76,27 +82,27 @@ grant create session, create procedure, create type, create table to $UT3_TESTER
7682
7783
grant execute on dbms_lock to $UT3_TESTER;
7884
79-
PROMPT Granting $UT3_OWNER code to $UT3_TESTER
85+
PROMPT Granting $UT3_DEVELOP_SCHEMA code to $UT3_TESTER
8086
8187
begin
8288
for i in (
8389
select object_name from all_objects t
8490
where t.object_type in ('PACKAGE','TYPE')
85-
and owner = 'UT3'
91+
and owner = '$UT3_DEVELOP_SCHEMA'
8692
and generated = 'N'
8793
and object_name not like 'SYS%')
8894
loop
89-
execute immediate 'grant execute on ut3."'||i.object_name||'" to UT3_TESTER';
95+
execute immediate 'grant execute on $UT3_DEVELOP_SCHEMA."'||i.object_name||'" to $UT3_TESTER';
9096
end loop;
9197
end;
9298
/
9399
94-
PROMPT Granting $UT3_OWNER tables to $UT3_TESTER
100+
PROMPT Granting $UT3_DEVELOP_SCHEMA tables to $UT3_TESTER
95101
96102
begin
97-
for i in ( select table_name from all_tables t where owner = 'UT3' and nested = 'NO' and iot_name is null)
103+
for i in ( select table_name from all_tables t where owner = '$UT3_DEVELOP_SCHEMA' and nested = 'NO' and iot_name is null)
98104
loop
99-
execute immediate 'grant select on UT3.'||i.table_name||' to UT3_TESTER';
105+
execute immediate 'grant select on $UT3_DEVELOP_SCHEMA.'||i.table_name||' to $UT3_TESTER';
100106
end loop;
101107
end;
102108
/
@@ -108,6 +114,25 @@ PROMPT Creating $UT3_USER - minimal privileges user for API testing
108114
create user $UT3_USER identified by "$UT3_USER_PASSWORD" default tablespace $UT3_TABLESPACE quota unlimited on $UT3_TABLESPACE;
109115
grant create session, create procedure, create type, create table to $UT3_USER;
110116
117+
PROMPT Grants for starting a debugging session from $UT3_USER
118+
grant debug connect session to $UT3_USER;
119+
grant debug any procedure to $UT3_USER;
120+
begin
121+
\$if dbms_db_version.version <= 11 \$then
122+
null; -- no addition action necessary
123+
\$else
124+
-- necessary on 12c or higher
125+
dbms_network_acl_admin.append_host_ace (
126+
host =>'*',
127+
ace => sys.xs\$ace_type(
128+
privilege_list => sys.xs\$name_list('JDWP') ,
129+
principal_name => '$UT3_USER',
130+
principal_type => sys.xs_acl.ptype_db
131+
)
132+
);
133+
\$end
134+
end;
135+
/
111136
112137
--------------------------------------------------------------------------------
113138
PROMPT Creating $UT3_TESTER_HELPER - provides functions to allow min grant test user setup tests.
@@ -119,11 +144,11 @@ PROMPT Grants for testing distributed transactions
119144
grant create public database link to $UT3_TESTER_HELPER;
120145
grant drop public database link to $UT3_TESTER_HELPER;
121146
122-
PROMPT Grants for testing coverage outside of main UT3 schema.
147+
PROMPT Grants for testing coverage outside of main $UT3_DEVELOP_SCHEMA schema.
123148
grant create any procedure, drop any procedure, execute any procedure, create any type, drop any type, execute any type, under any type,
124149
select any table, update any table, insert any table, delete any table, create any table, drop any table, alter any table,
125150
select any dictionary, create any synonym, drop any synonym,
126-
grant any object privilege, grant any privilege
151+
grant any object privilege, grant any privilege, create public synonym, drop public synonym, create any trigger
127152
to $UT3_TESTER_HELPER;
128153
129154
grant create job to $UT3_TESTER_HELPER;

.travis/install_sqlcl.sh

Lines changed: 0 additions & 20 deletions
This file was deleted.

.travis/install_utplsql_release.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#!/bin/bash
22

33
set -ev
4-
5-
cd $UTPLSQL_DIR/source
4+
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
5+
cd ${SCRIPT_DIR}/../${UTPLSQL_DIR}/source
66

77
"$SQLCLI" sys/$ORACLE_PWD@//$CONNECTION_STR AS SYSDBA <<SQL
88
set serveroutput on
@@ -11,15 +11,15 @@ set trimspool on
1111
declare
1212
i integer := 0;
1313
begin
14-
dbms_output.put_line('Dropping synonyms pointing to schema '||upper('${UT3_OWNER}'));
14+
dbms_output.put_line('Dropping synonyms pointing to schema '||upper('${UT3_DEVELOP_SCHEMA}'));
1515
for syn in (
1616
select
1717
case when owner = 'PUBLIC'
1818
then 'public synonym '
1919
else 'synonym ' || owner || '.' end || synonym_name as syn_name,
2020
table_owner||'.'||table_name as for_object
2121
from all_synonyms s
22-
where table_owner = upper('${UT3_OWNER}') and table_owner != owner
22+
where table_owner = upper('${UT3_DEVELOP_SCHEMA}') and table_owner != owner
2323
)
2424
loop
2525
i := i + 1;
@@ -28,7 +28,7 @@ begin
2828
dbms_output.put_line('Dropped '||syn.syn_name||' for object '||syn.for_object);
2929
exception
3030
when others then
31-
dbms_output.put_line('FAILED to drop '||syn.syn_name||' for object '||syn.for_object);
31+
dbms_output.put_line('FAILED to drop '||syn.syn_name||' for object '||syn.for_object||' with error '||sqlerrm);
3232
end;
3333
end loop;
3434
dbms_output.put_line(i||' synonyms dropped');
@@ -45,7 +45,7 @@ fi
4545
alter session set plsql_optimize_level=0;
4646
alter session set plsql_ccflags = 'SELF_TESTING_INSTALL:TRUE';
4747
48-
@${INSTALL_FILE} ${UT3_RELEASE_VERSION_SCHEMA}
48+
@${INSTALL_FILE} ${UT3_RELEASE_VERSION_SCHEMA} ${UT3_RELEASE_VERSION_SCHEMA_PASSWORD}
4949
exit
5050
SQL
5151

0 commit comments

Comments
 (0)