@@ -34,6 +34,7 @@ class DatabaseFeatures(BaseDatabaseFeatures):
3434 supports_transactions = False
3535 supports_unspecified_pk = True
3636 uses_savepoints = False
37+ supports_boolean_expr_in_select_clause = True
3738
3839 _django_test_expected_failures = {
3940 # 'NulledTransform' object has no attribute 'as_mql'.
@@ -91,6 +92,18 @@ class DatabaseFeatures(BaseDatabaseFeatures):
9192 "schema.tests.SchemaTests.test_composed_constraint_with_fk" ,
9293 "schema.tests.SchemaTests.test_remove_ignored_unique_constraint_not_create_fk_index" ,
9394 "schema.tests.SchemaTests.test_unique_constraint" ,
95+ # subclasses of BaseDatabaseIntrospection may require a get_constraints() method
96+ "migrations.test_operations.OperationTests.test_add_func_unique_constraint" ,
97+ "migrations.test_operations.OperationTests.test_remove_func_unique_constraint" ,
98+ # Delete does not support subqueries.
99+ "delete_regress.tests.DeleteTests.test_self_reference_with_through_m2m_at_second_level" ,
100+ # Handle column default value.
101+ "annotations.tests.NonAggregateAnnotationTestCase.test_empty_queryset_annotation" ,
102+ # Union as subquery is not mapping the parent parameter and collections.
103+ "queries.test_qs_combinators.QuerySetSetOperationTests.test_union_in_subquery_related_outerref" ,
104+ "queries.test_qs_combinators.QuerySetSetOperationTests.test_union_in_subquery" ,
105+ # Log with Decimal128 isn't working as expected.
106+ "db_functions.math.test_log.LogTests.test_decimal" ,
94107 }
95108 # $bitAnd, #bitOr, and $bitXor are new in MongoDB 6.3.
96109 _django_test_expected_failures_bitwise = {
@@ -206,106 +219,7 @@ def django_test_expected_failures(self):
206219 "db_functions.comparison.test_cast.CastTests.test_cast_to_integer_foreign_key" ,
207220 "model_fields.test_foreignkey.ForeignKeyTests.test_to_python" ,
208221 "queries.test_qs_combinators.QuerySetSetOperationTests.test_order_raises_on_non_selected_column" ,
209- },
210- "Exists is not supported on MongoDB." : {
211- "aggregation.test_filter_argument.FilteredAggregateTests.test_filtered_aggregate_on_exists" ,
212- "aggregation.test_filter_argument.FilteredAggregateTests.test_filtered_aggregate_ref_multiple_subquery_annotation" ,
213- "aggregation.tests.AggregateTestCase.test_aggregation_exists_multivalued_outeref" ,
214- "aggregation.tests.AggregateTestCase.test_group_by_exists_annotation" ,
215- "aggregation.tests.AggregateTestCase.test_exists_none_with_aggregate" ,
216- "aggregation.tests.AggregateTestCase.test_exists_extra_where_with_aggregate" ,
217- "annotations.tests.NonAggregateAnnotationTestCase.test_annotation_exists_aggregate_values_chaining" ,
218- "annotations.tests.NonAggregateAnnotationTestCase.test_annotation_exists_none_query" ,
219- "aggregation_regress.tests.AggregationTests.test_annotate_and_join" ,
220- "delete_regress.tests.DeleteTests.test_self_reference_with_through_m2m_at_second_level" ,
221- "expressions.tests.BasicExpressionsTests.test_annotation_with_deeply_nested_outerref" ,
222- "expressions.tests.BasicExpressionsTests.test_boolean_expression_combined" ,
223- "expressions.tests.BasicExpressionsTests.test_boolean_expression_combined_with_empty_Q" ,
224- "expressions.tests.BasicExpressionsTests.test_boolean_expression_in_Q" ,
225- "expressions.tests.BasicExpressionsTests.test_case_in_filter_if_boolean_output_field" ,
226- "expressions.tests.BasicExpressionsTests.test_exists_in_filter" ,
227- "expressions.tests.BasicExpressionsTests.test_order_by_exists" ,
228- "expressions.tests.BasicExpressionsTests.test_subquery" ,
229- "expressions.tests.ExistsTests.test_filter_by_empty_exists" ,
230- "expressions.tests.ExistsTests.test_negated_empty_exists" ,
231- "expressions.tests.ExistsTests.test_optimizations" ,
232- "expressions.tests.ExistsTests.test_select_negated_empty_exists" ,
233- "lookup.tests.LookupTests.test_exact_exists" ,
234- "lookup.tests.LookupTests.test_nested_outerref_lhs" ,
235- "lookup.tests.LookupQueryingTests.test_filter_exists_lhs" ,
236- "model_forms.tests.LimitChoicesToTests.test_fields_for_model_applies_limit_choices_to" ,
237- "model_forms.tests.LimitChoicesToTests.test_limit_choices_to_callable_for_fk_rel" ,
238- "model_forms.tests.LimitChoicesToTests.test_limit_choices_to_callable_for_m2m_rel" ,
239- "model_forms.tests.LimitChoicesToTests.test_limit_choices_to_m2m_through" ,
240- "model_forms.tests.LimitChoicesToTests.test_limit_choices_to_no_duplicates" ,
241- "null_queries.tests.NullQueriesTests.test_reverse_relations" ,
242- "queries.test_qs_combinators.QuerySetSetOperationTests.test_union_with_values_list_on_annotated_and_unannotated" ,
243- "queries.tests.ExcludeTest17600.test_exclude_plain" ,
244- "queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude_variation" ,
245- "queries.tests.ExcludeTest17600.test_exclude_with_q_object_no_distinct" ,
246- "queries.tests.ExcludeTests.test_exclude_multivalued_exists" ,
247- "queries.tests.ExcludeTests.test_exclude_reverse_fk_field_ref" ,
248- "queries.tests.ExcludeTests.test_exclude_with_circular_fk_relation" ,
249- "queries.tests.ExcludeTests.test_subquery_exclude_outerref" ,
250- "queries.tests.ExcludeTests.test_to_field" ,
251- "queries.tests.ForeignKeyToBaseExcludeTests.test_ticket_21787" ,
252- "queries.tests.JoinReuseTest.test_inverted_q_across_relations" ,
253- "queries.tests.ManyToManyExcludeTest.test_exclude_many_to_many" ,
254- "queries.tests.ManyToManyExcludeTest.test_ticket_12823" ,
255- "queries.tests.Queries1Tests.test_double_exclude" ,
256- "queries.tests.Queries1Tests.test_exclude" ,
257- "queries.tests.Queries1Tests.test_exclude_in" ,
258- "queries.tests.Queries1Tests.test_excluded_intermediary_m2m_table_joined" ,
259- "queries.tests.Queries1Tests.test_nested_exclude" ,
260- "queries.tests.Queries4Tests.test_join_reuse_order" ,
261- "queries.tests.Queries4Tests.test_ticket24525" ,
262- "queries.tests.Queries6Tests.test_tickets_8921_9188" ,
263- "queries.tests.Queries6Tests.test_xor_subquery" ,
264- "queries.tests.QuerySetBitwiseOperationTests.test_subquery_aliases" ,
265- "queries.tests.TestTicket24605.test_ticket_24605" ,
266- "queries.tests.Ticket20101Tests.test_ticket_20101" ,
267- "queries.tests.Ticket20788Tests.test_ticket_20788" ,
268- "queries.tests.Ticket22429Tests.test_ticket_22429" ,
269- },
270- "Subquery is not supported on MongoDB." : {
271- "aggregation.test_filter_argument.FilteredAggregateTests.test_filtered_aggregate_ref_subquery_annotation" ,
272- "aggregation.tests.AggregateAnnotationPruningTests.test_referenced_composed_subquery_requires_wrapping" ,
273- "aggregation.tests.AggregateAnnotationPruningTests.test_referenced_subquery_requires_wrapping" ,
274- "aggregation.tests.AggregateTestCase.test_aggregation_nested_subquery_outerref" ,
275- "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation" ,
276- "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation_multivalued" ,
277- "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation_related_field" ,
278- "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation_values" ,
279- "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation_values_collision" ,
280- "annotations.tests.NonAggregateAnnotationTestCase.test_annotation_filter_with_subquery" ,
281- "annotations.tests.NonAggregateAnnotationTestCase.test_annotation_subquery_and_aggregate_values_chaining" ,
282- "annotations.tests.NonAggregateAnnotationTestCase.test_annotation_subquery_outerref_transform" ,
283- "annotations.tests.NonAggregateAnnotationTestCase.test_empty_queryset_annotation" ,
284- "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_outerref" ,
285- "db_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_subquery_with_parameters" ,
286- "expressions.tests.BasicExpressionsTests.test_aggregate_subquery_annotation" ,
287- "expressions.tests.BasicExpressionsTests.test_annotation_with_nested_outerref" ,
288- "expressions.tests.BasicExpressionsTests.test_annotation_with_outerref" ,
289- "expressions.tests.BasicExpressionsTests.test_annotations_within_subquery" ,
290- "expressions.tests.BasicExpressionsTests.test_in_subquery" ,
291- "expressions.tests.BasicExpressionsTests.test_nested_outerref_with_function" ,
292- "expressions.tests.BasicExpressionsTests.test_nested_subquery" ,
293- "expressions.tests.BasicExpressionsTests.test_nested_subquery_join_outer_ref" ,
294- "expressions.tests.BasicExpressionsTests.test_nested_subquery_outer_ref_2" ,
295222 "expressions.tests.BasicExpressionsTests.test_nested_subquery_outer_ref_with_autofield" ,
296- "expressions.tests.BasicExpressionsTests.test_outerref_mixed_case_table_name" ,
297- "expressions.tests.BasicExpressionsTests.test_outerref_with_operator" ,
298- "expressions.tests.BasicExpressionsTests.test_subquery_filter_by_aggregate" ,
299- "expressions.tests.BasicExpressionsTests.test_subquery_filter_by_lazy" ,
300- "expressions.tests.BasicExpressionsTests.test_subquery_group_by_outerref_in_filter" ,
301- "expressions.tests.BasicExpressionsTests.test_subquery_in_filter" ,
302- "expressions.tests.BasicExpressionsTests.test_subquery_references_joined_table_twice" ,
303- "expressions.tests.BasicExpressionsTests.test_uuid_pk_subquery" ,
304- "lookup.tests.LookupQueryingTests.test_filter_subquery_lhs" ,
305- "model_fields.test_jsonfield.TestQuerying.test_nested_key_transform_on_subquery" ,
306- "model_fields.test_jsonfield.TestQuerying.test_obj_subquery_lookup" ,
307- "queries.test_qs_combinators.QuerySetSetOperationTests.test_union_in_subquery" ,
308- "queries.test_qs_combinators.QuerySetSetOperationTests.test_union_in_subquery_related_outerref" ,
309223 },
310224 "Using a QuerySet in annotate() is not supported on MongoDB." : {
311225 "aggregation.test_filter_argument.FilteredAggregateTests.test_filtered_reused_subquery" ,
@@ -417,6 +331,7 @@ def django_test_expected_failures(self):
417331 "ordering.tests.OrderingTests.test_orders_nulls_first_on_filtered_subquery" ,
418332 "queries.tests.ExcludeTest17600.test_exclude_plain_distinct" ,
419333 "queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude" ,
334+ "queries.tests.ExcludeTest17600.test_exclude_with_q_is_equal_to_plain_exclude_variation" ,
420335 "queries.tests.ExcludeTest17600.test_exclude_with_q_object_distinct" ,
421336 "queries.tests.ExcludeTests.test_exclude_m2m_through" ,
422337 "queries.tests.ExistsSql.test_distinct_exists" ,
@@ -433,6 +348,7 @@ def django_test_expected_failures(self):
433348 "update.tests.AdvancedTests.test_update_all" ,
434349 },
435350 "QuerySet.extra() is not supported." : {
351+ "aggregation.tests.AggregateTestCase.test_exists_extra_where_with_aggregate" ,
436352 "annotations.tests.NonAggregateAnnotationTestCase.test_column_field_ordering" ,
437353 "annotations.tests.NonAggregateAnnotationTestCase.test_column_field_ordering_with_deferred" ,
438354 "basic.tests.ModelTest.test_extra_method_select_argument_with_dashes" ,
@@ -467,6 +383,11 @@ def django_test_expected_failures(self):
467383 "aggregation.tests.AggregateAnnotationPruningTests.test_unused_aliased_aggregate_pruned" ,
468384 "aggregation.tests.AggregateAnnotationPruningTests.test_referenced_aggregate_annotation_kept" ,
469385 "aggregation.tests.AggregateTestCase.test_count_star" ,
386+ "aggregation.test_filter_argument.FilteredAggregateTests.test_filtered_aggregate_ref_subquery_annotation" ,
387+ "aggregation.tests.AggregateAnnotationPruningTests.test_referenced_composed_subquery_requires_wrapping" ,
388+ "aggregation.tests.AggregateAnnotationPruningTests.test_referenced_subquery_requires_wrapping" ,
389+ "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation" ,
390+ "aggregation.tests.AggregateTestCase.test_aggregation_subquery_annotation_related_field" ,
470391 "delete.tests.DeletionTests.test_only_referenced_fields_selected" ,
471392 "lookup.tests.LookupTests.test_in_ignore_none" ,
472393 "lookup.tests.LookupTests.test_textfield_exact_null" ,
0 commit comments