Skip to content

Commit

Permalink
Merge branch 'babelfish-for-postgresql:BABEL_4_X_DEV' into babel_4891…
Browse files Browse the repository at this point in the history
…_hashbytes
  • Loading branch information
pranavJ23 authored Dec 24, 2024
2 parents 91dee30 + 92e34b5 commit 27053aa
Show file tree
Hide file tree
Showing 12 changed files with 100 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ runs:
FROM pg_proc
WHERE proname = 'check_for_inconsistent_metadata';" | grep -o 'exists\|not_exists')
echo "::set-output name=function_exists::$function_exists"
echo "function_exists=$function_exists" >> $GITHUB_OUTPUT
echo "Check Babelfish metadata inconsistency function exists: $function_exists"
# If the function exists, run the metadata inconsistency check
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/code-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ jobs:

- name: Download CSV report from previous run
if: (github.event_name == 'schedule')
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
name: csv_${{github.ref_name}}
path: contrib/
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/pg_dump-restore-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
dump_format: itm[itm.length - 1]['dump-format'], \
type: itm[itm.length - 1]['type']})); \
console.log(JSON.stringify(p));")
echo "::set-output name=dump-restore-path-list::$DUMP_RESTORE_PATH_LIST"
echo "dump-restore-path-list=$DUMP_RESTORE_PATH_LIST" >> $GITHUB_OUTPUT
run-dump-restore-test:
needs: generate-dump-restore-tests
Expand All @@ -45,24 +45,24 @@ jobs:
id: read-base-and-final-version
if: always() && steps.install-yq.outcome == 'success'
run: >
echo "::set-output name=base-version::$(
echo "base-version=$(
yq '."dump-restore-version"[${{ matrix.upgrade-path.id }}][0].version' ${{ github.workspace }}/.github/configuration/dump-restore-test-configuration.yml
)" &&
echo "::set-output name=final-version::$(
)" >> $GITHUB_OUTPUT &&
echo "final-version=$(
yq '."dump-restore-version"[${{ matrix.upgrade-path.id }}][-1].version' ${{ github.workspace }}/.github/configuration/dump-restore-test-configuration.yml
)"
)" >> $GITHUB_OUTPUT
- name: Find Engine and Extension Branches for Base Version ${{ steps.read-base-and-final-version.outputs.base-version }}
id: find-branch
if: always() && steps.read-base-and-final-version.outcome == 'success'
run: >
echo "::set-output name=base-engine-branch::$(
echo "base-engine-branch=$(
yq '."${{ steps.read-base-and-final-version.outputs.base-version }}".engine_branch' ${{ github.workspace }}/.github/template/version-branch-template.yml
)" &&
echo "::set-output name=base-extension-branch::$(
)" >> $GITHUB_OUTPUT &&
echo "base-extension-branch=$(
yq '."${{ steps.read-base-and-final-version.outputs.base-version }}".extension_branch' ${{ github.workspace }}/.github/template/version-branch-template.yml
)" &&
echo "::set-output name=base-dir::$(echo psql$(awk -F. '{print $1}' <<< ${{ steps.read-base-and-final-version.outputs.base-version }}))"
)" >> $GITHUB_OUTPUT &&
echo "base-dir=$(echo psql$(awk -F. '{print $1}' <<< ${{ steps.read-base-and-final-version.outputs.base-version }}))" >> $GITHUB_OUTPUT
- name: Setup Base Version ${{ steps.read-base-and-final-version.outputs.base-version }} and Run Preparation Tests
id: setup-base-version
Expand Down
20 changes: 10 additions & 10 deletions .github/workflows/upgrade-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
config="'$(yq -o=json ${{ github.workspace }}/.github/configuration/upgrade-test-configuration.yml)'"
config=$(echo $config | sed "s/\"/\\\\\"/g")
UPGRADE_PATH_LIST=$(node -e "let k = JSON.parse($config); let p = k['upgrade-version'].map((itm, index) => ({ id: index, path: itm['upgrade-path'].map(i => i.version.toString().replace(/[.]/g, \"_\")), server_collation_name: itm['babelfishpg_tsql_server_collation_name'] ? itm['babelfishpg_tsql_server_collation_name'] : \"default\", title: itm['upgrade-path'].map(i => i.version.toString().replace(/[.]/g, \"_\")).join(\"-\") + (itm['babelfishpg_tsql_server_collation_name'] ? (\" with server-collation - \" + itm['babelfishpg_tsql_server_collation_name'] + \" \") : \"\"), last_version: itm['upgrade-path'][itm['upgrade-path'].length - 1].version.toString().replace(/[.]/g, \"_\") })); console.log(JSON.stringify(p));")
echo "::set-output name=upgrade-path-list::$UPGRADE_PATH_LIST"
echo "upgrade-path-list=$UPGRADE_PATH_LIST" >> $GITHUB_OUTPUT
run-version-upgrade-test:
needs: generate-version-upgrade-tests
Expand All @@ -38,24 +38,24 @@ jobs:
id: read-base-and-final-version
if: always() && steps.install-yq.outcome == 'success'
run: >
echo "::set-output name=base-version::$(
echo "base-version=$(
yq '."upgrade-version"[${{ matrix.upgrade-path.id }}]."upgrade-path"[0].version' ${{ github.workspace }}/.github/configuration/upgrade-test-configuration.yml
)" &&
echo "::set-output name=final-version::$(
)" >> $GITHUB_OUTPUT &&
echo "final-version=$(
yq '."upgrade-version"[${{ matrix.upgrade-path.id }}]."upgrade-path"[-1].version' ${{ github.workspace }}/.github/configuration/upgrade-test-configuration.yml
)"
)" >> $GITHUB_OUTPUT
- name: Find Engine and Extension Branches for Base Version ${{ steps.read-base-and-final-version.outputs.base-version }}
id: find-branch
if: always() && steps.read-base-and-final-version.outcome == 'success'
run: >
echo "::set-output name=base-engine-branch::$(
echo "base-engine-branch=$(
yq '."${{ steps.read-base-and-final-version.outputs.base-version }}".engine_branch' ${{ github.workspace }}/.github/template/version-branch-template.yml
)" &&
echo "::set-output name=base-extension-branch::$(
)" >> $GITHUB_OUTPUT &&
echo "base-extension-branch=$(
yq '."${{ steps.read-base-and-final-version.outputs.base-version }}".extension_branch' ${{ github.workspace }}/.github/template/version-branch-template.yml
)" &&
echo "::set-output name=base-dir::$(echo psql$(awk -F. '{print $1}' <<< ${{ steps.read-base-and-final-version.outputs.base-version }}))"
)" >> $GITHUB_OUTPUT &&
echo "base-dir=$(echo psql$(awk -F. '{print $1}' <<< ${{ steps.read-base-and-final-version.outputs.base-version }}))" >> $GITHUB_OUTPUT
- name: Setup Base Version ${{ steps.read-base-and-final-version.outputs.base-version }} and Run Preparation Tests
id: setup-base-version
Expand Down
3 changes: 3 additions & 0 deletions contrib/babelfishpg_tsql/sql/babelfishpg_tsql.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2190,6 +2190,9 @@ BEGIN

