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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Proceedings of ACM on programming languages Jg. 8; H. OOPSLA1; S. 110 - 136
Hauptverfasser: Zhang, Chi, Wang, Linzhang, Rigger, Manuel
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