Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/sqlalchemy/sql/expression.py: 100%

155 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-07 06:35 +0000

1# sql/expression.py 

2# Copyright (C) 2005-2023 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: https://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 "AliasedReturnsRows", 

20 "any_", 

21 "all_", 

22 "CacheKey", 

23 "ClauseElement", 

24 "ColumnCollection", 

25 "ColumnElement", 

26 "CompoundSelect", 

27 "Delete", 

28 "FromClause", 

29 "Insert", 

30 "Join", 

31 "Lateral", 

32 "LambdaElement", 

33 "StatementLambdaElement", 

34 "Select", 

35 "Selectable", 

36 "TableClause", 

37 "TableValuedAlias", 

38 "Update", 

39 "Values", 

40 "alias", 

41 "and_", 

42 "asc", 

43 "between", 

44 "bindparam", 

45 "case", 

46 "cast", 

47 "column", 

48 "custom_op", 

49 "cte", 

50 "delete", 

51 "desc", 

52 "distinct", 

53 "except_", 

54 "except_all", 

55 "exists", 

56 "extract", 

57 "func", 

58 "modifier", 

59 "collate", 

60 "insert", 

61 "intersect", 

62 "intersect_all", 

63 "join", 

64 "label", 

65 "lateral", 

66 "lambda_stmt", 

67 "literal", 

68 "literal_column", 

69 "not_", 

70 "null", 

71 "nulls_first", 

72 "nulls_last", 

73 "or_", 

74 "outparam", 

75 "outerjoin", 

76 "over", 

77 "select", 

78 "table", 

79 "text", 

80 "tuple_", 

81 "type_coerce", 

82 "quoted_name", 

83 "union", 

84 "union_all", 

85 "update", 

86 "quoted_name", 

87 "within_group", 

88 "Subquery", 

89 "TableSample", 

90 "tablesample", 

91 "values", 

92] 

93 

94 

95from .base import _from_objects 

96from .base import _select_iterables 

97from .base import ColumnCollection 

98from .base import Executable 

99from .base import PARSE_AUTOCOMMIT 

100from .dml import Delete 

101from .dml import Insert 

102from .dml import Update 

103from .dml import UpdateBase 

104from .dml import ValuesBase 

105from .elements import _truncated_label 

106from .elements import between 

107from .elements import BinaryExpression 

108from .elements import BindParameter 

109from .elements import BooleanClauseList 

110from .elements import Case 

111from .elements import Cast 

112from .elements import ClauseElement 

113from .elements import ClauseList 

114from .elements import collate 

115from .elements import CollectionAggregate 

116from .elements import ColumnClause 

117from .elements import ColumnElement 

118from .elements import Extract 

119from .elements import False_ 

120from .elements import FunctionFilter 

121from .elements import Grouping 

122from .elements import Label 

123from .elements import literal 

124from .elements import literal_column 

125from .elements import not_ 

126from .elements import Null 

127from .elements import outparam 

128from .elements import Over 

129from .elements import quoted_name 

130from .elements import ReleaseSavepointClause 

131from .elements import RollbackToSavepointClause 

132from .elements import SavepointClause 

133from .elements import TextClause 

134from .elements import True_ 

135from .elements import Tuple 

136from .elements import TypeClause 

137from .elements import TypeCoerce 

138from .elements import UnaryExpression 

139from .elements import WithinGroup 

140from .functions import func 

141from .functions import Function 

142from .functions import FunctionElement 

143from .functions import modifier 

144from .lambdas import lambda_stmt 

145from .lambdas import LambdaElement 

146from .lambdas import StatementLambdaElement 

147from .operators import ColumnOperators 

148from .operators import custom_op 

149from .operators import Operators 

150from .selectable import Alias 

151from .selectable import AliasedReturnsRows 

152from .selectable import CompoundSelect 

153from .selectable import CTE 

154from .selectable import Exists 

155from .selectable import FromClause 

156from .selectable import FromGrouping 

157from .selectable import GenerativeSelect 

158from .selectable import HasCTE 

159from .selectable import HasPrefixes 

160from .selectable import HasSuffixes 

161from .selectable import Join 

162from .selectable import LABEL_STYLE_DEFAULT 

163from .selectable import LABEL_STYLE_DISAMBIGUATE_ONLY 

164from .selectable import LABEL_STYLE_NONE 

165from .selectable import LABEL_STYLE_TABLENAME_PLUS_COL 

166from .selectable import Lateral 

167from .selectable import ReturnsRows 

168from .selectable import ScalarSelect 

169from .selectable import Select 

170from .selectable import Selectable 

171from .selectable import SelectBase 

172from .selectable import Subquery 

173from .selectable import subquery 

174from .selectable import TableClause 

175from .selectable import TableSample 

176from .selectable import TableValuedAlias 

177from .selectable import TextAsFrom 

178from .selectable import TextualSelect 

179from .selectable import Values 

180from .traversals import CacheKey 

181from .visitors import Visitable 

182from ..util.langhelpers import public_factory 

183 

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

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

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

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

188 

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

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

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

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

193tablesample = public_factory( 

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

195) 

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

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

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

199select = public_factory(Select._create, ".sql.expression.select") 

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

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

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

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

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

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

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

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

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

209values = public_factory(Values, ".sql.expression.values") 

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

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

212except_ = public_factory( 

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

214) 

215except_all = public_factory( 

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

217) 

218intersect = public_factory( 

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

220) 

221intersect_all = public_factory( 

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

223) 

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

225union_all = public_factory( 

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

227) 

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

229nulls_first = public_factory( 

230 UnaryExpression._create_nulls_first, ".sql.expression.nulls_first" 

231) 

232nullsfirst = nulls_first # deprecated 1.4; see #5435 

233nulls_last = public_factory( 

234 UnaryExpression._create_nulls_last, ".sql.expression.nulls_last" 

235) 

236nullslast = nulls_last # deprecated 1.4; see #5435 

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

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

239distinct = public_factory( 

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

241) 

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

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

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

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

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

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

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

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

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

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

252 

253 

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

255# these might be better off in some other namespace 

256 

257 

258# old names for compatibility 

259_Executable = Executable 

260_BindParamClause = BindParameter 

261_Label = Label 

262_SelectBase = SelectBase 

263_BinaryExpression = BinaryExpression 

264_Cast = Cast 

265_Null = Null 

266_False = False_ 

267_True = True_ 

268_TextClause = TextClause 

269_UnaryExpression = UnaryExpression 

270_Case = Case 

271_Tuple = Tuple 

272_Over = Over 

273_TypeClause = TypeClause 

274_Extract = Extract 

275_Exists = Exists 

276_Grouping = Grouping 

277_FromGrouping = FromGrouping 

278_ScalarSelect = ScalarSelect