ELSIF role = 'public' COLLATE sys.database_default THEN
RETURN 1;

ELSEIF role = login THEN
RETURN 0;

ELSIF role COLLATE sys.database_default IN ('sysadmin', 'securityadmin', 'dbcreator') THEN
has_role = (pg_has_role(login::TEXT, role::TEXT, 'MEMBER')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1736,6 +1736,9 @@ BEGIN

ELSIF role = 'public' COLLATE sys.database_default THEN
RETURN 1;

ELSEIF role = login THEN
RETURN 0;

ELSIF role COLLATE sys.database_default IN ('sysadmin', 'securityadmin', 'dbcreator') THEN
has_role = (pg_has_role(login::TEXT, role::TEXT, 'MEMBER')
Expand Down
25 changes: 25 additions & 0 deletions test/JDBC/expected/dbcreator_role-vu-verify.out
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,31 @@ int
~~END~~


select is_srvrolemember('dbcreator','dbcreator')
go
~~START~~
int
0
~~END~~


select is_srvrolemember('sysadmin','sysadmin')
go
~~START~~
int
0
~~END~~


-- should return NULL for invalid login
select is_srvrolemember('l1', 'l1')
go
~~START~~
int
<NULL>
~~END~~


alter login dbcreator_login1 with password='123'
go

Expand Down
8 changes: 8 additions & 0 deletions test/JDBC/expected/securityadmin_role-vu-verify.out
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,14 @@ int
~~END~~


select is_srvrolemember('securityadmin','securityadmin')
go
~~START~~
int
0
~~END~~


alter login securityadmin_login1 with password='123'
go

Expand Down
25 changes: 25 additions & 0 deletions test/JDBC/expected/single_db/dbcreator_role-vu-verify.out
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,31 @@ int
~~END~~


select is_srvrolemember('dbcreator','dbcreator')
go
~~START~~
int
0
~~END~~


select is_srvrolemember('sysadmin','sysadmin')
go
~~START~~
int
0
~~END~~


-- should return NULL for invalid login
select is_srvrolemember('l1', 'l1')
go
~~START~~
int
<NULL>
~~END~~


alter login dbcreator_login1 with password='123'
go

Expand Down
10 changes: 10 additions & 0 deletions test/JDBC/input/dbcreator_role-vu-verify.mix
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@ go
select is_srvrolemember('dbcreator', 'securityadmin')
go

select is_srvrolemember('dbcreator','dbcreator')
go

select is_srvrolemember('sysadmin','sysadmin')
go

-- should return NULL for invalid login
select is_srvrolemember('l1', 'l1')
go

alter login dbcreator_login1 with password='123'
go

Expand Down
3 changes: 3 additions & 0 deletions test/JDBC/input/securityadmin_role-vu-verify.mix
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ go
select is_srvrolemember('securityadmin', 'sysadmin')
go

select is_srvrolemember('securityadmin','securityadmin')
go

alter login securityadmin_login1 with password='123'
go

Expand Down
2 changes: 1 addition & 1 deletion test/JDBC/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Expand Down

0 comments on commit 27053aa

Please sign in to comment.