Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CBRD-25106] Add test case for Support ALTER statement for PROCEDURE/FUNCTION on PL/CSQL (11.4) #1988

Merged
merged 6 commits into from
Dec 23, 2024

Conversation

swi0110
Copy link
Contributor

@swi0110 swi0110 commented Nov 28, 2024


evaluate 'ERROR: Operation can only be performed by the DBA or a DBA group member';
call login('public','') on class db_user;
ALTER procedure test_tbl compile;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

keyworkd 가 compile 이 아니라 recompile이 되어야 하는 것이 아닐까요? (스펙이슈)

ALTER procedure test_tbl COMMENT '2: COMMENT';
select sp_name, lang, owner, comment from db_stored_procedure where sp_name='test_tbl';


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

추가시나리오-에러 발생하는지 확인
ALTER procedure public.test_tbl OWNER TO "없는사용자 지정" COMMENT '1: OWNER TO COMMENT';

  • 정상 또는 에러인지 확인 - comment 위치 변경
    ALTER procedure public.test_tbl COMMENT '1: OWNER TO COMMENT' OWNER TO dba ;

  • procedure 내에서 권한이 없는 테이블 사용시 compile 에러 발생함
    권한이 없는 view테이블 사용
    권한이 없는 serial 사용
    synonym 생성하고, 없앤경우
    일반계정일때 카탈로그테이블( _db_class 사용 ) 조회하면 에러 발생하는지 확인

  • ddl 구문 확인
    DROP TABLE IF EXISTS 구문 확인
    drop table 하려는 대상 테이블이 없는 경우
    인덱스명이 중복되는 경우
    create view, CREATE TABLE … LIKE, CREATE TABLE AS SELECT 가 스키마가 변경되는 경우

Copy link
Contributor Author

@swi0110 swi0110 Dec 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

시나리오 추가 완료

  1. 존재하지 않는 유저에게 procedure 소유권 부여: error 확인 + 시나리오 추가 완료
  2. comment 절 위치에 따른 에러 발생 여부: error 확인 + 시나리오 추가 완료

다른 tc에 추가

  1. procedure 내에서 권한이 없는 테이블 사용시 compile 에러
  2. procedure 내에서 권한이 없는 view를 procedure에서 조회할 경우
  3. procedure 내에서 synonym으로 테이블을 조회하는 procedure를 생성한 후, synonym을 드랍하는 경우

에 관한 tc는 #1944 에 추가하도록 하겠습니다.
(권한과 관련된 tc이기 때문입니다.)

시나리오 추가 불가

  1. serial의 경우 권한의 개념이 없기 때문에 테스트가 성립하지 않는다고 생각합니다.
    (소유자 개념만 있으며, 해당 serial의 소유자만 drop이 가능합니다)
  2. dba 계정 외에는 _db_class 조회가 불가능합니다
    1. 또한 dba 계정에서 _db_class를 조회하는 procedure를 생성한 후, 일반 계정에 execute 권한을 부여할 경우 _db_class를 조회할 수 있습니다. (pl/csql은 owner's rights로 동작하기 때문입니다.)
    2. 단, 위의 procedure의 소유자를 일반 계정으로 변경할 수 있는지에 관한 시나리오를 추가하도록 하겠습니다.

확인 필요
ddl 구문의 경우 다른 tc에서 검증하고 있을 것으로 판단됩니다.
확인 후, 존재하지 않는다면 tc를 추가하도록 하겠습니다.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ddl 구문 확인의 경우, 다른 tc에서 검증되고 있으며, 해당 내용을 검증하는 것은 issue에서 벗어나는 내용이라고 판단됩니다.

@swi0110 swi0110 force-pushed the add_CBRD-25106_plcsql-p1 branch from 9362c84 to 6fdd685 Compare December 16, 2024 06:24
@swi0110 swi0110 changed the base branch from feature/plcsql-p1 to develop December 16, 2024 06:24
@swi0110
Copy link
Contributor Author

swi0110 commented Dec 16, 2024

Changed base branch
feature/plcsql-p1 -> develop

@swi0110 swi0110 changed the title [CBRD-25106] Add test case for Support ALTER statement for PROCEDURE/FUNCTION on PL/CSQL [CBRD-25106] Add test case for Support ALTER statement for PROCEDURE/FUNCTION on PL/CSQL (11.4) Dec 16, 2024
@swi0110
Copy link
Contributor Author

swi0110 commented Dec 16, 2024

%type을 활용해 procedure를 생성한 후, 해당 type의 target이 된 table의 column을 변경하거나, table을 제거하는 test를 추가했습니다.
이 과정에서 bug로 의심되는 동작을 발견하여 issue에 report했습니다.

@swi0110 swi0110 merged commit 31f7d53 into CUBRID:develop Dec 23, 2024
@swi0110 swi0110 deleted the add_CBRD-25106_plcsql-p1 branch December 23, 2024 07:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants