skip to main content
10.1145/3643796.3648461acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

I3DE: An IDE for Inspecting Inconsistencies in PL/SQL Code

Published: 07 August 2024 Publication History

Abstract

In this paper, we introduce I3DE (Inconsistency Inspecting IDE) --- an IDE plugin to inspect inconsistencies in PL/SQL code. We first observed the potential issues, e.g., misuses or bugs, that are introduced by the inconsistent understanding of PL/SQL semantics by PL/SQL programmers and DBMS developers, and propose a meta-morphic testing-based approach for inspecting such inconsistencies in PL/SQL code. We design and implement our approach in I3DE, a widely usable plugin for the IntelliJ Platform. We conducted a comparative user study involving 16 participants, and the findings indicate that I3DE is consistently effective and efficient in helping programmers identify and avoid inconsistencies across different programming difficulties.

References

[1]
Richard Amankwah, Jinfu Chen, Heping Song, and Patrick Kwaku Kudjo. 2023. Bug detection in Java code: An extensive evaluation of static analysis tools using Juliet Test Suites. Software: Practice and Experience 53, 5 (2023), 1125--1143.
[2]
Tsong Yueh Chen, Fei-Ching Kuo, Huai Liu, Pak-Lok Poon, Dave Towey, TH Tse, and Zhi Quan Zhou. 2018. Metamorphic testing: A review of challenges and opportunities. ACM Computing Surveys (CSUR) 51, 1 (2018), 1--27.
[3]
Christian Duta, Denis Hirn, and Torsten Grust. 2019. Compiling pl/SQL away. arXiv preprint arXiv:1909.03291 (2019).
[4]
The PostgreSQL Global Development Group. 2023. Character Types. https://www.postgresql.org/docs/current/datatype-character.html#DATATYPE-CHARACTER. accessed: November 2023.
[5]
The PostgreSQL Global Development Group. 2023. PL/pgSQL Overview. https://www.postgresql.org/docs/current/plpgsql-overview.html#PLPGSQL-OVERVIEW. accessed: November 2023.
[6]
The PostgreSQL Global Development Group. 2023. Porting from Oracle PL/SQL. https://www.postgresql.org/docs/current/plpgsql-porting.html#PLPGSQL-PORTING. accessed: November 2023.
[7]
Denis Hirn and Torsten Grust. 2020. PL/SQL Without the PL. In Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data. 2677--2680.
[8]
Denis Hirn and Torsten Grust. 2021. One with recursive is worth many GOTOs. In Proceedings of the 2021 International Conference on Management of Data. 723--735.
[9]
JetBrains. 2023. JetBrains Tools for Data Science & Big Data. https://www.jetbrains.com/data-tools/. accessed: November 2023.
[10]
Ameya Ketkar, Oleg Smirnov, Nikolaos Tsantalis, Danny Dig, and Timofey Bryksin. 2022. Inferring and applying type changes. In Proceedings of the 44th International Conference on Software Engineering. 1206--1218.
[11]
Zarina Kurbatova, Yaroslav Golubev, Vladimir Kovalenko, and Timofey Bryksin. 2021. The intellij platform: a framework for building plugins and mining software data. In 2021 36th IEEE/ACM International Conference on Automated Software Engineering Workshops (ASEW). IEEE, 14--17.
[12]
Jingyue Li, Sindre Beba, and Magnus Melseth Karlsen. 2019. Evaluation of open-source IDE plugins for detecting security vulnerabilities. In Proceedings of the 23rd International Conference on Evaluation and Assessment in Software Engineering. 200--209.
[13]
Jiangshan Liu. 2023. Detecting inconsistencies in PL/SQL code through software testing methods. https://jiangshanliu.github.io/PLSQLIC3/web. accessed: November 2023.
[14]
Kui Liu, Anil Koyuncu, Dongsun Kim, and Tegawendé F Bissyandé. 2019. Avatar: Fixing semantic bugs with fix patterns of static analysis violations. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE, 1--12.
[15]
Wanwangying Ma, Lin Chen, Xiangyu Zhang, Yang Feng, Zhaogui Xu, Zhifei Chen, Yuming Zhou, and Baowen Xu. 2020. Impact analysis of cross-project bugs on software ecosystems. In Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. 100--111.
[16]
Konstantinos Manikas. 2016. Revisiting software ecosystems research: A longitudinal literature study. Journal of Systems and Software 117 (2016), 84--103.
[17]
Konstantinos Manikas and Klaus Marius Hansen. 2013. Reviewing the health of software ecosystems-a conceptual framework proposal. In Proceedings of the 5th international workshop on software ecosystems (IWSECO). Citeseer, 33--44.
[18]
Bashar Nuseibeh, Steve Easterbrook, and Alessandra Russo. 2001. Making inconsistency respectable in software development. Journal of systems and software 58, 2 (2001), 171--180.
[19]
openGauss. 2023. PL/pgSQL Functions. https://docs-opengauss.osinfra.cn/en/docs/latest/docs/SQLReference/pl-pgsql-functions.html. accessed: November 2023.
[20]
Oleg Smirnov, Ameya Ketkar, Timofey Bryksin, Nikolaos Tsantalis, and Danny Dig. 2022. IntelliTC: automating type changes in IntelliJ IDEA. In Proceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings. 115--119.
[21]
JetBrains s.r.o. 2023. Architecture overview. https://www.postgresql.org/docs/current/datatype-character.html#DATATYPE-CHARACTER. accessed: November 2023.
[22]
Xiaogang Zhu, Sheng Wen, Seyit Camtepe, and Yang Xiang. 2022. Fuzzing: a survey for roadmap. ACM Computing Surveys (CSUR) 54, 11s (2022), 1--36.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
IDE '24: Proceedings of the 1st ACM/IEEE Workshop on Integrated Development Environments
April 2024
127 pages
ISBN:9798400705809
DOI:10.1145/3643796
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

  • Faculty of Engineering of University of Porto

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 August 2024

Check for updates

Author Tags

  1. PL/SQL
  2. inconsistency
  3. IDE
  4. plugin
  5. code inspection

Qualifiers

  • Research-article

Funding Sources

Conference

IDE '24
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 23
    Total Downloads
  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)1
Reflects downloads up to 28 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media