@itwin/core-backend 5.13.0-dev.13 → 5.13.0-dev.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.js.map +1 -1
  9. package/lib/cjs/ChangeSummaryManager.js +2 -2
  10. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  11. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  12. package/lib/cjs/ChangesetECAdaptor.js +248 -248
  13. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  14. package/lib/cjs/ChangesetReader.js +3 -3
  15. package/lib/cjs/ChangesetReader.js.map +1 -1
  16. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  17. package/lib/cjs/ChannelControl.js.map +1 -1
  18. package/lib/cjs/CheckpointManager.js.map +1 -1
  19. package/lib/cjs/ClassRegistry.js +5 -5
  20. package/lib/cjs/ClassRegistry.js.map +1 -1
  21. package/lib/cjs/CloudSqlite.js.map +1 -1
  22. package/lib/cjs/CodeService.js.map +1 -1
  23. package/lib/cjs/CodeSpecs.js.map +1 -1
  24. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  25. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  26. package/lib/cjs/DevTools.js.map +1 -1
  27. package/lib/cjs/DisplayStyle.js.map +1 -1
  28. package/lib/cjs/ECDb.js.map +1 -1
  29. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  30. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  31. package/lib/cjs/ECSqlStatement.js.map +1 -1
  32. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  33. package/lib/cjs/EditTxn.js.map +1 -1
  34. package/lib/cjs/Element.d.ts +10 -2
  35. package/lib/cjs/Element.d.ts.map +1 -1
  36. package/lib/cjs/Element.js +69 -22
  37. package/lib/cjs/Element.js.map +1 -1
  38. package/lib/cjs/ElementAspect.js.map +1 -1
  39. package/lib/cjs/ElementGraphics.js.map +1 -1
  40. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  41. package/lib/cjs/Entity.js.map +1 -1
  42. package/lib/cjs/EntityReferences.js.map +1 -1
  43. package/lib/cjs/ExportGraphics.js.map +1 -1
  44. package/lib/cjs/ExternalSource.js.map +1 -1
  45. package/lib/cjs/FontFile.js.map +1 -1
  46. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  47. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  48. package/lib/cjs/GeometrySummary.js +47 -47
  49. package/lib/cjs/GeometrySummary.js.map +1 -1
  50. package/lib/cjs/IModelDb.d.ts +1 -1
  51. package/lib/cjs/IModelDb.d.ts.map +1 -1
  52. package/lib/cjs/IModelDb.js +38 -26
  53. package/lib/cjs/IModelDb.js.map +1 -1
  54. package/lib/cjs/IModelDbFonts.js.map +1 -1
  55. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  56. package/lib/cjs/IModelHost.js.map +1 -1
  57. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  58. package/lib/cjs/IModelJsFs.js.map +1 -1
  59. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  60. package/lib/cjs/IpcHost.js.map +1 -1
  61. package/lib/cjs/LineStyle.js.map +1 -1
  62. package/lib/cjs/LocalHub.js +1 -1
  63. package/lib/cjs/LocalHub.js.map +1 -1
  64. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  65. package/lib/cjs/LockControl.js.map +1 -1
  66. package/lib/cjs/Material.js.map +1 -1
  67. package/lib/cjs/Model.js.map +1 -1
  68. package/lib/cjs/NativeAppStorage.js.map +1 -1
  69. package/lib/cjs/NativeHost.js.map +1 -1
  70. package/lib/cjs/NavigationRelationship.js.map +1 -1
  71. package/lib/cjs/PartialChangeUnifier.js +7 -7
  72. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  73. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  74. package/lib/cjs/PropertyStore.js +1 -1
  75. package/lib/cjs/PropertyStore.js.map +1 -1
  76. package/lib/cjs/Relationship.js.map +1 -1
  77. package/lib/cjs/RpcBackend.js.map +1 -1
  78. package/lib/cjs/SQLiteDb.js.map +1 -1
  79. package/lib/cjs/Schema.js.map +1 -1
  80. package/lib/cjs/SchemaSync.js.map +1 -1
  81. package/lib/cjs/SchemaUtils.js.map +1 -1
  82. package/lib/cjs/SheetIndex.js.map +1 -1
  83. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  84. package/lib/cjs/SqliteStatement.js.map +1 -1
  85. package/lib/cjs/StashManager.js.map +1 -1
  86. package/lib/cjs/Texture.js.map +1 -1
  87. package/lib/cjs/TileStorage.js.map +1 -1
  88. package/lib/cjs/TxnManager.d.ts.map +1 -1
  89. package/lib/cjs/TxnManager.js +9 -0
  90. package/lib/cjs/TxnManager.js.map +1 -1
  91. package/lib/cjs/ViewDefinition.js.map +1 -1
  92. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  93. package/lib/cjs/ViewStore.js.map +1 -1
  94. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  95. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  96. package/lib/cjs/annotations/LeaderGeometry.d.ts +22 -7
  97. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
  98. package/lib/cjs/annotations/LeaderGeometry.js +104 -36
  99. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  100. package/lib/cjs/annotations/TextAnnotationElement.d.ts +1 -1
  101. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  102. package/lib/cjs/annotations/TextAnnotationElement.js +25 -10
  103. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  104. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  105. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  106. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  107. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  108. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  109. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  110. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  111. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  112. package/lib/cjs/core-backend.js.map +1 -1
  113. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  114. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  115. package/lib/cjs/domains/GenericElements.js.map +1 -1
  116. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  117. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  118. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  119. package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
  120. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  121. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  122. package/lib/cjs/internal/HubMock.js.map +1 -1
  123. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  124. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  125. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  126. package/lib/cjs/internal/NoLocks.js.map +1 -1
  127. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  128. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  129. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  130. package/lib/cjs/internal/Symbols.js.map +1 -1
  131. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  132. package/lib/cjs/internal/cross-package.js.map +1 -1
  133. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  134. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  135. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  136. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  137. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  138. package/lib/cjs/rpc/multipart.js.map +1 -1
  139. package/lib/cjs/rpc/tracing.js.map +1 -1
  140. package/lib/cjs/rpc/web/logging.js.map +1 -1
  141. package/lib/cjs/rpc/web/request.js.map +1 -1
  142. package/lib/cjs/rpc/web/response.js.map +1 -1
  143. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  144. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  145. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  146. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  147. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  148. package/lib/cjs/workspace/Settings.js.map +1 -1
  149. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  150. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  151. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  152. package/lib/cjs/workspace/Workspace.js.map +1 -1
  153. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  154. package/lib/esm/BackendHubAccess.js.map +1 -1
  155. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  156. package/lib/esm/BisCoreSchema.js.map +1 -1
  157. package/lib/esm/BlobContainerService.js.map +1 -1
  158. package/lib/esm/BriefcaseManager.js.map +1 -1
  159. package/lib/esm/CatalogDb.js.map +1 -1
  160. package/lib/esm/Category.js.map +1 -1
  161. package/lib/esm/ChangeSummaryManager.js +2 -2
  162. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  163. package/lib/esm/ChangedElementsDb.js.map +1 -1
  164. package/lib/esm/ChangesetECAdaptor.js +248 -248
  165. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  166. package/lib/esm/ChangesetReader.js +3 -3
  167. package/lib/esm/ChangesetReader.js.map +1 -1
  168. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  169. package/lib/esm/ChannelControl.js.map +1 -1
  170. package/lib/esm/CheckpointManager.js.map +1 -1
  171. package/lib/esm/ClassRegistry.js +5 -5
  172. package/lib/esm/ClassRegistry.js.map +1 -1
  173. package/lib/esm/CloudSqlite.js.map +1 -1
  174. package/lib/esm/CodeService.js.map +1 -1
  175. package/lib/esm/CodeSpecs.js.map +1 -1
  176. package/lib/esm/ConcurrentQuery.js.map +1 -1
  177. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  178. package/lib/esm/DevTools.js.map +1 -1
  179. package/lib/esm/DisplayStyle.js.map +1 -1
  180. package/lib/esm/ECDb.js.map +1 -1
  181. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  182. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  183. package/lib/esm/ECSqlStatement.js.map +1 -1
  184. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  185. package/lib/esm/EditTxn.js.map +1 -1
  186. package/lib/esm/Element.d.ts +10 -2
  187. package/lib/esm/Element.d.ts.map +1 -1
  188. package/lib/esm/Element.js +69 -22
  189. package/lib/esm/Element.js.map +1 -1
  190. package/lib/esm/ElementAspect.js.map +1 -1
  191. package/lib/esm/ElementGraphics.js.map +1 -1
  192. package/lib/esm/ElementTreeWalker.js.map +1 -1
  193. package/lib/esm/Entity.js.map +1 -1
  194. package/lib/esm/EntityReferences.js.map +1 -1
  195. package/lib/esm/ExportGraphics.js.map +1 -1
  196. package/lib/esm/ExternalSource.js.map +1 -1
  197. package/lib/esm/FontFile.js.map +1 -1
  198. package/lib/esm/GeoCoordConfig.js.map +1 -1
  199. package/lib/esm/GeographicCRSServices.js.map +1 -1
  200. package/lib/esm/GeometrySummary.js +47 -47
  201. package/lib/esm/GeometrySummary.js.map +1 -1
  202. package/lib/esm/IModelDb.d.ts +1 -1
  203. package/lib/esm/IModelDb.d.ts.map +1 -1
  204. package/lib/esm/IModelDb.js +39 -27
  205. package/lib/esm/IModelDb.js.map +1 -1
  206. package/lib/esm/IModelDbFonts.js.map +1 -1
  207. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  208. package/lib/esm/IModelHost.js.map +1 -1
  209. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  210. package/lib/esm/IModelJsFs.js.map +1 -1
  211. package/lib/esm/ImageSourceConversion.js.map +1 -1
  212. package/lib/esm/IpcHost.js.map +1 -1
  213. package/lib/esm/LineStyle.js.map +1 -1
  214. package/lib/esm/LocalHub.js +1 -1
  215. package/lib/esm/LocalHub.js.map +1 -1
  216. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  217. package/lib/esm/LockControl.js.map +1 -1
  218. package/lib/esm/Material.js.map +1 -1
  219. package/lib/esm/Model.js.map +1 -1
  220. package/lib/esm/NativeAppStorage.js.map +1 -1
  221. package/lib/esm/NativeHost.js.map +1 -1
  222. package/lib/esm/NavigationRelationship.js.map +1 -1
  223. package/lib/esm/PartialChangeUnifier.js +7 -7
  224. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  225. package/lib/esm/PromiseMemoizer.js.map +1 -1
  226. package/lib/esm/PropertyStore.js +1 -1
  227. package/lib/esm/PropertyStore.js.map +1 -1
  228. package/lib/esm/Relationship.js.map +1 -1
  229. package/lib/esm/RpcBackend.js.map +1 -1
  230. package/lib/esm/SQLiteDb.js.map +1 -1
  231. package/lib/esm/Schema.js.map +1 -1
  232. package/lib/esm/SchemaSync.js.map +1 -1
  233. package/lib/esm/SchemaUtils.js.map +1 -1
  234. package/lib/esm/SheetIndex.js.map +1 -1
  235. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  236. package/lib/esm/SqliteStatement.js.map +1 -1
  237. package/lib/esm/StashManager.js.map +1 -1
  238. package/lib/esm/Texture.js.map +1 -1
  239. package/lib/esm/TileStorage.js.map +1 -1
  240. package/lib/esm/TxnManager.d.ts.map +1 -1
  241. package/lib/esm/TxnManager.js +9 -0
  242. package/lib/esm/TxnManager.js.map +1 -1
  243. package/lib/esm/ViewDefinition.js.map +1 -1
  244. package/lib/esm/ViewStateHydrator.js.map +1 -1
  245. package/lib/esm/ViewStore.js.map +1 -1
  246. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  247. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  248. package/lib/esm/annotations/LeaderGeometry.d.ts +22 -7
  249. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
  250. package/lib/esm/annotations/LeaderGeometry.js +104 -36
  251. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  252. package/lib/esm/annotations/TextAnnotationElement.d.ts +1 -1
  253. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  254. package/lib/esm/annotations/TextAnnotationElement.js +25 -10
  255. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  256. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  257. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  258. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  259. package/lib/esm/core-backend.js.map +1 -1
  260. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  261. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  262. package/lib/esm/domains/GenericElements.js.map +1 -1
  263. package/lib/esm/domains/GenericSchema.js.map +1 -1
  264. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  265. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  266. package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
  267. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  268. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  269. package/lib/esm/internal/HubMock.js.map +1 -1
  270. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  271. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  272. package/lib/esm/internal/NativePlatform.js.map +1 -1
  273. package/lib/esm/internal/NoLocks.js.map +1 -1
  274. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  275. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  276. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  277. package/lib/esm/internal/Symbols.js.map +1 -1
  278. package/lib/esm/internal/annotations/fields.js.map +1 -1
  279. package/lib/esm/internal/cross-package.js.map +1 -1
  280. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  281. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  282. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  283. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  284. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  285. package/lib/esm/rpc/multipart.js.map +1 -1
  286. package/lib/esm/rpc/tracing.js.map +1 -1
  287. package/lib/esm/rpc/web/logging.js.map +1 -1
  288. package/lib/esm/rpc/web/request.js.map +1 -1
  289. package/lib/esm/rpc/web/response.js.map +1 -1
  290. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  291. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  292. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  293. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  294. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  295. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  296. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  297. package/lib/esm/test/AttachDb.test.js +11 -11
  298. package/lib/esm/test/AttachDb.test.js.map +1 -1
  299. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  300. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  301. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  302. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  303. package/lib/esm/test/IModelHost.test.js.map +1 -1
  304. package/lib/esm/test/IModelTestUtils.d.ts +1 -1
  305. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  306. package/lib/esm/test/IModelTestUtils.js +8 -3
  307. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  308. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  309. package/lib/esm/test/IpcHost.test.js.map +1 -1
  310. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  311. package/lib/esm/test/PrintElementTree.js.map +1 -1
  312. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  313. package/lib/esm/test/RevisionUtility.js.map +1 -1
  314. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  315. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  316. package/lib/esm/test/SchemaUtils.test.js +25 -25
  317. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  318. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  319. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  320. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  321. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  322. package/lib/esm/test/TestEditTxn.js.map +1 -1
  323. package/lib/esm/test/TestUtils.js.map +1 -1
  324. package/lib/esm/test/annotations/Fields.test.js +53 -53
  325. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  326. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  327. package/lib/esm/test/annotations/LeaderGeometry.test.js +178 -2
  328. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  329. package/lib/esm/test/annotations/TextAnnotation.test.js +48 -18
  330. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  331. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  332. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  333. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  334. package/lib/esm/test/categories/Category.test.js.map +1 -1
  335. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  336. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  337. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  338. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  339. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  340. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  341. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  342. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  343. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  344. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  345. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  346. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  347. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  348. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  349. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  350. package/lib/esm/test/ecdb/ECSqlStatement.test.js +509 -332
  351. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  352. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
  353. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  354. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  355. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  356. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  357. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  358. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  359. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  360. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  361. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  362. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  363. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  364. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  365. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  366. package/lib/esm/test/element/ElementRoundTrip.test.js +219 -141
  367. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  368. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  369. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  370. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  371. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  372. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  373. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  374. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  375. package/lib/esm/test/example-code/EditTxn.test.js.map +1 -1
  376. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  377. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  378. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  379. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  380. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  381. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  382. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  383. package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
  384. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  385. package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
  386. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  387. package/lib/esm/test/imageData.js.map +1 -1
  388. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  389. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  390. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  391. package/lib/esm/test/imodel/IModelECSql.test.js.map +1 -1
  392. package/lib/esm/test/imodel/IModelElements.test.js.map +1 -1
  393. package/lib/esm/test/imodel/IModelGeolocation.test.js.map +1 -1
  394. package/lib/esm/test/imodel/IModelLifecycle.test.js.map +1 -1
  395. package/lib/esm/test/imodel/IModelMetadata.test.js.map +1 -1
  396. package/lib/esm/test/imodel/IModelModels.test.js.map +1 -1
  397. package/lib/esm/test/imodel/IModelRelationships.test.js +44 -44
  398. package/lib/esm/test/imodel/IModelRelationships.test.js.map +1 -1
  399. package/lib/esm/test/imodel/IModelTestFixtures.js.map +1 -1
  400. package/lib/esm/test/imodel/IModelViews.test.js.map +1 -1
  401. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  402. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  403. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  404. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  405. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  406. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  407. package/lib/esm/test/index.js.map +1 -1
  408. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
  409. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
  410. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  411. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  412. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  413. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  414. package/lib/esm/test/rpc/response.test.js.map +1 -1
  415. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  416. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  417. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  418. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  419. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  420. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  421. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  422. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  423. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
  424. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
  425. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  426. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  427. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  428. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  429. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  430. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  431. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  432. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  433. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  434. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
  435. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  436. package/lib/esm/test/standalone/ChangesetReader.test.js +321 -339
  437. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  438. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
  439. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  440. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  441. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts +2 -0
  442. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts.map +1 -0
  443. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js +263 -0
  444. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js.map +1 -0
  445. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  446. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  447. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  448. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  449. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  450. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  451. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  452. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  453. package/lib/esm/test/standalone/GeometryStream.test.js +1 -3
  454. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  455. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  456. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  457. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  458. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  459. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  460. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  461. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  462. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  463. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  464. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  465. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  466. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  467. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +135 -135
  468. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  469. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  470. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  471. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  472. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  473. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  474. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  475. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  476. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  477. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  478. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  479. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  480. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  481. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  482. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  483. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  484. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  485. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  486. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  487. package/lib/esm/workspace/Settings.js.map +1 -1
  488. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  489. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  490. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  491. package/lib/esm/workspace/Workspace.js.map +1 -1
  492. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  493. package/package.json +13 -16
