{"ID":6620477,"CreatedAt":"2026-07-15T01:01:48.440468303Z","UpdatedAt":"2026-07-15T03:28:55.185153975Z","DeletedAt":null,"paper_url":"https://arxiv.org/abs/2607.12341","arxiv_id":"2607.12341","title":"Policy-Conditioned Constrained Decoding for Column-Level Access Control in Text-to-SQL","abstract":"Text-to-SQL is increasingly deployed across trust boundaries between data providers and users. Such deployment must balance three competing requirements: policy compliance, answer coverage, and bounded cost. Existing approaches typically decide refusal based on which columns a query mentions and enforce it stochastically. Whether a query is compliant, however, depends not only on which columns appear but on how they are used, and stochastic enforcement cannot deterministically rule out violations. We formalize this requirement as a column-use policy over semantic use: output, filter condition, and aggregation argument. We integrate the policy by aligning each role with grammar productions tracked by the decoder. The resulting system, PCC-SQL, applies a per-token logits mask that deterministically eliminates single-query column-use violations on the supported SQL fragment in a single decoding pass. Across three benchmarks and three open-source models, PCC-SQL achieves 0% Leakage Rate and Coverage up to 88.7% on Spider-CU, while staying within +10% tokens of direct prompting. We additionally assess semantic alignment with execution accuracy.","short_abstract":"Text-to-SQL is increasingly deployed across trust boundaries between data providers and users. Such deployment must balance three competing requirements: policy compliance, answer coverage, and bounded cost. Existing approaches typically decide refusal based on which columns a query mentions and enforce it stochastical...","url_abs":"https://arxiv.org/abs/2607.12341","url_pdf":"https://arxiv.org/pdf/2607.12341v1","authors":"[\"Ryoto Miyamoto\",\"Xin Fan\",\"Hayato Yamana\"]","published":"2026-07-14T04:41:09Z","proceeding":"cs.CL","tasks":"[\"cs.CL\",\"cs.CR\",\"cs.DB\"]","methods":"[]","has_code":false}
