MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / visit_over

Method visit_over

lib/sqlalchemy/sql/compiler.py:2917–2948  ·  view source on GitHub ↗
(self, over, **kwargs)

Source from the content-addressed store, hash-verified

2915 )
2916
2917 def visit_over(self, over, **kwargs):
2918 text = over.element._compiler_dispatch(self, **kwargs)
2919 if over.range_ is not None:
2920 range_ = "RANGE BETWEEN %s" % self._format_frame_clause(
2921 over.range_, **kwargs
2922 )
2923 elif over.rows is not None:
2924 range_ = "ROWS BETWEEN %s" % self._format_frame_clause(
2925 over.rows, **kwargs
2926 )
2927 elif over.groups is not None:
2928 range_ = "GROUPS BETWEEN %s" % self._format_frame_clause(
2929 over.groups, **kwargs
2930 )
2931 else:
2932 range_ = None
2933
2934 return "%s OVER (%s)" % (
2935 text,
2936 " ".join(
2937 [
2938 "%s BY %s"
2939 % (word, clause._compiler_dispatch(self, **kwargs))
2940 for word, clause in (
2941 ("PARTITION", over.partition_by),
2942 ("ORDER", over.order_by),
2943 )
2944 if clause is not None and len(clause)
2945 ]
2946 + ([range_] if range_ else [])
2947 ),
2948 )
2949
2950 def visit_withingroup(self, withingroup, **kwargs):
2951 return "%s WITHIN GROUP (ORDER BY %s)" % (

Callers

nothing calls this directly

Calls 3

_format_frame_clauseMethod · 0.95
_compiler_dispatchMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected