Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/SQLAlchemy-1.3.25.dev0-py3.11-linux-x86_64.egg/sqlalchemy/sql/expression.py: 99%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

154 statements  

1# sql/expression.py 

2# Copyright (C) 2005-2021 the SQLAlchemy authors and contributors 

3# <see AUTHORS file> 

4# 

5# This module is part of SQLAlchemy and is released under 

6# the MIT License: http://www.opensource.org/licenses/mit-license.php 

7 

8"""Defines the public namespace for SQL expression constructs. 

9 

10Prior to version 0.9, this module contained all of "elements", "dml", 

11"default_comparator" and "selectable". The module was broken up 

12and most "factory" functions were moved to be grouped with their associated 

13class. 

14 

15""" 

16 

17__all__ = [ 

18 "Alias", 

19 "any_", 

20 "all_", 

21 "ClauseElement", 

22 "ColumnCollection", 

23 "ColumnElement", 

24 "CompoundSelect", 

25 "Delete", 

26 "FromClause", 

27 "Insert", 

28 "Join", 

29 "Lateral", 

30 "Select", 

31 "Selectable", 

32 "TableClause", 

33 "Update", 

34 "alias", 

35 "and_", 

36 "asc", 

37 "between", 

38 "bindparam", 

39 "case", 

40 "cast", 

41 "column", 

42 "cte", 

43 "delete", 

44 "desc", 

45 "distinct", 

46 "except_", 

47 "except_all", 

48 "exists", 

49 "extract", 

50 "func", 

51 "modifier", 

52 "collate", 

53 "insert", 

54 "intersect", 

55 "intersect_all", 

56 "join", 

57 "label", 

58 "lateral", 

59 "literal", 

60 "literal_column", 

61 "not_", 

62 "null", 

63 "nullsfirst", 

64 "nullslast", 

65 "or_", 

66 "outparam", 

67 "outerjoin", 

68 "over", 

69 "select", 

70 "subquery", 

71 "table", 

72 "text", 

73 "tuple_", 

74 "type_coerce", 

75 "quoted_name", 

76 "union", 

77 "union_all", 

78 "update", 

79 "within_group", 

80 "TableSample", 

81 "tablesample", 

82] 

83 

84 

85from .base import _from_objects # noqa 

86from .base import ColumnCollection # noqa 

87from .base import Executable # noqa 

88from .base import Generative # noqa 

89from .base import PARSE_AUTOCOMMIT # noqa 

90from .dml import Delete # noqa 

91from .dml import Insert # noqa 

92from .dml import Update # noqa 

93from .dml import UpdateBase # noqa 

94from .dml import ValuesBase # noqa 

95from .elements import _clause_element_as_expr # noqa 

96from .elements import _clone # noqa 

97from .elements import _cloned_difference # noqa 

98from .elements import _cloned_intersection # noqa 

99from .elements import _column_as_key # noqa 

100from .elements import _corresponding_column_or_error # noqa 

101from .elements import _expression_literal_as_text # noqa 

102from .elements import _is_column # noqa 

103from .elements import _labeled # noqa 

104from .elements import _literal_as_binds # noqa 

105from .elements import _literal_as_column # noqa 

106from .elements import _literal_as_label_reference # noqa 

107from .elements import _literal_as_text # noqa 

108from .elements import _only_column_elements # noqa 

109from .elements import _select_iterables # noqa 

110from .elements import _string_or_unprintable # noqa 

111from .elements import _truncated_label # noqa 

112from .elements import between # noqa 

113from .elements import BinaryExpression # noqa 

114from .elements import BindParameter # noqa 

115from .elements import BooleanClauseList # noqa 

116from .elements import Case # noqa 

117from .elements import Cast # noqa 

118from .elements import ClauseElement # noqa 

119from .elements import ClauseList # noqa 

120from .elements import collate # noqa 

121from .elements import CollectionAggregate # noqa 

122from .elements import ColumnClause # noqa 

123from .elements import ColumnElement # noqa 

124from .elements import Extract # noqa 

125from .elements import False_ # noqa 

126from .elements import FunctionFilter # noqa 

127from .elements import Grouping # noqa 

128from .elements import Label # noqa 

129from .elements import literal # noqa 

130from .elements import literal_column # noqa 

131from .elements import not_ # noqa 

132from .elements import Null # noqa 

133from .elements import outparam # noqa 

134from .elements import Over # noqa 

135from .elements import quoted_name # noqa 

136from .elements import ReleaseSavepointClause # noqa 

137from .elements import RollbackToSavepointClause # noqa 

138from .elements import SavepointClause # noqa 

139from .elements import TextClause # noqa 

140from .elements import True_ # noqa 

141from .elements import Tuple # noqa 

142from .elements import TypeClause # noqa 

143from .elements import TypeCoerce # noqa 

144from .elements import UnaryExpression # noqa 

145from .elements import WithinGroup # noqa 

146from .functions import func # noqa 

147from .functions import Function # noqa 

148from .functions import FunctionElement # noqa 

149from .functions import modifier # noqa 

150from .selectable import _interpret_as_from # noqa 

151from .selectable import Alias # noqa 

152from .selectable import CompoundSelect # noqa 

153from .selectable import CTE # noqa 

154from .selectable import Exists # noqa 

155from .selectable import FromClause # noqa 

156from .selectable import FromGrouping # noqa 

