Finding Cross-Rule Optimization Bugs in Datalog Engines
Datalog is a popular and widely-used declarative logic programming language. Datalog engines apply many cross-rule optimizations; bugs in them can cause incorrect results. To detect such optimization bugs, we propose an automated testing approach called Incremental Rule Evaluation (IRE), which syner...
Gespeichert in:
| Veröffentlicht in: | Proceedings of ACM on programming languages Jg. 8; H. OOPSLA1; S. 110 - 136 |
|---|---|
| Hauptverfasser: | , , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
New York, NY, USA
ACM
29.04.2024
|
| Schlagworte: | |
| ISSN: | 2475-1421, 2475-1421 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | Datalog is a popular and widely-used declarative logic programming language. Datalog engines apply many cross-rule optimizations; bugs in them can cause incorrect results. To detect such optimization bugs, we propose an automated testing approach called Incremental Rule Evaluation (IRE), which synergistically tackles the test oracle and test case generation problem. The core idea behind the test oracle is to compare the results of an optimized program and a program without cross-rule optimization; any difference indicates a bug in the Datalog engine. Our core insight is that, for an optimized, incrementally-generated Datalog program, we can evaluate all rules individually by constructing a reference program to disable the optimizations that are performed among multiple rules. Incrementally generating test cases not only allows us to apply the test oracle for every new rule generated-we also can ensure that every newly added rule generates a non-empty result with a given probability and eschew recomputing already-known facts. We implemented IRE as a tool named Deopt, and evaluated Deopt on four mature Datalog engines, namely Soufflé, CozoDB, μZ, and DDlog, and discovered a total of 30 bugs. Of these, 13 were logic bugs, while the remaining were crash and error bugs. Deopt can detect all bugs found by queryFuzz, a state-of-the-art approach. Out of the bugs identified by Deopt, queryFuzz might be unable to detect 5 . Our incremental test case generation approach is efficient; for example, for test cases containing 60 rules, our incremental approach can produce 1.17× (for DDlog) to 31.02× (for Soufflé) as many valid test cases with non-empty results as the naive random method. We believe that the simplicity and the generality of the approach will lead to its wide adoption in practice. |
|---|---|
| AbstractList | Datalog is a popular and widely-used declarative logic programming language. Datalog engines apply many cross-rule optimizations; bugs in them can cause incorrect results. To detect such optimization bugs, we propose an automated testing approach called Incremental Rule Evaluation (IRE), which synergistically tackles the test oracle and test case generation problem. The core idea behind the test oracle is to compare the results of an optimized program and a program without cross-rule optimization; any difference indicates a bug in the Datalog engine. Our core insight is that, for an optimized, incrementally-generated Datalog program, we can evaluate all rules individually by constructing a reference program to disable the optimizations that are performed among multiple rules. Incrementally generating test cases not only allows us to apply the test oracle for every new rule generated—we also can ensure that every newly added rule generates a non-empty result with a given probability and eschew recomputing already-known facts. We implemented IRE as a tool named Deopt, and evaluated Deopt on four mature Datalog engines, namely Soufflé, CozoDB, μZ, and DDlog, and discovered a total of 30 bugs. Of these, 13 were logic bugs, while the remaining were crash and error bugs. Deopt can detect all bugs found by queryFuzz, a state-of-the-art approach. Out of the bugs identified by Deopt, queryFuzz might be unable to detect 5. Our incremental test case generation approach is efficient; for example, for test cases containing 60 rules, our incremental approach can produce 1.17× (for DDlog) to 31.02× (for Soufflé) as many valid test cases with non-empty results as the naive random method. We believe that the simplicity and the generality of the approach will lead to its wide adoption in practice. |
| ArticleNumber | 98 |
| Author | Zhang, Chi Rigger, Manuel Wang, Linzhang |
| Author_xml | – sequence: 1 givenname: Chi orcidid: 0000-0002-2848-6108 surname: Zhang fullname: Zhang, Chi email: zhangchi_seg@smail.nju.edu.cn organization: Nanjing University, Nanjing, China – sequence: 2 givenname: Linzhang orcidid: 0000-0003-4794-1652 surname: Wang fullname: Wang, Linzhang email: lzwang@nju.edu.cn organization: Nanjing University, Nanjing, China – sequence: 3 givenname: Manuel orcidid: 0000-0001-8303-2099 surname: Rigger fullname: Rigger, Manuel email: rigger@nus.edu.sg organization: National University of Singapore, Singapore, Singapore |
| BookMark | eNptj81LwzAYh4NMcM7h3VNunqL5bJqj1k2FwUB2L0mblEibjiY76F9v96GIeHl_L7wPL7_nEkxCHywA1wTfEcLFPcu4yok4A1PKpUCEUzL5tV-AeYzvGGOiGM-ZmgK59KH2oYHF0MeI3nathett8p3_1Mn3AT7umgh9gE866bZv4CI0Pth4Bc6dbqOdn3IGNsvFpnhBq_Xza_GwQppKmVBmx2CcMqMoo1YJK3JDciedsPU4TFZTQ4Uz2glKFCWjgDRUalYTIzGbAXR8W-3rDdaVlU-HYmnQvi0JLvfe5cl75G__8NvBd3r4-Ie8OZK66n6g7-MXCUBfJQ |
| CitedBy_id | crossref_primary_10_1145_3725300 |
| Cites_doi | 10.1145/50202.50218 10.1145/3088515.3088522 10.1145/3368089.3409710 10.1145/3597926.3598052 10.1145/3379446 10.1145/2908080.2908096 10.1109/69.761663 10.5281/zenodo.10609061 10.1145/191839.191927 10.1145/2892208.2892226 10.1145/1376616.1376673 10.1109/69.877512 10.1145/2345156.2254104 10.1145/3191315.3191322 10.1145/3468264.3468573 10.1145/3453483.3454070 10.1145/298514.298558 10.1002/cpe.5643 10.1145/3293883.3295719 10.1145/3428279 10.1145/1065167.1065169 10.1145/1592761.1592785 10.1109/TSE.2016.2532875 10.1145/73721.73736 10.1561/1900000017 10.1109/69.43410 10.1007/978-3-319-41540-6_23 10.1145/996841.996859 10.1007/978-3-642-32925-8_12 10.1109/PACT.2019.00015 10.1145/3143561 10.1007/978-3-540-78800-3_24 10.1145/2391229.2391230 10.14778/3282495.3282500 10.1007/11785477_2 10.1145/2882903.2915229 10.1145/3243734.3243780 10.1145/16894.16859 10.1007/978-3-540-88594-8_8 10.1145/1640089.1640108 10.1109/ICSE.2019.00120 10.1561/9781638280439 10.1016/j.artint.2012.04.008 10.1016/0743-1066(87)90004-5 10.1145/6012.15399 10.1145/2790449.2790522 10.1145/3372297.3417260 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3649815 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 136 |
| ExternalDocumentID | 10_1145_3649815 3649815 |
| GrantInformation_xml | – fundername: Fundamental Research Funds for the Central Universities grantid: No.2023300180 funderid: https:\/\/doi.org\/10.13039\/501100012226 – fundername: National Natural Science Foundation of China grantid: No.62032010, No.62232001, No.62202220, and No.6217220 funderid: https:\/\/doi.org\/10.13039\/501100001809 |
| GroupedDBID | AAKMM AAYFX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX CITATION |
| ID | FETCH-LOGICAL-a277t-6e2773423b9232e95e58b18f7f5ed7f5b6d2b25fbaf5219213647b27a3d1b703 |
| ISICitedReferencesCount | 1 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001209927600005&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:54:36 EST 2025 Tue Nov 18 21:33:43 EST 2025 Mon Jul 07 16:40:28 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | OOPSLA1 |
| Keywords | Datalog engine testing test oracle cross-rule optimization bugs |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a277t-6e2773423b9232e95e58b18f7f5ed7f5b6d2b25fbaf5219213647b27a3d1b703 |
| ORCID | 0000-0002-2848-6108 0000-0001-8303-2099 0000-0003-4794-1652 |
| OpenAccessLink | https://dl.acm.org/doi/10.1145/3649815 |
| PageCount | 27 |
| ParticipantIDs | crossref_citationtrail_10_1145_3649815 crossref_primary_10_1145_3649815 acm_primary_3649815 |
| PublicationCentury | 2000 |
| PublicationDate | 2024-04-29 |
| PublicationDateYYYYMMDD | 2024-04-29 |
| PublicationDate_xml | – month: 04 year: 2024 text: 2024-04-29 day: 29 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2024 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | (bib24) 1970 (bib52) 1995; 23 (bib6) 2015 (bib23) 2012 (bib59) 1994 (bib8) 1987; 4 (bib49) 1996 (bib47) 2023 (bib22) 1990 (bib38) 2022; 34 (bib42) 2005 (bib26) 1999; 11 (bib36) 2019a (bib54) 2020 (bib74) 2020 (bib37) 2019b (bib29) 2006 (bib34) 2023 (bib30) 2011 (bib56) 2020c (bib7) 2019 (bib69) 1989 (bib63) 2023 (bib12) 2018; 20 (bib39) 2022; 12 (bib43) 2022 (bib50) 2008 (bib9) 1985 (bib20) 2020 (bib41) 2012 (bib60) 2022 (bib62) 2016; 42 (bib13) 2009 (bib67) 2018; 12 (bib19) 1989; 1 (bib44) 2009; 52 (bib25) 2019 (bib27) 2013; 5 (bib2) 1995; 8 (bib21) 2018; 51 (bib61) 2016 (bib51) 2019 (bib72) 2024 (bib5) 2022 (bib31) 2021a (bib57) 1990 (bib4) 2017 (bib32) 2021b (bib70) 1989 (bib18) 2015 (bib45) 2016 (bib65) 2016 (bib17) 2008 (bib46) 2021 (bib55) 2020b; 4 (bib66) 1998; 98 (bib35) 2016 (bib10) 1986 (bib64) 2008 (bib58) 2019; 2 (bib68) 2018 (bib11) 2020; 4 (bib53) 2012; 47 (bib15) 1997 (bib33) 2023 (bib71) 2004 (bib73) 2020; 42 (bib28) 2013; 5 (bib40) 1994 (bib3) 2012; 187 (bib48) 1998; 10 (bib16) 2000; 12 (bib14) 2018 (bib1) 1988 e_1_2_2_4_1 e_1_2_2_24_1 Liang Yu (e_1_2_2_43_1) 2022 e_1_2_2_20_1 e_1_2_2_41_1 e_1_2_2_62_1 Ramakrishnan Raghu (e_1_2_2_52_1) 1995 e_1_2_2_64_1 e_1_2_2_8_1 Hu Xiaowen (e_1_2_2_31_1) 2021 e_1_2_2_45_1 e_1_2_2_26_1 e_1_2_2_47_1 e_1_2_2_68_1 Scholz Bernhard (e_1_2_2_60_1) 2022 Jordan Herbert (e_1_2_2_36_1) 2019 Bembenek Aaron (e_1_2_2_11_1) 2020 e_1_2_2_13_1 e_1_2_2_59_1 Backes John (e_1_2_2_7_1) 2019 Brent Lexi (e_1_2_2_14_1) 2018 Jordan Herbert (e_1_2_2_38_1) 2022; 34 Gelder Allen Van (e_1_2_2_70_1) 1989 e_1_2_2_51_1 e_1_2_2_19_1 e_1_2_2_32_1 e_1_2_2_53_1 e_1_2_2_74_1 e_1_2_2_17_1 e_1_2_2_55_1 e_1_2_2_57_1 Werner (e_1_2_2_40_1) e_1_2_2_72_1 e_1_2_2_25_1 Green Todd J (e_1_2_2_28_1) 2013 e_1_2_2_23_1 e_1_2_2_1_1 Abiteboul Serge (e_1_2_2_2_1) e_1_2_2_3_1 e_1_2_2_63_1 Consens Mariano P. (e_1_2_2_22_1) 1990 e_1_2_2_42_1 e_1_2_2_65_1 Buccafurri Francesco (e_1_2_2_15_1) e_1_2_2_9_1 e_1_2_2_29_1 e_1_2_2_44_1 e_1_2_2_67_1 e_1_2_2_27_1 Ketsman Bas (e_1_2_2_39_1) 2022 e_1_2_2_46_1 Mooney Raymond J (e_1_2_2_49_1) 1996 e_1_2_2_69_1 McKeeman William M (e_1_2_2_48_1) 1998; 10 Chen Tsong Yueh (e_1_2_2_21_1) 2018; 51 e_1_2_2_61_1 Slutz Donald R (e_1_2_2_66_1) 1998; 98 e_1_2_2_37_1 Rigger Manuel (e_1_2_2_56_1) 2020 e_1_2_2_12_1 Hoder Kryštof (e_1_2_2_30_1) 2011 e_1_2_2_10_1 e_1_2_2_54_1 e_1_2_2_73_1 e_1_2_2_18_1 e_1_2_2_33_1 Jiang Zu-Ming (e_1_2_2_34_1) 2023 e_1_2_2_16_1 e_1_2_2_35_1 Ryzhyk Leonid (e_1_2_2_58_1) 2019; 2 Arch Samuel (e_1_2_2_5_1) e_1_2_2_50_1 e_1_2_2_71_1 Aref Molham (e_1_2_2_6_1) 2015 |
| References_xml | – start-page: 1 year: 2005 end-page: 12 ident: bib42 publication-title: Context-sensitive program analysis as database queries. In Proceedings of the twenty-fourth ACM SIGMODSIGACT-SIGART symposium on Principles of database systems – start-page: 82 year: 2019 end-page: 96 ident: bib51 publication-title: In 2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT) – start-page: 143 year: 1988 end-page: 153 ident: bib1 publication-title: In Proceedings of the 1988 ACM SIGMOD International Conference on Management of Data (Chicago, Illinois, USA) (SIGMOD '88). Association for Computing Machinery, New York, NY, USA doi: 10.1145/50202.50218 – start-page: 140 year: 1989 end-page: 149 ident: bib69 publication-title: Bottom-up beats top-down for datalog. In Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems – start-page: 25 year: 2017 end-page: 30 ident: bib4 publication-title: Association for Computing Machinery doi: 10.1145/3088515.3088522 – start-page: 1140 year: 2020 end-page: 1152 ident: bib54 publication-title: In Proceedings of the 28th ACM 7oint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering doi: 10.1145/3368089.3409710 – start-page: 422 year: 2016 end-page: 430 ident: bib35 publication-title: International Conference on Computer Aided Verification – volume: 8 year: 1995 ident: bib2 – start-page: 243 year: 2009 end-page: 262 ident: bib13 article-title: Strictly declarative specification of sophisticated points-to analyses publication-title: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications – volume: 4 start-page: 259 issue: 3 year: 1987 end-page: 262 ident: bib8 article-title: A generalization of the differential approach to recursive query evaluation publication-title: The Journal of Logic Programming – start-page: 236 year: 2023 end-page: 247 ident: bib47 article-title: Dependency-Aware Metamorphic Testing of Datalog Engines publication-title: Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis doi: 10.1145/3597926.3598052 – year: 2023 ident: bib63 publication-title: SQLsmith – volume: 5 start-page: 105 issue: 2 year: 2013 end-page: 195 ident: bib28 article-title: Datalog and recursive query processing publication-title: Foundations and Trends® in Databases – start-page: 2 year: 1997 end-page: 17 ident: bib15 publication-title: Logic Programming And Nonmonotonic Reasoning, Jürgen Dix, Ulrich Furbach, and Anil Nerode – start-page: 327 year: 2019b end-page: 339 ident: bib37 publication-title: A specialized B-tree for concurrent datalog evaluation. In Proceedings of the 24th symposium on principles and practice of parallel programming – volume: 187 start-page: 156 year: 2012 end-page: 192 ident: bib3 article-title: Magic sets for disjunctive datalog programs publication-title: Artificial Intelligence – start-page: 1 year: 1996 end-page: 22 ident: bib49 publication-title: International conference on inductive logic programming – start-page: 131 year: 2004 end-page: 144 ident: bib71 article-title: Cloning-based context-sensitive pointer alias analysis using binary decision diagrams publication-title: In Proceedings of the ACM SIGPLAN 2004 conference on Programming Language Design and Implementation – volume: 42 issue: 2 year: 2020 ident: bib73 article-title: Debugging Large-Scale Datalog: A Scalable Provenance Evaluation Strategy publication-title: ACM Trans. Program doi: 10.1145/3379446 – start-page: 231 year: 2019 end-page: 241 ident: bib7 publication-title: International Conference on Computer Aided Verification – start-page: 13 194 year: 2016 end-page: 17 208 ident: bib45 publication-title: Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation doi: 10.1145/2908080.2908096 – start-page: 4309 year: 2022 end-page: 4326 ident: bib43 publication-title: Detecting Logical Bugs of {DBMS} with Coverage-based Guidance. In 31st USENIX Security Symposium – start-page: 1 year: 1989 end-page: 10 ident: bib70 article-title: The alternating fixpoint of logic programs with negation publication-title: In Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems. – volume: 1 start-page: 146 issue: 1 year: 1989 end-page: 166 ident: bib19 article-title: What you always wanted to know about Datalog(and never dared to ask) publication-title: IEEE transactions on knowledge and data engineering – volume: 11 start-page: 265 issue: 2 year: 1999 end-page: 283 ident: bib26 article-title: Dynamic programming in Datalog with aggregates publication-title: IEEE Transactions on Knowledge and Data Engineering doi: 10.1109/69.761663 – start-page: 955 year: 2020 end-page: 970 ident: bib74 article-title: Squirrel: Testing database management systems with language validity and coverage feedback publication-title: In Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security – volume: 23 start-page: 125 issue: 2 year: 1995 end-page: 149 ident: bib52 publication-title: The journal of logic programming – start-page: 143 year: 2008 end-page: 159 ident: bib17 publication-title: International Workshop on Semantics in Data and Knowledge Bases – start-page: 16 year: 1986 end-page: 52 ident: bib10 publication-title: An amateur's introduction to recursive query processing strategies. In Proceedings of the 1986 ACM SIGMOD international conference on Management of data – volume: 4 start-page: 1 issue: OOPSLA year: 2020 end-page: 31 ident: bib11 article-title: Formulog: Datalog for SMT-based static analysis publication-title: Proceedings of the ACM on Programming Languages – start-page: 163 year: 2021a end-page: 181 ident: bib31 publication-title: Asian Symposium on Programming Languages and Systems – issue: arXiv:1809.03981 year: 2018 ident: bib14 publication-title: Vandal: A scalable security analysis framework for smart contracts. arXiv preprint – volume: 51 start-page: 1 issue: 1 year: 2018 end-page: 27 ident: bib21 article-title: Metamorphic testing: A review of challenges and opportunities publication-title: ACM Computing Surveys (CSUR) – volume: 98 start-page: 618 year: 1998 end-page: 622 ident: bib66 article-title: Massive stochastic testing of SQL. In VLDB publication-title: Vol. – start-page: 118 year: 1994 end-page: 138 ident: bib40 publication-title: Workshop on Information Systems and Artificial Intelligence – start-page: 83 year: 2022 end-page: 102 ident: bib5 publication-title: Logic-Based Program Synthesis and Transformation, Alicia Villanueva – volume: 10 start-page: 100 issue: 1 year: 1998 end-page: 107 ident: bib48 article-title: Differential testing for software publication-title: Digital Technical Ұournal – start-page: 1135 year: 2016 end-page: 1149 ident: bib65 publication-title: Big data analytics with datalog queries on spark. In Proceedings of the 2016 International Conference on Management of Data – volume: 42 start-page: 805 issue: 9 year: 2016 end-page: 824 ident: bib62 article-title: Ana B Sanchez, and Antonio Ruiz-Cortés. 2016. A survey on metamorphic testing publication-title: IEEE Transactions on software engineering – start-page: 1176 year: 2019 end-page: 1186 ident: bib25 publication-title: In 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE). IEEE – volume: 52 start-page: 87 issue: 11 year: 2009 end-page: 95 ident: bib44 article-title: Declarative networking – volume: 4 start-page: 1 year: 2020b end-page: 30 ident: bib55 article-title: Finding bugs in database systems via query partitioning publication-title: Proceedings of the ACM on Programming Languages – year: 1970 ident: bib24 publication-title: Notes on structured programming – start-page: 1 year: 2012 end-page: 14 ident: bib23 publication-title: Logic and lattices for distributed programming. In Proceedings of the Third ACM Symposium on Cloud Computing – start-page: 67 year: 2018 end-page: 82 ident: bib68 publication-title: Securify Practical security analysis of smart contracts – year: 2024 ident: bib72 publication-title: Artifact for “Finding Cross-Rule Optimization Bugs in Datalog Engines” doi: 10.5281/zenodo.10609061 – start-page: 31 year: 2019a end-page: 40 ident: bib36 publication-title: Brie: A specialized trie for concurrent datalog. In Proceedings of the 10th International Workshop on Programming Models and Applications for Multicores and Manycores – start-page: 1 year: 1985 end-page: 15 ident: bib9 publication-title: Magic Sets and Other Strange Ways to Implement Logic Programs (Extended Abstract). In Proceedings of the Fifth ACM SIGACT-SIGMOD Symposium on Principles of Database Systems – start-page: 379 year: 1990 end-page: 394 ident: bib22 publication-title: ICDT '90 – start-page: 442 year: 1994 end-page: 453 ident: bib59 publication-title: In Proceedings of the 1994 ACM SIGMOD International Conference on Management of Data doi: 10.1145/191839.191927 – volume: 12 start-page: 141 issue: 2 year: 2018 end-page: 153 ident: bib67 article-title: Automatic index selection for large-scale datalog computation publication-title: Proceedings of the VLDB Endowment – volume: 5 start-page: 105 issue: 2 year: 2013 end-page: 195 ident: bib27 article-title: Datalog and Recursive Query Processing publication-title: Foundations and Trends® in Databases – volume: 12 start-page: 1 issue: 1 year: 2022 end-page: 68 ident: bib39 article-title: Modern Datalog Engines publication-title: Foundations and Trends® in Databases – start-page: 196 year: 2016 end-page: 206 ident: bib61 publication-title: In Proceedings of the 25th International Conference on Compiler Construction doi: 10.1145/2892208.2892226 – year: 2023 ident: bib33 publication-title: CozoDB: Hippocampus for AI, with Embedded Datalog – start-page: 667 year: 2020c end-page: 682 ident: bib56 article-title: Testing database engines via pivoted query synthesis publication-title: In 14th USENIX Symposium on Operating Systems Design and Implementation – start-page: 2 year: 2006 end-page: 27 ident: bib29 publication-title: European Conference on Object-Oriented Programming – start-page: 553 year: 2008 end-page: 566 ident: bib64 publication-title: In Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data doi: 10.1145/1376616.1376673 – volume: 2 start-page: 4 issue: 2019 year: 2019 end-page: 5 ident: bib58 article-title: Differential Datalog – volume: 12 start-page: 845 issue: 5 year: 2000 end-page: 860 ident: bib16 article-title: Enhancing Disjunctive Datalog by constraints publication-title: IEEE Transactions on Knowledge and Data Engineering doi: 10.1109/69.877512 – volume: 47 start-page: 335 issue: 6 year: 2012 end-page: 346 ident: bib53 article-title: Test-Case Reduction for C Compiler Bugs publication-title: Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation doi: 10.1145/2345156.2254104 – volume: 20 start-page: 331 issue: ACM Books year: 2018 end-page: 354 ident: bib12 article-title: SolverBlox: algebraic modeling in datalog publication-title: In Declarative Logic Programming: Theory, Systems, and Applications doi: 10.1145/3191315.3191322 – year: 2022 ident: bib60 publication-title: SAS 2022 – year: 2020 ident: bib20 publication-title: Metamorphic testing: a new approach for generating next test cases – volume: 34 issue: 2 year: 2022 ident: bib38 article-title: Specializing parallel data structures for Datalog publication-title: Concurrency and Computation: Practice and Experience – start-page: 639 year: 2021 end-page: 650 ident: bib46 article-title: Metamorphic Testing of Datalog Engines publication-title: In Proceedings of the 29th ACM 7oint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering doi: 10.1145/3468264.3468573 – start-page: 681 year: 2021b end-page: 695 ident: bib32 publication-title: In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation doi: 10.1145/3453483.3454070 – start-page: 111 year: 2012 end-page: 122 ident: bib41 publication-title: International Datalog 2.0 Workshop – start-page: 457 year: 2011 end-page: 462 ident: bib30 publication-title: International Conference on Computer Aided Verification – start-page: 1371 year: 2015 end-page: 1382 ident: bib6 publication-title: Design and implementation of the LogicBlox system. In Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data – year: 2023 ident: bib34 publication-title: DynSQL: Stateful Fuzzing for Database Management Systems with Complex and Valid SQL Query Generation – start-page: 55 year: 2015 end-page: 66 ident: bib18 article-title: Debugging of wrong and missing answers for Datalog programs with constraint handling rules publication-title: In Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming – start-page: 161 year: 1990 end-page: 171 ident: bib57 publication-title: In Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems doi: 10.1145/298514.298558 – start-page: 337 year: 2008 end-page: 340 ident: bib50 publication-title: International conference on Tools and Algorithms for the Construction and Analysis of Systems – volume-title: Building a Join Optimizer for Soufflé ident: e_1_2_2_5_1 – volume-title: International conference on inductive logic programming. 1–22 year: 1996 ident: e_1_2_2_49_1 – volume: 98 start-page: 618 year: 1998 ident: e_1_2_2_66_1 article-title: Massive stochastic testing of SQL publication-title: VLDB. – ident: e_1_2_2_32_1 doi: 10.1145/3453483.3454070 – volume-title: Vandal: A scalable security analysis framework for smart contracts. arXiv preprint arXiv:1809.03981. year: 2018 ident: e_1_2_2_14_1 – volume: 34 start-page: e5643 year: 2022 ident: e_1_2_2_38_1 article-title: Specializing parallel data structures for Datalog publication-title: Concurrency and Computation: Practice and Experience doi: 10.1002/cpe.5643 – volume-title: Strong and weak constraints in disjunctive datalog ident: e_1_2_2_15_1 – ident: e_1_2_2_37_1 doi: 10.1145/3293883.3295719 – ident: e_1_2_2_55_1 doi: 10.1145/3428279 – ident: e_1_2_2_59_1 doi: 10.1145/191839.191927 – ident: e_1_2_2_42_1 doi: 10.1145/1065167.1065169 – ident: e_1_2_2_44_1 doi: 10.1145/1592761.1592785 – volume-title: Proceedings of the 10th International Workshop on Programming Models and Applications for Multicores and Manycores. 31–40 year: 2019 ident: e_1_2_2_36_1 – ident: e_1_2_2_62_1 doi: 10.1109/TSE.2016.2532875 – ident: e_1_2_2_69_1 doi: 10.1145/73721.73736 – ident: e_1_2_2_27_1 doi: 10.1561/1900000017 – ident: e_1_2_2_1_1 doi: 10.1145/50202.50218 – ident: e_1_2_2_72_1 doi: 10.5281/zenodo.10609061 – ident: e_1_2_2_61_1 doi: 10.1145/2892208.2892226 – ident: e_1_2_2_53_1 doi: 10.1145/2345156.2254104 – ident: e_1_2_2_19_1 doi: 10.1109/69.43410 – ident: e_1_2_2_47_1 doi: 10.1145/3597926.3598052 – volume-title: 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20) year: 2020 ident: e_1_2_2_56_1 – ident: e_1_2_2_33_1 – ident: e_1_2_2_35_1 doi: 10.1007/978-3-319-41540-6_23 – volume-title: Proceedings of the ACM on Programming Languages, 4, OOPSLA year: 2020 ident: e_1_2_2_11_1 – ident: e_1_2_2_71_1 doi: 10.1145/996841.996859 – ident: e_1_2_2_41_1 doi: 10.1007/978-3-642-32925-8_12 – volume-title: Workshop on Information Systems and Artificial Intelligence. 118–138 ident: e_1_2_2_40_1 – ident: e_1_2_2_26_1 doi: 10.1109/69.761663 – ident: e_1_2_2_51_1 doi: 10.1109/PACT.2019.00015 – ident: e_1_2_2_63_1 – volume: 51 start-page: 1 year: 2018 ident: e_1_2_2_21_1 article-title: Metamorphic testing: A review of challenges and opportunities publication-title: ACM Computing Surveys (CSUR) doi: 10.1145/3143561 – volume-title: Boon Thau Loo, and Wenchao Zhou. year: 2013 ident: e_1_2_2_28_1 – ident: e_1_2_2_50_1 doi: 10.1007/978-3-540-78800-3_24 – ident: e_1_2_2_23_1 doi: 10.1145/2391229.2391230 – ident: e_1_2_2_67_1 doi: 10.14778/3282495.3282500 – volume-title: Proceedings of the 2015 ACM SIGMOD International Conference on Management of Data. 1371–1382 year: 2015 ident: e_1_2_2_6_1 – ident: e_1_2_2_12_1 doi: 10.1145/3191315.3191322 – ident: e_1_2_2_29_1 doi: 10.1007/11785477_2 – volume-title: A survey of deductive database systems. The journal of logic programming, 23, 2 year: 1995 ident: e_1_2_2_52_1 – ident: e_1_2_2_57_1 doi: 10.1145/298514.298558 – ident: e_1_2_2_45_1 doi: 10.1145/2908080.2908096 – ident: e_1_2_2_65_1 doi: 10.1145/2882903.2915229 – ident: e_1_2_2_68_1 doi: 10.1145/3243734.3243780 – ident: e_1_2_2_10_1 doi: 10.1145/16894.16859 – ident: e_1_2_2_17_1 doi: 10.1007/978-3-540-88594-8_8 – volume-title: The Choice Construct in the Soufflé Language. In Asian Symposium on Programming Languages and Systems. 163–181 year: 2021 ident: e_1_2_2_31_1 – volume: 2 start-page: 4 year: 2019 ident: e_1_2_2_58_1 article-title: Differential Datalog publication-title: Datalog – ident: e_1_2_2_13_1 doi: 10.1145/1640089.1640108 – ident: e_1_2_2_20_1 – volume-title: Proceedings of the eighth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems. 1–10 year: 1989 ident: e_1_2_2_70_1 – volume-title: International Conference on Computer Aided Verification. 231–241 year: 2019 ident: e_1_2_2_7_1 – ident: e_1_2_2_25_1 doi: 10.1109/ICSE.2019.00120 – volume-title: Modern Datalog Engines. Foundations and Trends® in Databases, 12, 1 year: 2022 ident: e_1_2_2_39_1 doi: 10.1561/9781638280439 – volume-title: Foundations of databases. 8 ident: e_1_2_2_2_1 – ident: e_1_2_2_3_1 doi: 10.1016/j.artint.2012.04.008 – volume-title: 31st USENIX Security Symposium (USENIX Security 22) year: 2022 ident: e_1_2_2_43_1 – volume-title: Mendelzon year: 1990 ident: e_1_2_2_22_1 – ident: e_1_2_2_46_1 doi: 10.1145/3468264.3468573 – ident: e_1_2_2_64_1 doi: 10.1145/1376616.1376673 – ident: e_1_2_2_4_1 doi: 10.1145/3088515.3088522 – ident: e_1_2_2_8_1 doi: 10.1016/0743-1066(87)90004-5 – volume-title: Proceedings of the 32nd USENIX Security Symposium (Security’23) year: 2023 ident: e_1_2_2_34_1 – volume-title: International Conference on Computer Aided Verification. 457–462 year: 2011 ident: e_1_2_2_30_1 – volume: 10 start-page: 100 year: 1998 ident: e_1_2_2_48_1 article-title: Differential testing for software publication-title: Digital Technical Journal – ident: e_1_2_2_73_1 doi: 10.1145/3379446 – ident: e_1_2_2_54_1 doi: 10.1145/3368089.3409710 – ident: e_1_2_2_24_1 – ident: e_1_2_2_9_1 doi: 10.1145/6012.15399 – ident: e_1_2_2_18_1 doi: 10.1145/2790449.2790522 – ident: e_1_2_2_16_1 doi: 10.1109/69.877512 – volume-title: Commercial-Grade Static Analyzers in Datalog. SAS year: 2022 ident: e_1_2_2_60_1 – ident: e_1_2_2_74_1 doi: 10.1145/3372297.3417260 |
| SSID | ssj0001934839 |
| Score | 2.2613099 |
| Snippet | Datalog is a popular and widely-used declarative logic programming language. Datalog engines apply many cross-rule optimizations; bugs in them can cause... |
| SourceID | crossref acm |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 110 |
| SubjectTerms | Database query processing Information systems Software and its engineering Software testing and debugging |
| SubjectTermsDisplay | Information systems -- Database query processing Software and its engineering -- Software testing and debugging |
| Title | Finding Cross-Rule Optimization Bugs in Datalog Engines |
| URI | https://dl.acm.org/doi/10.1145/3649815 |
| Volume | 8 |
| WOSCitedRecordID | wos001209927600005&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV3Nb9MwFLdgcOCywQDRjSEfEJcpMDtO7BxLx7RDu1bQQ2-VnThdpDVU_ZimHfjbeY5f0lCQGAcuTuXYVuTfr88vL--DkPdS6iSyUR6EWoeBsFkY6BQUOc6EZTLMY55WSPfl1ZWaTJIRmrJXVTkBWZbq7i5Z_FeooQ_AdqGz_wB3syh0wG8AHVqAHdoHAX9R-ECVnjv_gq-bG3s6BLkwx4DL08-bWeUDe-4NN5iRcNXWUkfNqVY5enR7A_dNAV255m7x2szZaOSN4bl3XWyN9L4L3nfv3e3m404xm3mmDHS5QZ99tDzwymEFzROVgOJCRgETPsL5o_1DH0pY1SLScDj61u-ylsxk6Nfqj1_m86H8LtmFS4IRxiJRPv7z19zZO2da42no466jKU58TJ5wGSVOgg9-tIxxSShUVXWueX4fYO3mfsK5Tn9J5y39paWIjJ-TfXyDoF2P_AvyyJaH5KCuzkFRWL8kEolAt0SgbSJQRwRalBSJQJEIr8j44su4dxlgmYxAcynXQWzh4hI5GlDWuXV_PWWYymUe2QwaE2fc8Cg3OgddLeHMlQwwXOowYwYE_muyV34v7RtCYxNGUhvJ05QJecaT3KSxkjkT5izOmOqQQ9iB6cLnQan3tEM-1DsyTTGxvKtvcjPd2fwOoc3Aeo2dIUd_H3JMnm3J-JbsrZcbe0KeprfrYrV8V-H6E4bWYjw |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Finding+Cross-Rule+Optimization+Bugs+in+Datalog+Engines&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Zhang%2C+Chi&rft.au=Wang%2C+Linzhang&rft.au=Rigger%2C+Manuel&rft.date=2024-04-29&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=8&rft.issue=OOPSLA1&rft.spage=110&rft.epage=136&rft_id=info:doi/10.1145%2F3649815&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3649815 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |