新增 SQL 题型:SQLite 内联判题(不依赖外部沙箱)
- SQL 作为语言接入现有提交流程,judge_task 按 language 分流到 SQLJudgeDispatcher - judge/sql_runner.py:内存 SQLite 判题核心,查询题比结果集/增删改题比表状态, authorizer + progress_handler + max_page_count 三重防护 - dispatcher 提取 _process_judge_result/_push_status 供 SQL 判题复用(行为不变) - 测试点通道支持 1.sql..N.sql 压缩包,出题只需数据脚本+标准答案 - Problem 增加 sql_config 字段;options 数据迁移注册 SQL 语言 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -37,6 +37,11 @@ class CreateProblemCodeTemplateSerializer(serializers.Serializer):
|
||||
pass
|
||||
|
||||
|
||||
class SQLConfigSerializer(serializers.Serializer):
|
||||
mode = serializers.ChoiceField(choices=["query", "modify"])
|
||||
order_sensitive = serializers.BooleanField(default=False)
|
||||
|
||||
|
||||
class ProblemIOModeSerializer(serializers.Serializer):
|
||||
io_mode = serializers.ChoiceField(choices=ProblemIOMode.choices)
|
||||
input = serializers.CharField()
|
||||
@@ -89,6 +94,9 @@ class CreateOrEditProblemSerializer(serializers.Serializer):
|
||||
# AST 规则
|
||||
ast_rules = serializers.JSONField(required=False, allow_null=True, default=None)
|
||||
|
||||
# SQL 题配置
|
||||
sql_config = SQLConfigSerializer(required=False, allow_null=True, default=None)
|
||||
|
||||
|
||||
class CreateProblemSerializer(CreateOrEditProblemSerializer):
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user