{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,9,26]],"date-time":"2025-09-26T13:05:42Z","timestamp":1758891942571,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":80,"publisher":"ACM","license":[{"start":{"date-parts":[[2023,1,27]],"date-time":"2023-01-27T00:00:00Z","timestamp":1674777600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"NSF (National Science Foundation)","doi-asserted-by":"publisher","award":["CNS-1814388, CNS-1526966"],"award-info":[{"award-number":["CNS-1814388, CNS-1526966"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Qualcomm Chair Endowment","award":[""],"award-info":[{"award-number":[""]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2023,1,27]]},"DOI":"10.1145\/3575693.3575699","type":"proceedings-article","created":{"date-parts":[[2023,1,30]],"date-time":"2023-01-30T22:56:55Z","timestamp":1675119415000},"page":"632-645","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Protecting Data Integrity of Web Applications with Database Constraints Inferred from Application Code"],"prefix":"10.1145","author":[{"given":"Haochen","family":"Huang","sequence":"first","affiliation":[{"name":"University of California at San Diego, USA"}]},{"given":"Bingyu","family":"Shen","sequence":"additional","affiliation":[{"name":"University of California at San Diego, USA"}]},{"given":"Li","family":"Zhong","sequence":"additional","affiliation":[{"name":"University of California at San Diego, USA"}]},{"given":"Yuanyuan","family":"Zhou","sequence":"additional","affiliation":[{"name":"University of California at San Diego, USA"}]}],"member":"320","published-online":{"date-parts":[[2023,1,30]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00778-015-0389-y"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2016.7498363"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2063576.2063801"},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/2723372.2737784"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.14778\/3407790.3407824"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.14778\/3402755.3402781"},{"key":"e_1_3_2_1_7_1","unstructured":"Alex Bunardzic. 2021. Should Database Manage The Meaning? http:\/\/lesscode.org\/2005\/09\/29\/should-database-manage-the-meaning\/ \t\t\t\t  Alex Bunardzic. 2021. Should Database Manage The Meaning? http:\/\/lesscode.org\/2005\/09\/29\/should-database-manage-the-meaning\/"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/3267809.3267844"},{"key":"e_1_3_2_1_9_1","unstructured":"Christopher John Date. 1975. An introduction to database systems. Pearson Education India. \t\t\t\t  Christopher John Date. 1975. An introduction to database systems. Pearson Education India."},{"key":"e_1_3_2_1_10_1","unstructured":"Django. 2021. Constraints reference. https:\/\/docs.djangoproject.com\/en\/4.0\/ref\/models\/constraints\/ \t\t\t\t  Django. 2021. Constraints reference. https:\/\/docs.djangoproject.com\/en\/4.0\/ref\/models\/constraints\/"},{"key":"e_1_3_2_1_11_1","unstructured":"Django. 2021. get() in django\/db\/models\/query.py. https:\/\/github.com\/django\/django\/blob\/d8b437b1fbe3bf54822833bea5e19d2142cf3e1f\/django\/db\/models\/query.py##L499 \t\t\t\t  Django. 2021. get() in django\/db\/models\/query.py. https:\/\/github.com\/django\/django\/blob\/d8b437b1fbe3bf54822833bea5e19d2142cf3e1f\/django\/db\/models\/query.py##L499"},{"key":"e_1_3_2_1_12_1","unstructured":"Django. 2021. The Web framework for perfectionists with deadlines | Django. https:\/\/www.djangoproject.com\/ \t\t\t\t  Django. 2021. The Web framework for perfectionists with deadlines | Django. https:\/\/www.djangoproject.com\/"},{"key":"e_1_3_2_1_13_1","unstructured":"Django. Jan. 2022. QuerySet API reference. https:\/\/docs.djangoproject.com\/en\/4.0\/ref\/models\/querysets\/ \t\t\t\t  Django. Jan. 2022. QuerySet API reference. https:\/\/docs.djangoproject.com\/en\/4.0\/ref\/models\/querysets\/"},{"key":"e_1_3_2_1_14_1","unstructured":"Django. Nov. 2021. QuerySet API reference - get_or_create(). https:\/\/docs.djangoproject.com\/en\/4.0\/ref\/models\/querysets\/#get-or-create \t\t\t\t  Django. Nov. 2021. QuerySet API reference - get_or_create(). https:\/\/docs.djangoproject.com\/en\/4.0\/ref\/models\/querysets\/#get-or-create"},{"key":"e_1_3_2_1_15_1","unstructured":"Django. Nov. 2021. Writing database migrations. https:\/\/docs.djangoproject.com\/en\/3.2\/howto\/writing-migrations\/ \t\t\t\t  Django. Nov. 2021. Writing database migrations. https:\/\/docs.djangoproject.com\/en\/3.2\/howto\/writing-migrations\/"},{"key":"e_1_3_2_1_16_1","unstructured":"Django-oscar. 2021. Change type and name of basket field on AbstractOrder. https:\/\/github.com\/django-oscar\/django-oscar\/commit\/9fa2589b6c70d1f3bff381233eddc41a63aa22e4 \t\t\t\t  Django-oscar. 2021. Change type and name of basket field on AbstractOrder. https:\/\/github.com\/django-oscar\/django-oscar\/commit\/9fa2589b6c70d1f3bff381233eddc41a63aa22e4"},{"key":"e_1_3_2_1_17_1","unstructured":"Django-oscar. 2021. Check for existing email when updating profile. https:\/\/github.com\/django-oscar\/django-oscar\/pull\/324 \t\t\t\t  Django-oscar. 2021. Check for existing email when updating profile. https:\/\/github.com\/django-oscar\/django-oscar\/pull\/324"},{"key":"e_1_3_2_1_18_1","unstructured":"Django-oscar. 2021. Why is order.basket_id not a ForeignKey? https:\/\/groups.google.com\/g\/django-oscar\/c\/M0FgIB_f9tM\/m\/W-52L1zZMxAJ \t\t\t\t  Django-oscar. 2021. Why is order.basket_id not a ForeignKey? https:\/\/groups.google.com\/g\/django-oscar\/c\/M0FgIB_f9tM\/m\/W-52L1zZMxAJ"},{"key":"e_1_3_2_1_19_1","unstructured":"Django-oscar. 2022. Make attribute codes unique per product class. https:\/\/github.com\/django-oscar\/django-oscar\/pull\/3823 \t\t\t\t  Django-oscar. 2022. Make attribute codes unique per product class. https:\/\/github.com\/django-oscar\/django-oscar\/pull\/3823"},{"key":"e_1_3_2_1_20_1","unstructured":"Django-oscar. 2022. Should OrderDiscount.offer_id and voucher_id be ForeignKey? https:\/\/github.com\/django-oscar\/django-oscar\/issues\/3821 \t\t\t\t  Django-oscar. 2022. Should OrderDiscount.offer_id and voucher_id be ForeignKey? https:\/\/github.com\/django-oscar\/django-oscar\/issues\/3821"},{"key":"e_1_3_2_1_21_1","unstructured":"Edx. 2022. What Makes the Open edX Platform Unique? See These Cases. https:\/\/openedx.org\/blog\/what-makes-open-edx-platform-unique-see-these-cases\/ \t\t\t\t  Edx. 2022. What Makes the Open edX Platform Unique? See These Cases. https:\/\/openedx.org\/blog\/what-makes-open-edx-platform-unique-see-these-cases\/"},{"key":"e_1_3_2_1_22_1","unstructured":"Edx-ecommerce. 2022. Adding E-Commerce to the Open edX Platform. https:\/\/github.com\/openedx\/ecommerce\/tree\/27e6b06b \t\t\t\t  Edx-ecommerce. 2022. Adding E-Commerce to the Open edX Platform. https:\/\/github.com\/openedx\/ecommerce\/tree\/27e6b06b"},{"key":"e_1_3_2_1_23_1","unstructured":"Instagram Engineering. 2016. Web Service Efficiency at Instagram with Python - Instagram Engineering. https:\/\/instagram-engineering.com\/web-service-efficiency-at-instagram-with-python-4976d078e366 \t\t\t\t  Instagram Engineering. 2016. Web Service Efficiency at Instagram with Python - Instagram Engineering. https:\/\/instagram-engineering.com\/web-service-efficiency-at-instagram-with-python-4976d078e366"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/302405.302467"},{"key":"e_1_3_2_1_25_1","volume-title":"The Daikon system for dynamic detection of likely invariants. Science of computer programming, 69, 1-3","author":"Ernst Michael D","year":"2007","unstructured":"Michael D Ernst , Jeff H Perkins , Philip J Guo , Stephen McCamant , Carlos Pacheco , Matthew S Tschantz , and Chen Xiao . 2007. The Daikon system for dynamic detection of likely invariants. Science of computer programming, 69, 1-3 ( 2007 ), 35\u201345. Michael D Ernst, Jeff H Perkins, Philip J Guo, Stephen McCamant, Carlos Pacheco, Matthew S Tschantz, and Chen Xiao. 2007. The Daikon system for dynamic detection of likely invariants. Science of computer programming, 69, 1-3 (2007), 35\u201345."},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDE.2018.00094"},{"key":"e_1_3_2_1_27_1","unstructured":"Google. 2022. Google Site Reliability Engineering Book. https:\/\/sre.google\/sre-book\/data-integrity\/ \t\t\t\t  Google. 2022. Google Site Reliability Engineering Book. https:\/\/sre.google\/sre-book\/data-integrity\/"},{"key":"e_1_3_2_1_28_1","unstructured":"David Heinemeier Hansson. 2021. Choose a single layer of cleverness. https:\/\/dhh.dk\/arc\/2005_09.html \t\t\t\t  David Heinemeier Hansson. 2021. Choose a single layer of cleverness. https:\/\/dhh.dk\/arc\/2005_09.html"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/174662.174663"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.14778\/2732240.2732248"},{"key":"e_1_3_2_1_31_1","unstructured":"IBM. 2021. Error and crash recovery from data corruption. https:\/\/www.ibm.com\/docs\/en\/ztpf\/1.1.0.15?topic=concepts-error-crash-recovery-from-data-corruption \t\t\t\t  IBM. 2021. Error and crash recovery from data corruption. https:\/\/www.ibm.com\/docs\/en\/ztpf\/1.1.0.15?topic=concepts-error-crash-recovery-from-data-corruption"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2016.58"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC.2017.37"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2882903.2915235"},{"key":"#cr-split#-e_1_3_2_1_35_1.1","unstructured":"Xiaoxuan Liu Shuxian Wang Mengzhu Sun Sharon Lee Sicheng Pan Joshua Wu Cong Yan Junwen Yang Shan Lu and Alvin Cheung. 2022. Leveraging Application Data Constraints to Optimize Database-Backed Web Applications. In arXiv. https:\/\/doi.org\/10.48550\/ARXIV.2205.02954 10.48550\/ARXIV.2205.02954"},{"key":"#cr-split#-e_1_3_2_1_35_1.2","unstructured":"Xiaoxuan Liu Shuxian Wang Mengzhu Sun Sharon Lee Sicheng Pan Joshua Wu Cong Yan Junwen Yang Shan Lu and Alvin Cheung. 2022. Leveraging Application Data Constraints to Optimize Database-Backed Web Applications. In arXiv. https:\/\/doi.org\/10.48550\/ARXIV.2205.02954"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/320521.320540"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1186\/s40411-017-0035-z"},{"volume-title":"SQL: 1999: understanding relational language components","author":"Melton Jim","key":"e_1_3_2_1_38_1","unstructured":"Jim Melton and Alan R Simon . 2001. SQL: 1999: understanding relational language components . Elsevier . Jim Melton and Alan R Simon. 2001. SQL: 1999: understanding relational language components. Elsevier."},{"key":"e_1_3_2_1_39_1","unstructured":"Mongodb. 2022. Unique Constraints on Arbitrary Fields. https:\/\/www.mongodb.com\/docs\/manual\/tutorial\/unique-constraints-on-arbitrary-fields\/ \t\t\t\t  Mongodb. 2022. Unique Constraints on Arbitrary Fields. https:\/\/www.mongodb.com\/docs\/manual\/tutorial\/unique-constraints-on-arbitrary-fields\/"},{"key":"e_1_3_2_1_40_1","unstructured":"MySQL. 2021. How MySQL Deals with Constraints. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/constraints.html \t\t\t\t  MySQL. 2021. How MySQL Deals with Constraints. https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/constraints.html"},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2642937.2643012"},{"key":"e_1_3_2_1_42_1","unstructured":"Openedx. 2022. Open edX \u2013 Deliver Inspiring Learning Experiences On Any Scale. https:\/\/github.com\/openedx\/edx-platform\/tree\/97edc47 \t\t\t\t  Openedx. 2022. Open edX \u2013 Deliver Inspiring Learning Experiences On Any Scale. https:\/\/github.com\/openedx\/edx-platform\/tree\/97edc47"},{"key":"e_1_3_2_1_43_1","unstructured":"Oracle. 2021. Oracle Database - Database Concepts - 7 Data Integrity. https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/21\/cncpt\/data-integrity.html \t\t\t\t  Oracle. 2021. Oracle Database - Database Concepts - 7 Data Integrity. https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/21\/cncpt\/data-integrity.html"},{"key":"e_1_3_2_1_44_1","unstructured":"Oscar. 2022. Oscar - Domain-driven e-commerce for Django. https:\/\/github.com\/django-oscar\/django-oscar\/tree\/18c87e \t\t\t\t  Oscar. 2022. Oscar - Domain-driven e-commerce for Django. https:\/\/github.com\/django-oscar\/django-oscar\/tree\/18c87e"},{"key":"e_1_3_2_1_45_1","unstructured":"Oscar. 2022. Unique constraints for several table\u2019s columns. https:\/\/github.com\/django-oscar\/django-oscar\/pull\/3868 \t\t\t\t  Oscar. 2022. Unique constraints for several table\u2019s columns. https:\/\/github.com\/django-oscar\/django-oscar\/pull\/3868"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.14778\/2752939.2752946"},{"key":"e_1_3_2_1_47_1","unstructured":"Postgresql. 2021. 11.8. Partial Indexes. https:\/\/www.postgresql.org\/docs\/current\/indexes-partial.html \t\t\t\t  Postgresql. 2021. 11.8. Partial Indexes. https:\/\/www.postgresql.org\/docs\/current\/indexes-partial.html"},{"key":"e_1_3_2_1_48_1","unstructured":"Postgresql. 2021. 5.4. Constraints Chapter 5. Data Definition. https:\/\/www.postgresql.org\/docs\/current\/ddl-constraints.html \t\t\t\t  Postgresql. 2021. 5.4. Constraints Chapter 5. Data Definition. https:\/\/www.postgresql.org\/docs\/current\/ddl-constraints.html"},{"key":"e_1_3_2_1_49_1","unstructured":"Python. 2022. ast \u2014 Abstract Syntax Trees. https:\/\/docs.python.org\/3\/library\/ast.html \t\t\t\t  Python. 2022. ast \u2014 Abstract Syntax Trees. https:\/\/docs.python.org\/3\/library\/ast.html"},{"key":"e_1_3_2_1_50_1","unstructured":"Rails. 2021. Active Record Migrations. https:\/\/edgeguides.rubyonrails.org\/active_record_migrations.html \t\t\t\t  Rails. 2021. Active Record Migrations. https:\/\/edgeguides.rubyonrails.org\/active_record_migrations.html"},{"key":"e_1_3_2_1_51_1","unstructured":"Rails. 2021. Concurrency and integrity for uniqueness in Rails. https:\/\/github.com\/rails\/rails\/blob\/main\/activerecord\/lib\/active_record\/validations\/uniqueness.rb##L179 \t\t\t\t  Rails. 2021. Concurrency and integrity for uniqueness in Rails. https:\/\/github.com\/rails\/rails\/blob\/main\/activerecord\/lib\/active_record\/validations\/uniqueness.rb##L179"},{"volume-title":"Database management systems. 3","author":"Ramakrishnan Raghu","key":"e_1_3_2_1_52_1","unstructured":"Raghu Ramakrishnan , Johannes Gehrke , and Johannes Gehrke . 2003. Database management systems. 3 , McGraw-Hill New York . Raghu Ramakrishnan, Johannes Gehrke, and Johannes Gehrke. 2003. Database management systems. 3, McGraw-Hill New York."},{"key":"e_1_3_2_1_53_1","unstructured":"Alexandra Rostin Oliver Albrecht Jana Bauckmann Felix Naumann and Ulf Leser. 2009. A machine learning approach to foreign key discovery.. In WebDB. \t\t\t\t  Alexandra Rostin Oliver Albrecht Jana Bauckmann Felix Naumann and Ulf Leser. 2009. A machine learning approach to foreign key discovery.. In WebDB."},{"key":"e_1_3_2_1_54_1","unstructured":"Saleor. 2021. Error in the dashboard. https:\/\/github.com\/saleor\/saleor\/issues\/1670 \t\t\t\t  Saleor. 2021. Error in the dashboard. https:\/\/github.com\/saleor\/saleor\/issues\/1670"},{"key":"e_1_3_2_1_55_1","unstructured":"Saleor. 2021. Make order.total not nullable. https:\/\/github.com\/saleor\/saleor\/pull\/1893 \t\t\t\t  Saleor. 2021. Make order.total not nullable. https:\/\/github.com\/saleor\/saleor\/pull\/1893"},{"key":"e_1_3_2_1_56_1","unstructured":"Saleor. 2021. Saleor \u2013 A headless GraphQL-first open-source e-commerce platform. https:\/\/github.com\/saleor\/saleor\/tree\/53e519df \t\t\t\t  Saleor. 2021. Saleor \u2013 A headless GraphQL-first open-source e-commerce platform. https:\/\/github.com\/saleor\/saleor\/tree\/53e519df"},{"key":"e_1_3_2_1_57_1","unstructured":"Saleor. 2022. Rebooting Enterprise with Open Source. https:\/\/saleor.io\/enterprise-open-source\/ \t\t\t\t  Saleor. 2022. Rebooting Enterprise with Open Source. https:\/\/saleor.io\/enterprise-open-source\/"},{"key":"e_1_3_2_1_58_1","unstructured":"Shuup. 2022. Multivendor Marketplace Platform - Enterprise Commerce Software. https:\/\/github.com\/shuup\/shuup\/tree\/25f78c \t\t\t\t  Shuup. 2022. Multivendor Marketplace Platform - Enterprise Commerce Software. https:\/\/github.com\/shuup\/shuup\/tree\/25f78c"},{"key":"e_1_3_2_1_59_1","unstructured":"Stackexchange. 2021. Why are constraints applied in the database rather than the code? https:\/\/dba.stackexchange.com\/questions\/39833\/why-are-constraints-applied-in-the-database-rather-than-the-code \t\t\t\t  Stackexchange. 2021. Why are constraints applied in the database rather than the code? https:\/\/dba.stackexchange.com\/questions\/39833\/why-are-constraints-applied-in-the-database-rather-than-the-code"},{"key":"e_1_3_2_1_60_1","unstructured":"Stackoverflow. 2021. Should you enforce constraints at the database level as well as the application level? https:\/\/stackoverflow.com\/questions\/464042\/should-you-enforce-constraints-at-the-database-level-as-well-as-the-application \t\t\t\t  Stackoverflow. 2021. Should you enforce constraints at the database level as well as the application level? https:\/\/stackoverflow.com\/questions\/464042\/should-you-enforce-constraints-at-the-database-level-as-well-as-the-application"},{"key":"e_1_3_2_1_61_1","unstructured":"Teradata. 2021. Teradata - Physical Database Integrity. https:\/\/docs.teradata.com\/r\/sUbveBFyhttIbZzLz7nJLw\/x~5k~cGbb5CIg7WrWgBNoA \t\t\t\t  Teradata. 2021. Teradata - Physical Database Integrity. https:\/\/docs.teradata.com\/r\/sUbveBFyhttIbZzLz7nJLw\/x~5k~cGbb5CIg7WrWgBNoA"},{"key":"e_1_3_2_1_62_1","unstructured":"Gerd Wagner. 2021. Chapter 9. Implementing Constraint Validation in a Java EE Web App. https:\/\/web-engineering.info\/book\/WebApp1\/ch09.html \t\t\t\t  Gerd Wagner. 2021. Chapter 9. Implementing Constraint Validation in a Java EE Web App. https:\/\/web-engineering.info\/book\/WebApp1\/ch09.html"},{"key":"e_1_3_2_1_63_1","unstructured":"Wagtail. 2022. Wagtail CMS: Django Content Management System. https:\/\/github.com\/wagtail\/wagtail\/tree\/317f10 \t\t\t\t  Wagtail. 2022. Wagtail CMS: Django Content Management System. https:\/\/github.com\/wagtail\/wagtail\/tree\/317f10"},{"key":"e_1_3_2_1_64_1","volume-title":"Proceedings of the ACM on Programming Languages, 2, POPL","author":"Wang Yuepeng","year":"2017","unstructured":"Yuepeng Wang , Isil Dillig , Shuvendu K Lahiri , and William R Cook . 2017 . Verifying equivalence of database-driven applications . Proceedings of the ACM on Programming Languages, 2, POPL (2017), 1\u201329. Yuepeng Wang, Isil Dillig, Shuvendu K Lahiri, and William R Cook. 2017. Verifying equivalence of database-driven applications. Proceedings of the ACM on Programming Languages, 2, POPL (2017), 1\u201329."},{"key":"e_1_3_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/3314221.3314588"},{"key":"e_1_3_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/3035918.3064037"},{"key":"e_1_3_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.14778\/2876473.2876479"},{"key":"e_1_3_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/2980983.2908098"},{"key":"e_1_3_2_1_69_1","volume-title":"2020 IEEE\/ACM 42nd International Conference on Software Engineering (ICSE). 1098\u20131109","author":"Yang Junwen","year":"2020","unstructured":"Junwen Yang , Utsav Sethi , Cong Yan , Alvin Cheung , and Shan Lu . 2020 . Managing data constraints in database-backed web applications . In 2020 IEEE\/ACM 42nd International Conference on Software Engineering (ICSE). 1098\u20131109 . Junwen Yang, Utsav Sethi, Cong Yan, Alvin Cheung, and Shan Lu. 2020. Managing data constraints in database-backed web applications. In 2020 IEEE\/ACM 42nd International Conference on Software Engineering (ICSE). 1098\u20131109."},{"key":"e_1_3_2_1_70_1","doi-asserted-by":"publisher","DOI":"10.14778\/1920841.1920843"},{"key":"e_1_3_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.5281\/zenodo.7425382"},{"key":"e_1_3_2_1_72_1","unstructured":"Zulip. 2021. Corrupted Reactions data model state when using multiple aliases for an emoji code. https:\/\/github.com\/zulip\/zulip\/issues\/15347 \t\t\t\t  Zulip. 2021. Corrupted Reactions data model state when using multiple aliases for an emoji code. https:\/\/github.com\/zulip\/zulip\/issues\/15347"},{"key":"e_1_3_2_1_73_1","unstructured":"Zulip. 2021. migrations: Add case-insensitive unique indexes on realm and email.. https:\/\/github.com\/zulip\/zulip\/commit\/b9b146c8095648d4ef61650a89bfe6f557308574 \t\t\t\t  Zulip. 2021. migrations: Add case-insensitive unique indexes on realm and email.. https:\/\/github.com\/zulip\/zulip\/commit\/b9b146c8095648d4ef61650a89bfe6f557308574"},{"key":"e_1_3_2_1_74_1","unstructured":"Zulip. 2021. psycopg2.errors.UniqueViolation duplicate key value violates unique constraint. https:\/\/github.com\/zulip\/zulip\/issues\/15772 \t\t\t\t  Zulip. 2021. psycopg2.errors.UniqueViolation duplicate key value violates unique constraint. https:\/\/github.com\/zulip\/zulip\/issues\/15772"},{"key":"e_1_3_2_1_75_1","unstructured":"Zulip. 2022. Case study: Rust programming language community. https:\/\/zulip.com\/case-studies\/rust\/ \t\t\t\t  Zulip. 2022. Case study: Rust programming language community. https:\/\/zulip.com\/case-studies\/rust\/"},{"key":"e_1_3_2_1_76_1","unstructured":"Zulip. 2022. Change realm field to be not null in Attachment. https:\/\/github.com\/zulip\/zulip\/pull\/21470 \t\t\t\t  Zulip. 2022. Change realm field to be not null in Attachment. https:\/\/github.com\/zulip\/zulip\/pull\/21470"},{"key":"e_1_3_2_1_77_1","unstructured":"Zulip. 2022. Realm field in the RealmAuditLog table. https:\/\/chat.zulip.org\/##narrow\/stream\/9-issues\/topic\/realm.20field.20in%20table%20RealmAuditLog%20and%20RealmUserDefault\/near\/1335322 \t\t\t\t  Zulip. 2022. Realm field in the RealmAuditLog table. https:\/\/chat.zulip.org\/##narrow\/stream\/9-issues\/topic\/realm.20field.20in%20table%20RealmAuditLog%20and%20RealmUserDefault\/near\/1335322"},{"key":"e_1_3_2_1_78_1","unstructured":"Zulip. 2022. Unique constraints for several table\u2019s columns. https:\/\/chat.zulip.org\/##narrow\/stream\/9-issues\/topic\/Several.20generated.20key.20fields.20w.2Fo.20unique%20constraints.2E \t\t\t\t  Zulip. 2022. Unique constraints for several table\u2019s columns. https:\/\/chat.zulip.org\/##narrow\/stream\/9-issues\/topic\/Several.20generated.20key.20fields.20w.2Fo.20unique%20constraints.2E"},{"key":"e_1_3_2_1_79_1","unstructured":"Zulip. 2022. Zulip. https:\/\/github.com\/zulip\/zulip\/tree\/f5bb43ab \t\t\t\t  Zulip. 2022. Zulip. https:\/\/github.com\/zulip\/zulip\/tree\/f5bb43ab"}],"event":{"name":"ASPLOS '23: 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2","sponsor":["SIGARCH ACM Special Interest Group on Computer Architecture","SIGOPS ACM Special Interest Group on Operating Systems","SIGPLAN ACM Special Interest Group on Programming Languages"],"location":"Vancouver BC Canada","acronym":"ASPLOS '23"},"container-title":["Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3575693.3575699","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3575693.3575699","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3575693.3575699","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T18:43:52Z","timestamp":1750272232000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3575693.3575699"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,1,27]]},"references-count":80,"alternative-id":["10.1145\/3575693.3575699","10.1145\/3575693"],"URL":"https:\/\/doi.org\/10.1145\/3575693.3575699","relation":{},"subject":[],"published":{"date-parts":[[2023,1,27]]},"assertion":[{"value":"2023-01-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}