@@ -1 +1 @@
1
- {"version":3,"file":"IModelECSql.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/IModelECSql.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { assert } from \"chai\";\nimport { DbResult, Id64, Id64String } from \"@itwin/core-bentley\";\nimport { withEditTxn } from \"../../EditTxn\";\nimport { Category, ECSqlStatement, Element, SnapshotDb, SqliteStatement, SqliteValue, SqliteValueType } from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { TestUtils } from \"../TestUtils\";\nimport { closeIfOpen, createIModelFromSeed, importTestBim, openReadonlySeedCopy } from \"./IModelTestFixtures\";\n\n\ndescribe(\"iModel ECSQL and SQL\", () => {\n let testBimReadonly: SnapshotDb;\n let compatibilityReadonly: SnapshotDb;\n\n before(async () => {\n await TestUtils.startBackend();\n IModelTestUtils.registerTestBimSchema();\n\n testBimReadonly = await openReadonlySeedCopy(\"ecsql-test.bim\", \"test.bim\", { importTestBim: true });\n compatibilityReadonly = await openReadonlySeedCopy(\"ecsql-CompatibilityTestSeed.bim\", \"CompatibilityTestSeed.bim\");\n });\n\n after(() => {\n closeIfOpen(testBimReadonly, compatibilityReadonly);\n });\n\n // NOTE: this test can be removed when the deprecated executeQuery method is removed\n it(\"should produce an array of rows\", () => {\n const imodel1 = testBimReadonly;\n const rows: any[] = IModelTestUtils.executeQuery(imodel1, `SELECT * FROM ${Category.classFullName}`);\n assert.exists(rows);\n assert.isArray(rows);\n assert.isAtLeast(rows.length, 1);\n assert.exists(rows[0].id);\n assert.notEqual(rows[0].id.value, \"\");\n });\n\n it(\"queryEntityIds should skip undefined and null bindings\", () => {\n const imodel2 = compatibilityReadonly;\n // Callers commonly build the WHERE clause conditionally but pass the bindings object\n // unconditionally, relying on undefined entries being skipped (legacy bindValues semantics).\n const baseline = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\" });\n assert.isAtLeast(baseline.size, 1);\n\n const parent: string | undefined = undefined;\n const where = \"codevalue is null\";\n const withUnusedUndefined = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where, bindings: { parent } });\n assert.deepEqual(withUnusedUndefined, baseline);\n\n const withUnusedNull = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\", bindings: { parent: null } });\n assert.deepEqual(withUnusedNull, baseline);\n\n const someId = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue IS NOT NULL\", limit: 1 }).values().next().value as string;\n assert.isDefined(someId);\n const codeValue = imodel2.elements.getElement(someId).code.value;\n const mixed = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue=:cv\", bindings: { cv: codeValue, parent: undefined } });\n assert.isTrue(mixed.has(someId));\n\n // positional form: trailing undefined beyond the parameter count must be skipped, not bound\n const positional = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue=?\", bindings: [codeValue, undefined] });\n assert.isTrue(positional.has(someId));\n });\n\n it(\"should exercise ECSqlStatement (backend only)\", () => {\n const imodel2 = compatibilityReadonly;\n // Reject an invalid statement\n try {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n imodel2.prepareStatement(\"select no_such_property, codeValue from bis.element\", false);\n assert.fail(\"prepare should have failed with an exception\");\n } catch (err: any) {\n assert.isTrue(err.constructor.name === \"IModelError\");\n assert.notEqual(err.status, DbResult.BE_SQLITE_OK);\n }\n let lastId: string = \"\";\n let firstCodeValue: string = \"\";\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element\", (stmt: ECSqlStatement) => {\n assert.isNotNull(stmt);\n // Reject an attempt to bind when there are no placeholders in the statement\n try {\n stmt.bindStruct(1, { foo: 1 });\n assert.fail(\"bindStruct should have failed with an exception\");\n } catch (err2: any) {\n assert.isTrue(err2.constructor.name === \"IModelError\");\n assert.notEqual(err2.status, DbResult.BE_SQLITE_OK);\n }\n\n // Verify that we get a bunch of rows with the expected shape\n let count = 0;\n while (DbResult.BE_SQLITE_ROW === stmt.step()) {\n const row = stmt.getRow();\n assert.isNotNull(row);\n assert.isObject(row);\n assert.isTrue(row.id !== undefined);\n assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));\n lastId = row.id;\n if (row.codeValue !== undefined)\n firstCodeValue = row.codeValue;\n count = count + 1;\n }\n assert.isTrue(count > 1);\n assert.notEqual(lastId, \"\");\n assert.notEqual(firstCodeValue, \"\");\n\n // Try iterator style\n let firstCodeValueIter: string = \"\";\n let iteratorCount = 0;\n let lastIterId: string = \"\";\n stmt.reset();\n for (const row of stmt) {\n assert.isNotNull(row);\n assert.isObject(row);\n assert.isTrue(row.id !== undefined);\n assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));\n lastIterId = row.id;\n iteratorCount = iteratorCount + 1;\n if (row.codeValue !== undefined)\n firstCodeValueIter = row.codeValue;\n }\n assert.equal(iteratorCount, count, \"iterator loop should find the same number of rows as the step loop\");\n assert.equal(lastIterId, lastId, \"iterator loop should see the same last row as the step loop\");\n assert.equal(firstCodeValueIter, firstCodeValue, \"iterator loop should find the first non-null code value as the step loop\");\n });\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element WHERE (ecinstanceid=?)\", (stmt3: ECSqlStatement) => {\n // Now try a statement with a placeholder\n const idToFind = Id64.fromJSON(lastId);\n stmt3.bindId(1, idToFind);\n let count = 0;\n while (DbResult.BE_SQLITE_ROW === stmt3.step()) {\n count = count + 1;\n const row = stmt3.getRow();\n // Verify that we got the row that we asked for\n assert.isTrue(idToFind === Id64.fromJSON(row.id));\n }\n // Verify that we got the row that we asked for\n assert.equal(count, 1);\n });\n\n let firstCodeValueId: Id64String | undefined;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element WHERE (codeValue = :codevalue)\", (stmt4: ECSqlStatement) => {\n // Try a named placeholder\n const codeValueToFind = firstCodeValue;\n stmt4.bindString(\"codeValue\", codeValueToFind);\n let count = 0;\n while (DbResult.BE_SQLITE_ROW === stmt4.step()) {\n count = count + 1;\n const row = stmt4.getRow();\n // Verify that we got the row that we asked for\n assert.equal(row.codeValue, codeValueToFind);\n firstCodeValueId = row.id;\n }\n // Verify that we got the row that we asked for\n assert.equal(count, 1);\n });\n\n // make sure we can use parameterized values for queryEnityId (test on parameterized codevalue)\n const ids = imodel2.queryEntityIds({ from: \"bis.element\", where: \"codevalue=:cv\", bindings: { cv: firstCodeValue } });\n assert.equal(ids.values().next().value, firstCodeValueId);\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n imodel2.withPreparedStatement(\"select ecinstanceid as id, codevalue from bis.element\", (stmt5: ECSqlStatement) => {\n while (DbResult.BE_SQLITE_ROW === stmt5.step()) {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n imodel2.withPreparedStatement(\"select codevalue from bis.element where ecinstanceid=?\", (stmt6: ECSqlStatement) => {\n stmt6.bindId(1, stmt5.getRow().id);\n while (DbResult.BE_SQLITE_ROW === stmt6.step()) {\n assert.equal(stmt6.getRow().codevalue, stmt5.getRow().codevalue);\n }\n });\n }\n });\n\n // make sure queryEnityIds works fine when all params are specified\n const physicalObjectIds = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\", limit: 1, offset: 1, only: true, orderBy: \"ecinstanceid desc\" });\n assert.equal(physicalObjectIds.size, 1);\n });\n\n describe(\"with a writable test.bim seed\", () => {\n let imodel1: SnapshotDb;\n\n beforeEach(async () => {\n imodel1 = await importTestBim(createIModelFromSeed(\"ecsql-plain-sql.bim\", \"test.bim\"));\n });\n\n afterEach(() => {\n if (imodel1 !== undefined && imodel1.isOpen)\n imodel1.close();\n });\n\n it(\"Run plain SQL\", () => {\n withEditTxn(imodel1, () => {\n imodel1.withPreparedSqliteStatement(\"CREATE TABLE Test(Id INTEGER PRIMARY KEY, Name TEXT NOT NULL, Code INTEGER)\", (stmt: SqliteStatement) => {\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(?,?)\", (stmt: SqliteStatement) => {\n stmt.bindValue(1, \"Dummy 1\");\n stmt.bindValue(2, 100);\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(?,?)\", (stmt: SqliteStatement) => {\n stmt.bindValues([\"Dummy 2\", 200]);\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(:p1,:p2)\", (stmt: SqliteStatement) => {\n stmt.bindValue(\":p1\", \"Dummy 3\");\n stmt.bindValue(\":p2\", 300);\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(:p1,:p2)\", (stmt: SqliteStatement) => {\n stmt.bindValues({ \":p1\": \"Dummy 4\", \":p2\": 400 });\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n });\n\n imodel1.withPreparedSqliteStatement(\"SELECT Id,Name,Code FROM Test ORDER BY Id\", (stmt: SqliteStatement) => {\n for (let i: number = 1; i <= 4; i++) {\n assert.equal(stmt.step(), DbResult.BE_SQLITE_ROW);\n assert.equal(stmt.getColumnCount(), 3);\n const val0: SqliteValue = stmt.getValue(0);\n assert.equal(val0.columnName, \"Id\");\n assert.equal(val0.type, SqliteValueType.Integer);\n assert.isFalse(val0.isNull);\n assert.equal(val0.getInteger(), i);\n\n const val1: SqliteValue = stmt.getValue(1);\n assert.equal(val1.columnName, \"Name\");\n assert.equal(val1.type, SqliteValueType.String);\n assert.isFalse(val1.isNull);\n assert.equal(val1.getString(), `Dummy ${i}`);\n\n const val2: SqliteValue = stmt.getValue(2);\n assert.equal(val2.columnName, \"Code\");\n assert.equal(val2.type, SqliteValueType.Integer);\n assert.isFalse(val2.isNull);\n assert.equal(val2.getInteger(), i * 100);\n\n const row: any = stmt.getRow();\n assert.equal(row.id, i);\n assert.equal(row.name, `Dummy ${i}`);\n assert.equal(row.code, i * 100);\n }\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n\n imodel1.withPreparedSqliteStatement(\"SELECT 1 FROM ec_CustomAttribute WHERE ContainerId=? AND Instance LIKE '<IsMixin%' COLLATE NOCASE\", (stmt: SqliteStatement) => {\n stmt.bindValue(1, \"0x1f\");\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\n });\n });\n });\n\n it(\"Run plain SQL against readonly connection\", () => {\n let iModel = SnapshotDb.createEmpty(IModelTestUtils.prepareOutputFile(\"IModel\", \"sqlitesqlreadonlyconnection.bim\"), { rootSubject: { name: \"test\" } });\n const iModelPath = iModel.pathName;\n iModel.close();\n iModel = SnapshotDb.openFile(iModelPath);\n\n try {\n iModel.withPreparedSqliteStatement(\"SELECT Name,StrData FROM be_Prop WHERE Namespace='ec_Db'\", (stmt: SqliteStatement) => {\n let rowCount: number = 0;\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rowCount++;\n assert.equal(stmt.getColumnCount(), 2);\n const nameVal: SqliteValue = stmt.getValue(0);\n assert.equal(nameVal.columnName, \"Name\");\n assert.equal(nameVal.type, SqliteValueType.String);\n assert.isFalse(nameVal.isNull);\n const name: string = nameVal.getString();\n\n const versionVal: SqliteValue = stmt.getValue(1);\n assert.equal(versionVal.columnName, \"StrData\");\n assert.equal(versionVal.type, SqliteValueType.String);\n assert.isFalse(versionVal.isNull);\n const profileVersion: any = JSON.parse(versionVal.getString());\n\n assert.isTrue(name === \"SchemaVersion\" || name === \"InitialSchemaVersion\");\n if (name === \"SchemaVersion\") {\n assert.equal(profileVersion.major, 4);\n assert.equal(profileVersion.minor, 0);\n assert.equal(profileVersion.sub1, 0);\n assert.isAtLeast(profileVersion.sub2, 1);\n } else if (name === \"InitialSchemaVersion\") {\n assert.equal(profileVersion.major, 4);\n assert.equal(profileVersion.minor, 0);\n assert.equal(profileVersion.sub1, 0);\n assert.isAtLeast(profileVersion.sub2, 1);\n }\n }\n assert.equal(rowCount, 2);\n });\n } finally {\n iModel.close();\n }\n });\n\n it(\"tryPrepareStatement\", () => {\n const imodel1 = testBimReadonly;\n const sql = `SELECT * FROM ${Element.classFullName} LIMIT 1`;\n const invalidSql = \"SELECT * FROM InvalidSchemaName:InvalidClassName LIMIT 1\";\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n assert.throws(() => imodel1.prepareStatement(invalidSql, false));\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n assert.isUndefined(imodel1.tryPrepareStatement(invalidSql));\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n using statement: ECSqlStatement | undefined = imodel1.tryPrepareStatement(sql);\n assert.isDefined(statement);\n assert.isTrue(statement?.isPrepared);\n });\n\n it(\"containsClass\", () => {\n const imodel1 = testBimReadonly;\n assert.isTrue(imodel1.containsClass(Element.classFullName));\n assert.isTrue(imodel1.containsClass(\"BisCore:Element\"));\n assert.isTrue(imodel1.containsClass(\"BisCore.Element\"));\n assert.isTrue(imodel1.containsClass(\"biscore:element\"));\n assert.isTrue(imodel1.containsClass(\"biscore.element\"));\n assert.isTrue(imodel1.containsClass(\"bis:Element\"));\n assert.isTrue(imodel1.containsClass(\"bis.Element\"));\n assert.isTrue(imodel1.containsClass(\"bis:element\"));\n assert.isTrue(imodel1.containsClass(\"bis.element\"));\n assert.isFalse(imodel1.containsClass(\"BisCore:Element:InvalidExtra\"));\n assert.isFalse(imodel1.containsClass(\"BisCore\"));\n assert.isFalse(imodel1.containsClass(\":Element\"));\n assert.isFalse(imodel1.containsClass(\"BisCore:InvalidClassName\"));\n assert.isFalse(imodel1.containsClass(\"InvalidSchemaName:Element\"));\n });\n});\n"]}
1
+ {"version":3,"file":"IModelECSql.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/IModelECSql.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;+FAG+F;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAc,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAkB,OAAO,EAAE,UAAU,EAAgC,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAClI,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG9G,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,eAA2B,CAAC;IAChC,IAAI,qBAAiC,CAAC;IAEtC,MAAM,CAAC,KAAK,IAAI,EAAE;QAChB,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC;QAC/B,eAAe,CAAC,qBAAqB,EAAE,CAAC;QAExC,eAAe,GAAG,MAAM,oBAAoB,CAAC,gBAAgB,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,qBAAqB,GAAG,MAAM,oBAAoB,CAAC,iCAAiC,EAAE,2BAA2B,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,GAAG,EAAE;QACT,WAAW,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,oFAAoF;IACpF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,OAAO,GAAG,eAAe,CAAC;QAChC,MAAM,IAAI,GAAU,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QACrG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1B,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,qFAAqF;QACrF,6FAA6F;QAC7F,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACxG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAEnC,MAAM,MAAM,GAAuB,SAAS,CAAC;QAC7C,MAAM,KAAK,GAAG,mBAAmB,CAAC;QAClC,MAAM,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpH,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAEhD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1I,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAe,CAAC;QACzI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACjE,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QACtI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QAEjC,4FAA4F;QAC5F,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3H,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,8BAA8B;QAC9B,IAAI,CAAC;YACH,4DAA4D;YAC5D,OAAO,CAAC,gBAAgB,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,cAAc,GAAW,EAAE,CAAC;QAChC,4DAA4D;QAC5D,OAAO,CAAC,qBAAqB,CAAC,iDAAiD,EAAE,CAAC,IAAoB,EAAE,EAAE;YACxG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACvB,4EAA4E;YAC5E,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,IAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;gBACvD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;YACtD,CAAC;YAED,6DAA6D;YAC7D,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,QAAQ,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;gBAChB,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;oBAC7B,cAAc,GAAG,GAAG,CAAC,SAAS,CAAC;gBACjC,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACzB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC5B,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAEpC,qBAAqB;YACrB,IAAI,kBAAkB,GAAW,EAAE,CAAC;YACpC,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,IAAI,UAAU,GAAW,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACtB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACrB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;gBACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnD,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;gBACpB,aAAa,GAAG,aAAa,GAAG,CAAC,CAAC;gBAClC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;oBAC7B,kBAAkB,GAAG,GAAG,CAAC,SAAS,CAAC;YACvC,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,EAAE,oEAAoE,CAAC,CAAC;YACzG,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,6DAA6D,CAAC,CAAC;YAChG,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,cAAc,EAAE,0EAA0E,CAAC,CAAC;QAC/H,CAAC,CAAC,CAAC;QAEH,4DAA4D;QAC5D,OAAO,CAAC,qBAAqB,CAAC,wEAAwE,EAAE,CAAC,KAAqB,EAAE,EAAE;YAChI,yCAAyC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBAClB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3B,+CAA+C;gBAC/C,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;YACD,+CAA+C;YAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAwC,CAAC;QAC7C,4DAA4D;QAC5D,OAAO,CAAC,qBAAqB,CAAC,gFAAgF,EAAE,CAAC,KAAqB,EAAE,EAAE;YACxI,0BAA0B;YAC1B,MAAM,eAAe,GAAG,cAAc,CAAC;YACvC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;gBAClB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3B,+CAA+C;gBAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;gBAC7C,gBAAgB,GAAG,GAAG,CAAC,EAAE,CAAC;YAC5B,CAAC;YACD,+CAA+C;YAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,+FAA+F;QAC/F,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QACtH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAE1D,4DAA4D;QAC5D,OAAO,CAAC,qBAAqB,CAAC,uDAAuD,EAAE,CAAC,KAAqB,EAAE,EAAE;YAC/G,OAAO,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC/C,4DAA4D;gBAC5D,OAAO,CAAC,qBAAqB,CAAC,wDAAwD,EAAE,CAAC,KAAqB,EAAE,EAAE;oBAChH,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;oBACnC,OAAO,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC/C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,mEAAmE;QACnE,MAAM,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAChL,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,OAAmB,CAAC;QAExB,UAAU,CAAC,KAAK,IAAI,EAAE;YACpB,OAAO,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM;gBACzC,OAAO,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE;gBACxB,OAAO,CAAC,2BAA2B,CAAC,6EAA6E,EAAE,CAAC,IAAqB,EAAE,EAAE;oBAC3I,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,2BAA2B,CAAC,yCAAyC,EAAE,CAAC,IAAqB,EAAE,EAAE;oBACvG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,2BAA2B,CAAC,yCAAyC,EAAE,CAAC,IAAqB,EAAE,EAAE;oBACvG,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;oBAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,2BAA2B,CAAC,6CAA6C,EAAE,CAAC,IAAqB,EAAE,EAAE;oBAC3G,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACjC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAC3B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBAEH,OAAO,CAAC,2BAA2B,CAAC,6CAA6C,EAAE,CAAC,IAAqB,EAAE,EAAE;oBAC3G,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;oBAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,2BAA2B,CAAC,2CAA2C,EAAE,CAAC,IAAqB,EAAE,EAAE;gBACzG,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;oBAClD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;oBACvC,MAAM,IAAI,GAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;oBACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;oBAEnC,MAAM,IAAI,GAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBAChD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;oBAE7C,MAAM,IAAI,GAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC3C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACtC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;oBACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;oBAEzC,MAAM,GAAG,GAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;oBACxB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;oBACrC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,2BAA2B,CAAC,mGAAmG,EAAE,CAAC,IAAqB,EAAE,EAAE;gBACjK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,IAAI,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,iBAAiB,CAAC,QAAQ,EAAE,iCAAiC,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACvJ,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC;QACnC,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,CAAC,2BAA2B,CAAC,0DAA0D,EAAE,CAAC,IAAqB,EAAE,EAAE;gBACvH,IAAI,QAAQ,GAAW,CAAC,CAAC;gBACzB,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;oBAC9C,QAAQ,EAAE,CAAC;oBACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBACzC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBACnD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC/B,MAAM,IAAI,GAAW,OAAO,CAAC,SAAS,EAAE,CAAC;oBAEzC,MAAM,UAAU,GAAgB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACjD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;oBAC/C,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;oBACtD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBAClC,MAAM,cAAc,GAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;oBAE/D,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,sBAAsB,CAAC,CAAC;oBAC3E,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;wBAC7B,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACrC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC3C,CAAC;yBAAM,IAAI,IAAI,KAAK,sBAAsB,EAAE,CAAC;wBAC3C,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;wBACtC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACrC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC3C,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;;;YAC7B,MAAM,OAAO,GAAG,eAAe,CAAC;YAChC,MAAM,GAAG,GAAG,iBAAiB,OAAO,CAAC,aAAa,UAAU,CAAC;YAC7D,MAAM,UAAU,GAAG,0DAA0D,CAAC;YAC9E,4DAA4D;YAC5D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YACjE,4DAA4D;YAC5D,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5D,4DAA4D;YAC5D,MAAM,SAAS,kCAA+B,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAA,CAAC;YAC/E,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC5B,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;;;;;;;;;KACtC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,OAAO,GAAG,eAAe,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { assert } from \"chai\";\r\nimport { DbResult, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { withEditTxn } from \"../../EditTxn\";\r\nimport { Category, ECSqlStatement, Element, SnapshotDb, SqliteStatement, SqliteValue, SqliteValueType } from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { TestUtils } from \"../TestUtils\";\r\nimport { closeIfOpen, createIModelFromSeed, importTestBim, openReadonlySeedCopy } from \"./IModelTestFixtures\";\r\n\r\n\r\ndescribe(\"iModel ECSQL and SQL\", () => {\r\n let testBimReadonly: SnapshotDb;\r\n let compatibilityReadonly: SnapshotDb;\r\n\r\n before(async () => {\r\n await TestUtils.startBackend();\r\n IModelTestUtils.registerTestBimSchema();\r\n\r\n testBimReadonly = await openReadonlySeedCopy(\"ecsql-test.bim\", \"test.bim\", { importTestBim: true });\r\n compatibilityReadonly = await openReadonlySeedCopy(\"ecsql-CompatibilityTestSeed.bim\", \"CompatibilityTestSeed.bim\");\r\n });\r\n\r\n after(() => {\r\n closeIfOpen(testBimReadonly, compatibilityReadonly);\r\n });\r\n\r\n // NOTE: this test can be removed when the deprecated executeQuery method is removed\r\n it(\"should produce an array of rows\", () => {\r\n const imodel1 = testBimReadonly;\r\n const rows: any[] = IModelTestUtils.executeQuery(imodel1, `SELECT * FROM ${Category.classFullName}`);\r\n assert.exists(rows);\r\n assert.isArray(rows);\r\n assert.isAtLeast(rows.length, 1);\r\n assert.exists(rows[0].id);\r\n assert.notEqual(rows[0].id.value, \"\");\r\n });\r\n\r\n it(\"queryEntityIds should skip undefined and null bindings\", () => {\r\n const imodel2 = compatibilityReadonly;\r\n // Callers commonly build the WHERE clause conditionally but pass the bindings object\r\n // unconditionally, relying on undefined entries being skipped (legacy bindValues semantics).\r\n const baseline = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\" });\r\n assert.isAtLeast(baseline.size, 1);\r\n\r\n const parent: string | undefined = undefined;\r\n const where = \"codevalue is null\";\r\n const withUnusedUndefined = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where, bindings: { parent } });\r\n assert.deepEqual(withUnusedUndefined, baseline);\r\n\r\n const withUnusedNull = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\", bindings: { parent: null } });\r\n assert.deepEqual(withUnusedNull, baseline);\r\n\r\n const someId = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue IS NOT NULL\", limit: 1 }).values().next().value as string;\r\n assert.isDefined(someId);\r\n const codeValue = imodel2.elements.getElement(someId).code.value;\r\n const mixed = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue=:cv\", bindings: { cv: codeValue, parent: undefined } });\r\n assert.isTrue(mixed.has(someId));\r\n\r\n // positional form: trailing undefined beyond the parameter count must be skipped, not bound\r\n const positional = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue=?\", bindings: [codeValue, undefined] });\r\n assert.isTrue(positional.has(someId));\r\n });\r\n\r\n it(\"should exercise ECSqlStatement (backend only)\", () => {\r\n const imodel2 = compatibilityReadonly;\r\n // Reject an invalid statement\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.prepareStatement(\"select no_such_property, codeValue from bis.element\", false);\r\n assert.fail(\"prepare should have failed with an exception\");\r\n } catch (err: any) {\r\n assert.isTrue(err.constructor.name === \"IModelError\");\r\n assert.notEqual(err.status, DbResult.BE_SQLITE_OK);\r\n }\r\n let lastId: string = \"\";\r\n let firstCodeValue: string = \"\";\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element\", (stmt: ECSqlStatement) => {\r\n assert.isNotNull(stmt);\r\n // Reject an attempt to bind when there are no placeholders in the statement\r\n try {\r\n stmt.bindStruct(1, { foo: 1 });\r\n assert.fail(\"bindStruct should have failed with an exception\");\r\n } catch (err2: any) {\r\n assert.isTrue(err2.constructor.name === \"IModelError\");\r\n assert.notEqual(err2.status, DbResult.BE_SQLITE_OK);\r\n }\r\n\r\n // Verify that we get a bunch of rows with the expected shape\r\n let count = 0;\r\n while (DbResult.BE_SQLITE_ROW === stmt.step()) {\r\n const row = stmt.getRow();\r\n assert.isNotNull(row);\r\n assert.isObject(row);\r\n assert.isTrue(row.id !== undefined);\r\n assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));\r\n lastId = row.id;\r\n if (row.codeValue !== undefined)\r\n firstCodeValue = row.codeValue;\r\n count = count + 1;\r\n }\r\n assert.isTrue(count > 1);\r\n assert.notEqual(lastId, \"\");\r\n assert.notEqual(firstCodeValue, \"\");\r\n\r\n // Try iterator style\r\n let firstCodeValueIter: string = \"\";\r\n let iteratorCount = 0;\r\n let lastIterId: string = \"\";\r\n stmt.reset();\r\n for (const row of stmt) {\r\n assert.isNotNull(row);\r\n assert.isObject(row);\r\n assert.isTrue(row.id !== undefined);\r\n assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));\r\n lastIterId = row.id;\r\n iteratorCount = iteratorCount + 1;\r\n if (row.codeValue !== undefined)\r\n firstCodeValueIter = row.codeValue;\r\n }\r\n assert.equal(iteratorCount, count, \"iterator loop should find the same number of rows as the step loop\");\r\n assert.equal(lastIterId, lastId, \"iterator loop should see the same last row as the step loop\");\r\n assert.equal(firstCodeValueIter, firstCodeValue, \"iterator loop should find the first non-null code value as the step loop\");\r\n });\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element WHERE (ecinstanceid=?)\", (stmt3: ECSqlStatement) => {\r\n // Now try a statement with a placeholder\r\n const idToFind = Id64.fromJSON(lastId);\r\n stmt3.bindId(1, idToFind);\r\n let count = 0;\r\n while (DbResult.BE_SQLITE_ROW === stmt3.step()) {\r\n count = count + 1;\r\n const row = stmt3.getRow();\r\n // Verify that we got the row that we asked for\r\n assert.isTrue(idToFind === Id64.fromJSON(row.id));\r\n }\r\n // Verify that we got the row that we asked for\r\n assert.equal(count, 1);\r\n });\r\n\r\n let firstCodeValueId: Id64String | undefined;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element WHERE (codeValue = :codevalue)\", (stmt4: ECSqlStatement) => {\r\n // Try a named placeholder\r\n const codeValueToFind = firstCodeValue;\r\n stmt4.bindString(\"codeValue\", codeValueToFind);\r\n let count = 0;\r\n while (DbResult.BE_SQLITE_ROW === stmt4.step()) {\r\n count = count + 1;\r\n const row = stmt4.getRow();\r\n // Verify that we got the row that we asked for\r\n assert.equal(row.codeValue, codeValueToFind);\r\n firstCodeValueId = row.id;\r\n }\r\n // Verify that we got the row that we asked for\r\n assert.equal(count, 1);\r\n });\r\n\r\n // make sure we can use parameterized values for queryEnityId (test on parameterized codevalue)\r\n const ids = imodel2.queryEntityIds({ from: \"bis.element\", where: \"codevalue=:cv\", bindings: { cv: firstCodeValue } });\r\n assert.equal(ids.values().next().value, firstCodeValueId);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid as id, codevalue from bis.element\", (stmt5: ECSqlStatement) => {\r\n while (DbResult.BE_SQLITE_ROW === stmt5.step()) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select codevalue from bis.element where ecinstanceid=?\", (stmt6: ECSqlStatement) => {\r\n stmt6.bindId(1, stmt5.getRow().id);\r\n while (DbResult.BE_SQLITE_ROW === stmt6.step()) {\r\n assert.equal(stmt6.getRow().codevalue, stmt5.getRow().codevalue);\r\n }\r\n });\r\n }\r\n });\r\n\r\n // make sure queryEnityIds works fine when all params are specified\r\n const physicalObjectIds = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\", limit: 1, offset: 1, only: true, orderBy: \"ecinstanceid desc\" });\r\n assert.equal(physicalObjectIds.size, 1);\r\n });\r\n\r\n describe(\"with a writable test.bim seed\", () => {\r\n let imodel1: SnapshotDb;\r\n\r\n beforeEach(async () => {\r\n imodel1 = await importTestBim(createIModelFromSeed(\"ecsql-plain-sql.bim\", \"test.bim\"));\r\n });\r\n\r\n afterEach(() => {\r\n if (imodel1 !== undefined && imodel1.isOpen)\r\n imodel1.close();\r\n });\r\n\r\n it(\"Run plain SQL\", () => {\r\n withEditTxn(imodel1, () => {\r\n imodel1.withPreparedSqliteStatement(\"CREATE TABLE Test(Id INTEGER PRIMARY KEY, Name TEXT NOT NULL, Code INTEGER)\", (stmt: SqliteStatement) => {\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(?,?)\", (stmt: SqliteStatement) => {\r\n stmt.bindValue(1, \"Dummy 1\");\r\n stmt.bindValue(2, 100);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(?,?)\", (stmt: SqliteStatement) => {\r\n stmt.bindValues([\"Dummy 2\", 200]);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(:p1,:p2)\", (stmt: SqliteStatement) => {\r\n stmt.bindValue(\":p1\", \"Dummy 3\");\r\n stmt.bindValue(\":p2\", 300);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(:p1,:p2)\", (stmt: SqliteStatement) => {\r\n stmt.bindValues({ \":p1\": \"Dummy 4\", \":p2\": 400 });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"SELECT Id,Name,Code FROM Test ORDER BY Id\", (stmt: SqliteStatement) => {\r\n for (let i: number = 1; i <= 4; i++) {\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_ROW);\r\n assert.equal(stmt.getColumnCount(), 3);\r\n const val0: SqliteValue = stmt.getValue(0);\r\n assert.equal(val0.columnName, \"Id\");\r\n assert.equal(val0.type, SqliteValueType.Integer);\r\n assert.isFalse(val0.isNull);\r\n assert.equal(val0.getInteger(), i);\r\n\r\n const val1: SqliteValue = stmt.getValue(1);\r\n assert.equal(val1.columnName, \"Name\");\r\n assert.equal(val1.type, SqliteValueType.String);\r\n assert.isFalse(val1.isNull);\r\n assert.equal(val1.getString(), `Dummy ${i}`);\r\n\r\n const val2: SqliteValue = stmt.getValue(2);\r\n assert.equal(val2.columnName, \"Code\");\r\n assert.equal(val2.type, SqliteValueType.Integer);\r\n assert.isFalse(val2.isNull);\r\n assert.equal(val2.getInteger(), i * 100);\r\n\r\n const row: any = stmt.getRow();\r\n assert.equal(row.id, i);\r\n assert.equal(row.name, `Dummy ${i}`);\r\n assert.equal(row.code, i * 100);\r\n }\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"SELECT 1 FROM ec_CustomAttribute WHERE ContainerId=? AND Instance LIKE '<IsMixin%' COLLATE NOCASE\", (stmt: SqliteStatement) => {\r\n stmt.bindValue(1, \"0x1f\");\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n });\r\n });\r\n\r\n it(\"Run plain SQL against readonly connection\", () => {\r\n let iModel = SnapshotDb.createEmpty(IModelTestUtils.prepareOutputFile(\"IModel\", \"sqlitesqlreadonlyconnection.bim\"), { rootSubject: { name: \"test\" } });\r\n const iModelPath = iModel.pathName;\r\n iModel.close();\r\n iModel = SnapshotDb.openFile(iModelPath);\r\n\r\n try {\r\n iModel.withPreparedSqliteStatement(\"SELECT Name,StrData FROM be_Prop WHERE Namespace='ec_Db'\", (stmt: SqliteStatement) => {\r\n let rowCount: number = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n assert.equal(stmt.getColumnCount(), 2);\r\n const nameVal: SqliteValue = stmt.getValue(0);\r\n assert.equal(nameVal.columnName, \"Name\");\r\n assert.equal(nameVal.type, SqliteValueType.String);\r\n assert.isFalse(nameVal.isNull);\r\n const name: string = nameVal.getString();\r\n\r\n const versionVal: SqliteValue = stmt.getValue(1);\r\n assert.equal(versionVal.columnName, \"StrData\");\r\n assert.equal(versionVal.type, SqliteValueType.String);\r\n assert.isFalse(versionVal.isNull);\r\n const profileVersion: any = JSON.parse(versionVal.getString());\r\n\r\n assert.isTrue(name === \"SchemaVersion\" || name === \"InitialSchemaVersion\");\r\n if (name === \"SchemaVersion\") {\r\n assert.equal(profileVersion.major, 4);\r\n assert.equal(profileVersion.minor, 0);\r\n assert.equal(profileVersion.sub1, 0);\r\n assert.isAtLeast(profileVersion.sub2, 1);\r\n } else if (name === \"InitialSchemaVersion\") {\r\n assert.equal(profileVersion.major, 4);\r\n assert.equal(profileVersion.minor, 0);\r\n assert.equal(profileVersion.sub1, 0);\r\n assert.isAtLeast(profileVersion.sub2, 1);\r\n }\r\n }\r\n assert.equal(rowCount, 2);\r\n });\r\n } finally {\r\n iModel.close();\r\n }\r\n });\r\n\r\n it(\"tryPrepareStatement\", () => {\r\n const imodel1 = testBimReadonly;\r\n const sql = `SELECT * FROM ${Element.classFullName} LIMIT 1`;\r\n const invalidSql = \"SELECT * FROM InvalidSchemaName:InvalidClassName LIMIT 1\";\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n assert.throws(() => imodel1.prepareStatement(invalidSql, false));\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n assert.isUndefined(imodel1.tryPrepareStatement(invalidSql));\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n using statement: ECSqlStatement | undefined = imodel1.tryPrepareStatement(sql);\r\n assert.isDefined(statement);\r\n assert.isTrue(statement?.isPrepared);\r\n });\r\n\r\n it(\"containsClass\", () => {\r\n const imodel1 = testBimReadonly;\r\n assert.isTrue(imodel1.containsClass(Element.classFullName));\r\n assert.isTrue(imodel1.containsClass(\"BisCore:Element\"));\r\n assert.isTrue(imodel1.containsClass(\"BisCore.Element\"));\r\n assert.isTrue(imodel1.containsClass(\"biscore:element\"));\r\n assert.isTrue(imodel1.containsClass(\"biscore.element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis:Element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis.Element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis:element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis.element\"));\r\n assert.isFalse(imodel1.containsClass(\"BisCore:Element:InvalidExtra\"));\r\n assert.isFalse(imodel1.containsClass(\"BisCore\"));\r\n assert.isFalse(imodel1.containsClass(\":Element\"));\r\n assert.isFalse(imodel1.containsClass(\"BisCore:InvalidClassName\"));\r\n assert.isFalse(imodel1.containsClass(\"InvalidSchemaName:Element\"));\r\n });\r\n});\r\n"]}