157from .selectable import GenerativeSelect # noqa 

158from .selectable import HasCTE # noqa 

159from .selectable import HasPrefixes # noqa 

160from .selectable import HasSuffixes # noqa 

161from .selectable import Join # noqa 

162from .selectable import Lateral # noqa 

163from .selectable import ScalarSelect # noqa 

164from .selectable import Select # noqa 

165from .selectable import Selectable # noqa 

166from .selectable import SelectBase # noqa 

167from .selectable import subquery # noqa 

168from .selectable import TableClause # noqa 

169from .selectable import TableSample # noqa 

170from .selectable import TextAsFrom # noqa 

171from .visitors import Visitable # noqa 

172from ..util.langhelpers import public_factory # noqa 

173 

174 

175# factory functions - these pull class-bound constructors and classmethods 

176# from SQL elements and selectables into public functions. This allows 

177# the functions to be available in the sqlalchemy.sql.* namespace and 

178# to be auto-cross-documenting from the function to the class itself. 

179 

180all_ = public_factory(CollectionAggregate._create_all, ".sql.expression.all_") 

181any_ = public_factory(CollectionAggregate._create_any, ".sql.expression.any_") 

182and_ = public_factory(BooleanClauseList.and_, ".sql.expression.and_") 

183alias = public_factory(Alias._factory, ".sql.expression.alias") 

184tablesample = public_factory( 

185 TableSample._factory, ".sql.expression.tablesample" 

186) 

187lateral = public_factory(Lateral._factory, ".sql.expression.lateral") 

188or_ = public_factory(BooleanClauseList.or_, ".sql.expression.or_") 

189bindparam = public_factory(BindParameter, ".sql.expression.bindparam") 

190select = public_factory(Select, ".sql.expression.select") 

191text = public_factory(TextClause._create_text, ".sql.expression.text") 

192table = public_factory(TableClause, ".sql.expression.table") 

193column = public_factory(ColumnClause, ".sql.expression.column") 

194over = public_factory(Over, ".sql.expression.over") 

195within_group = public_factory(WithinGroup, ".sql.expression.within_group") 

196label = public_factory(Label, ".sql.expression.label") 

197case = public_factory(Case, ".sql.expression.case") 

198cast = public_factory(Cast, ".sql.expression.cast") 

199cte = public_factory(CTE._factory, ".sql.expression.cte") 

200extract = public_factory(Extract, ".sql.expression.extract") 

201tuple_ = public_factory(Tuple, ".sql.expression.tuple_") 

202except_ = public_factory( 

203 CompoundSelect._create_except, ".sql.expression.except_" 

204) 

205except_all = public_factory( 

206 CompoundSelect._create_except_all, ".sql.expression.except_all" 

207) 

208intersect = public_factory( 

209 CompoundSelect._create_intersect, ".sql.expression.intersect" 

210) 

211intersect_all = public_factory( 

212 CompoundSelect._create_intersect_all, ".sql.expression.intersect_all" 

213) 

214union = public_factory(CompoundSelect._create_union, ".sql.expression.union") 

215union_all = public_factory( 

216 CompoundSelect._create_union_all, ".sql.expression.union_all" 

217) 

218exists = public_factory(Exists, ".sql.expression.exists") 

219nullsfirst = public_factory( 

220 UnaryExpression._create_nullsfirst, ".sql.expression.nullsfirst" 

221) 

222nullslast = public_factory( 

223 UnaryExpression._create_nullslast, ".sql.expression.nullslast" 

224) 

225asc = public_factory(UnaryExpression._create_asc, ".sql.expression.asc") 

226desc = public_factory(UnaryExpression._create_desc, ".sql.expression.desc") 

227distinct = public_factory( 

228 UnaryExpression._create_distinct, ".sql.expression.distinct" 

229) 

230type_coerce = public_factory(TypeCoerce, ".sql.expression.type_coerce") 

231true = public_factory(True_._instance, ".sql.expression.true") 

232false = public_factory(False_._instance, ".sql.expression.false") 

233null = public_factory(Null._instance, ".sql.expression.null") 

234join = public_factory(Join._create_join, ".sql.expression.join") 

235outerjoin = public_factory(Join._create_outerjoin, ".sql.expression.outerjoin") 

236insert = public_factory(Insert, ".sql.expression.insert") 

237update = public_factory(Update, ".sql.expression.update") 

238delete = public_factory(Delete, ".sql.expression.delete") 

239funcfilter = public_factory(FunctionFilter, ".sql.expression.funcfilter") 

240 

241 

242# internal functions still being called from tests and the ORM, 

243# these might be better off in some other namespace 

244 

245 

246# old names for compatibility 

247_Executable = Executable 

248_BindParamClause = BindParameter 

249_Label = Label 

250_SelectBase = SelectBase 

251_BinaryExpression = BinaryExpression 

252_Cast = Cast 

253_Null = Null 

254_False = False_ 

255_True = True_ 

256_TextClause = TextClause 

257_UnaryExpression = UnaryExpression 

258_Case = Case 

259_Tuple = Tuple 

260_Over = Over 

261_Generative = Generative 

262_TypeClause = TypeClause 

263_Extract = Extract 

264_Exists = Exists 

265_Grouping = Grouping 

266_FromGrouping = FromGrouping 

267_ScalarSelect = ScalarSelect