upgrade_from_8.1x.sql 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463
  1. execute procedure ifx_allow_newline('t');
  2. -- 8.1x -> 8.20 upgrade: replace old metadata_tables create_sql with new
  3. -- version to avoid a drop 8.1x/add 8.20 sequence, as this would cause
  4. -- spatial_references table to be dropped & recreated.
  5. update sysbldobjects set create_sql =
  6. "------------------------------------------------------------------------
  7. -- SE_setup_tables
  8. --
  9. -- This procedure creates the spatial_references and geometry_columns
  10. -- tables if they do not already exist.
  11. --
  12. -- This procedure replaces the 8.1x version of SE_setup_tables, which
  13. -- copied entries from the sde database's spatial_references and
  14. -- geometry_columns tables (if they exist) into the current database's
  15. -- tables. This was to allow migration from SDE3.0.2.2 to ArcSde8.1.
  16. -- Direct migration is no longer supported, you must first register
  17. -- spatial datablade version 8.1x.
  18. ------------------------------------------------------------------------
  19. CREATE PROCEDURE SE_setup_tables()
  20. DEFINE tab_exists INT;
  21. LET tab_exists = 0;
  22. SELECT count(*) INTO tab_exists FROM informix.systables
  23. WHERE tabname='spatial_references';
  24. IF (tab_exists = 0) THEN
  25. -- Metadata tables do not exist; fresh install
  26. CREATE TABLE sde.spatial_references
  27. (
  28. srid integer NOT NULL,
  29. description varchar(64),
  30. auth_name varchar(255),
  31. auth_srid int,
  32. falsex float NOT NULL,
  33. falsey float NOT NULL,
  34. xyunits float NOT NULL,
  35. falsez float NOT NULL,
  36. zunits float NOT NULL,
  37. falsem float NOT NULL,
  38. munits float NOT NULL,
  39. srtext char(2048) NOT NULL,
  40. PRIMARY KEY (srid)
  41. CONSTRAINT sde.sp_ref_pk
  42. );
  43. CREATE TABLE sde.geometry_columns
  44. (
  45. f_table_catalog varchar(32) NOT NULL,
  46. f_table_schema varchar(32) NOT NULL,
  47. f_table_name varchar(128) NOT NULL,
  48. f_geometry_column varchar(128) NOT NULL,
  49. storage_type integer,
  50. geometry_type integer NOT NULL,
  51. coord_dimension integer,
  52. srid integer NOT NULL,
  53. PRIMARY KEY (f_table_catalog, f_table_schema,
  54. f_table_name, f_geometry_column)
  55. CONSTRAINT sde.geocol_pk,
  56. FOREIGN KEY(srid) REFERENCES sde.spatial_references(srid)
  57. CONSTRAINT sde.geocol_fk
  58. );
  59. CREATE VIEW sde.spatial_ref_sys AS
  60. SELECT srid, auth_name, auth_srid, srtext FROM sde.spatial_references;
  61. create opaque type SE_Metadata
  62. (internallength = variable, alignment = 8);
  63. create table SE_MetadataTable
  64. (
  65. smd SE_Metadata
  66. );
  67. revoke all on SE_MetadataTable from public;
  68. END IF
  69. END PROCEDURE; -- SE_setup_tables
  70. EXECUTE PROCEDURE SE_setup_tables();
  71. DROP PROCEDURE SE_setup_tables();
  72. "
  73. where obj_signature = 'metadata_tables.sql'
  74. and ( bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.2%');
  75. -- 8.1x -> 8.20 upgrade: replace old metadata_tables drop_sql with new
  76. -- version to avoid a drop 8.1x/add 8.20 sequence, as this would cause
  77. -- spatial_references table to be dropped & recreated.
  78. update sysbldobjects set drop_sql =
  79. "drop table sde.geometry_columns;
  80. drop table sde.spatial_references;
  81. drop table SE_MetadataTable;
  82. drop type SE_Metadata restrict;
  83. "
  84. where obj_signature = 'metadata_tables.sql'
  85. and ( bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.20%');
  86. -- 8.1x or 8.20 -> 8.20 latest upgrade: SE_metadata type is moved to
  87. -- metadata_tables.sql to leave SE_MetadataTable not to be dropped and
  88. -- & recreated.
  89. update sysbldobjects set drop_sql =
  90. "
  91. drop cast (SE_Metadata as lvarchar);
  92. drop cast (SE_Metadata as sendrecv);
  93. drop cast (SE_Metadata as impexp);
  94. drop cast (SE_Metadata as impexpbin);
  95. drop cast (lvarchar as SE_Metadata);
  96. drop cast (sendrecv as SE_Metadata);
  97. drop cast (impexp as SE_Metadata);
  98. drop cast (impexpbin as SE_Metadata);
  99. drop function SE_MetadataIn (lvarchar);
  100. drop function SE_MetadataOut (SE_Metadata);
  101. drop function SE_MetadataRecv (sendrecv);
  102. drop function SE_MetadataSend (SE_Metadata);
  103. drop function SE_MetadataImpT (impexp);
  104. drop function SE_MetadataExpT (SE_Metadata);
  105. drop function SE_MetadataImpB (impexpbin);
  106. drop function SE_MetadataExpB (SE_Metadata);
  107. drop procedure Destroy (SE_Metadata);
  108. drop function LOhandles (SE_Metadata);
  109. drop function SE_MetadataDump(int);
  110. "
  111. where obj_signature = 'pdqfuncs.sql'
  112. and ( bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.20%');
  113. -- 8.1x or 8.20.x -> 8.20 latest upgrade: not allow SE_MetadataTable
  114. -- to be dropped and re-created.
  115. delete from sysbldobjects
  116. where obj_signature = 'pdqtable.sql'
  117. and (bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.20%');
  118. delete from sysbldobjdepends
  119. where obj_signature = 'pdqtable.sql'
  120. and need_obj_signature = 'pdqfuncs.sql'
  121. and (bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.20%');
  122. update sysbldobjdepends set need_obj_signature = 'pdqfuncs.sql'
  123. where obj_signature like 'pdqinit%' and need_obj_signature = 'pdqtable.sql'
  124. and (bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.20%');
  125. update sysbldobjects set drop_sql =
  126. "
  127. drop procedure SE_MetadataInit();
  128. drop function SE_MetadataPrep();
  129. drop function Assign (SE_Metadata);
  130. "
  131. where obj_signature like 'pdqinit%'
  132. and (bld_id like 'spatial.8.1%' or bld_id like 'spatial.8.20%');
  133. -- 8.1x -> 8.20 upgrade: remove 'types needs metadata_tables' dependency
  134. -- so that, when changing metadata_tables, the types don't get dropped.
  135. delete from sysbldobjdepends
  136. where obj_signature = 'types.sql'
  137. and need_obj_signature = 'metadata_tables.sql'
  138. and bld_id like 'spatial.8.1%';
  139. -- 8.1x -> 8.20 upgrade: droptables.sql script goes away, so prevent
  140. -- spatial_references & geometry_columns tables from getting dropped.
  141. delete from sysbldobjects
  142. where obj_signature = 'droptables.sql'
  143. and bld_id like 'spatial.8.1%';
  144. delete from sysbldobjdepends
  145. where obj_signature = 'droptables.sql'
  146. and need_obj_signature = 'metadata_tables.sql'
  147. and bld_id like 'spatial.8.1%';
  148. -- 8.1x -> 8.20 upgrade: replace old viewtable create_sql with new version
  149. -- to avoid a drop 8.1x/add 8.20 sequence, as this would cause se_views
  150. -- table to be dropped & recreated.
  151. update sysbldobjects set create_sql =
  152. "CREATE PROCEDURE create_se_views()
  153. DEFINE tab_exists INT;
  154. SELECT count(*) INTO tab_exists FROM informix.systables
  155. WHERE tabname='se_views';
  156. IF (tab_exists = 0) THEN
  157. CREATE TABLE se_views
  158. (
  159. view_name varchar(128) NOT NULL,
  160. view_col varchar(128) NOT NULL,
  161. real_tabname varchar(128) NOT NULL,
  162. real_colname varchar(128) NOT NULL
  163. );
  164. END IF
  165. END PROCEDURE;
  166. EXECUTE PROCEDURE create_se_views();
  167. DROP PROCEDURE create_se_views();
  168. "
  169. where obj_signature = 'viewtable.sql'
  170. and bld_id like 'spatial.8.1%';
  171. -- 8.1x -> 8.20 upgrade: replace old spreftriggers drop_sql with new
  172. -- version to allow upgrades to succeed even if spatial_references
  173. -- table triggers are missing.
  174. update sysbldobjects set drop_sql =
  175. "create procedure SE_DropSpRefTriggers()
  176. begin
  177. on exception in (-634) end exception with resume
  178. drop trigger SE_SpRefInsTrig;
  179. drop trigger SE_SpRefUpdTrig;
  180. drop trigger SE_SpRefDelTrig;
  181. end
  182. end procedure;
  183. execute procedure SE_DropSpRefTriggers();
  184. drop procedure SE_DropSpRefTriggers();
  185. drop procedure SE_SpRefBeforeTrig();
  186. drop procedure SE_SpRefAfterTrig();
  187. "
  188. where obj_signature = 'spreftriggers.sql'
  189. and bld_id like 'spatial.8.1%';
  190. -- upgrade to 8.21.xC3 has to replace the op function but not op class
  191. update sysbldobjects set create_sql =
  192. "create function ST_Overlaps(ST_Geometry,ST_Geometry) returns boolean
  193. with (not variant, parallelizable)
  194. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Overlaps)'
  195. language c;
  196. create function ST_Equals(ST_Geometry,ST_Geometry) returns boolean
  197. with (not variant, parallelizable)
  198. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Equals)'
  199. language c;
  200. create function ST_Contains(ST_Geometry,ST_Geometry) returns boolean
  201. with (not variant, parallelizable, commutator = ST_Within)
  202. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Contains)'
  203. language c;
  204. create function ST_Within(ST_Geometry,ST_Geometry) returns boolean
  205. with (not variant, parallelizable, commutator = ST_Contains)
  206. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Within)'
  207. language c;
  208. create function SE_EnvelopesIntersect(ST_Geometry,ST_Geometry) returns boolean
  209. with (not variant, parallelizable)
  210. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(SE_EnvelopesIntersect)'
  211. language c;
  212. create function ST_Touches(ST_Geometry,ST_Geometry) returns boolean
  213. with (not variant, parallelizable, percall_cost=5000)
  214. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Touches)'
  215. language c;
  216. create function ST_Crosses(ST_Geometry,ST_Geometry) returns boolean
  217. with (not variant, parallelizable, percall_cost=1000)
  218. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Crosses)'
  219. language c;
  220. create function ST_Intersects(ST_Geometry,ST_Geometry) returns boolean
  221. with (not variant, parallelizable)
  222. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_Intersects)'
  223. language c;
  224. create function ST_OrderingEquals(ST_Geometry,ST_Geometry) returns boolean
  225. with (not variant, parallelizable)
  226. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(ST_OrderingEquals)'
  227. language c;
  228. create function SE_Nearest(ST_Geometry,ST_Geometry) returns boolean
  229. with (not variant, parallelizable)
  230. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(SE_NearestStratFunc)'
  231. language c;
  232. create function SE_Nearest(ST_Geometry,ST_Geometry,int) returns float
  233. with (not variant, parallelizable)
  234. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(SE_Nearest)'
  235. language c;
  236. create function SE_NearestBBox(ST_Geometry,ST_Geometry) returns boolean
  237. with (not variant, parallelizable)
  238. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(SE_NearestStratFunc)'
  239. language c;
  240. create function SE_NearestBbox(ST_Geometry,ST_Geometry,int) returns float
  241. with (not variant, parallelizable)
  242. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(SE_NearestBBox)'
  243. language c;
  244. create function Equal(ST_Geometry,ST_Geometry) returns boolean
  245. with (not variant, parallelizable)
  246. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(GeometryEqual)'
  247. language c;
  248. create function rtUnion(ST_Geometry,ST_Geometry,ST_Geometry) returns integer
  249. with (not variant, parallelizable)
  250. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  251. language c;
  252. create function rtUnion(ST_Curve,ST_Curve,ST_Curve) returns integer
  253. with (not variant, parallelizable)
  254. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  255. language c;
  256. create function rtUnion(ST_GeomCollection,ST_GeomCollection,ST_GeomCollection) returns integer
  257. with (not variant, parallelizable)
  258. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  259. language c;
  260. create function rtUnion(ST_LineString,ST_LineString,ST_LineString) returns integer
  261. with (not variant, parallelizable)
  262. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  263. language c;
  264. create function rtUnion(ST_MultiCurve,ST_MultiCurve,ST_MultiCurve) returns integer
  265. with (not variant, parallelizable)
  266. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  267. language c;
  268. create function rtUnion(ST_MultiLineString,ST_MultiLineString,ST_MultiLineString) returns integer
  269. with (not variant, parallelizable)
  270. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  271. language c;
  272. create function rtUnion(ST_MultiPoint,ST_MultiPoint,ST_MultiPoint) returns integer
  273. with (not variant, parallelizable)
  274. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  275. language c;
  276. create function rtUnion(ST_MultiPolygon,ST_MultiPolygon,ST_MultiPolygon) returns integer
  277. with (not variant, parallelizable)
  278. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  279. language c;
  280. create function rtUnion(ST_MultiSurface,ST_MultiSurface,ST_MultiSurface) returns integer
  281. with (not variant, parallelizable)
  282. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  283. language c;
  284. create function rtUnion(ST_Point,ST_Point,ST_Point) returns integer
  285. with (not variant, parallelizable)
  286. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  287. language c;
  288. create function rtUnion(ST_Polygon,ST_Polygon,ST_Polygon) returns integer
  289. with (not variant, parallelizable)
  290. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  291. language c;
  292. create function rtUnion(ST_Surface,ST_Surface,ST_Surface) returns integer
  293. with (not variant, parallelizable)
  294. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeUnion)'
  295. language c;
  296. create function rtSize(ST_Geometry,float) returns integer
  297. with (not variant, parallelizable)
  298. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeSize)'
  299. language c;
  300. create function rtInter(ST_Geometry,ST_Geometry,ST_Geometry) returns integer
  301. with (not variant, parallelizable)
  302. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeInter)'
  303. language c;
  304. create function rtSFCbits(ST_Geometry,pointer) returns integer
  305. with (not variant, parallelizable)
  306. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeSFCbits)'
  307. language c;
  308. create function rtObjLength(ST_Geometry,pointer) returns integer
  309. with (not variant, parallelizable)
  310. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeObjLength)'
  311. language c;
  312. create function rtSFCvalue(ST_Geometry,integer,pointer) returns integer
  313. with (not variant, parallelizable)
  314. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeSFCvalue)'
  315. language c;
  316. create function rtSetUnion(ST_Geometry,integer,pointer) returns integer
  317. with (not variant, parallelizable)
  318. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeSetUnion)'
  319. language c;
  320. create function rtreeInfo(ST_Geometry,pointer,pointer,pointer) returns integer
  321. with (not variant, parallelizable)
  322. external name '$INFORMIXDIR/extend/%SYSBLDDIR%/spatial.bld(RtreeInfo)'
  323. language c;
  324. grant execute on function ST_Overlaps(ST_Geometry,ST_Geometry) to public;
  325. grant execute on function ST_Equals(ST_Geometry,ST_Geometry) to public;
  326. grant execute on function ST_Contains(ST_Geometry,ST_Geometry) to public;
  327. grant execute on function ST_Within(ST_Geometry,ST_Geometry) to public;
  328. grant execute on function SE_EnvelopesIntersect(ST_Geometry,ST_Geometry) to public;
  329. grant execute on function ST_Intersects(ST_Geometry,ST_Geometry) to public;
  330. grant execute on function ST_Touches(ST_Geometry,ST_Geometry) to public;
  331. grant execute on function ST_Crosses(ST_Geometry,ST_Geometry) to public;
  332. grant execute on function ST_OrderingEquals (ST_Geometry,ST_Geometry) to public;
  333. grant execute on function SE_Nearest(ST_Geometry,ST_Geometry) to public;
  334. grant execute on function SE_Nearest(ST_Geometry,ST_Geometry,int) to public;
  335. grant execute on function SE_NearestBBox(ST_Geometry,ST_Geometry) to public;
  336. grant execute on function SE_NearestBBox(ST_Geometry,ST_Geometry,int) to public;
  337. grant execute on function Equal(ST_Geometry,ST_Geometry) to public;
  338. grant execute on function rtUnion(ST_Geometry,ST_Geometry,ST_Geometry) to public;
  339. grant execute on function rtUnion(ST_Curve,ST_Curve,ST_Curve) to public;
  340. grant execute on function rtUnion(ST_GeomCollection,ST_GeomCollection,ST_GeomCollection) to public;
  341. grant execute on function rtUnion(ST_LineString,ST_LineString,ST_LineString) to public;
  342. grant execute on function rtUnion(ST_MultiCurve,ST_MultiCurve,ST_MultiCurve) to public;
  343. grant execute on function rtUnion(ST_MultiLineString,ST_MultiLineString,ST_MultiLineString) to public;
  344. grant execute on function rtUnion(ST_MultiPoint,ST_MultiPoint,ST_MultiPoint) to public;
  345. grant execute on function rtUnion(ST_MultiPolygon,ST_MultiPolygon,ST_MultiPolygon) to public;
  346. grant execute on function rtUnion(ST_MultiSurface,ST_MultiSurface,ST_MultiSurface) to public;
  347. grant execute on function rtUnion(ST_Point,ST_Point,ST_Point) to public;
  348. grant execute on function rtUnion(ST_Polygon,ST_Polygon,ST_Polygon) to public;
  349. grant execute on function rtUnion(ST_Surface,ST_Surface,ST_Surface) to public;
  350. grant execute on function rtSize(ST_Geometry,float) to public;
  351. grant execute on function rtInter(ST_Geometry,ST_Geometry,ST_Geometry) to public;
  352. grant execute on function rtSFCbits(ST_Geometry,pointer) to public;
  353. grant execute on function rtObjLength(ST_Geometry,pointer) to public;
  354. grant execute on function rtSFCvalue(ST_Geometry,integer,pointer) to public;
  355. grant execute on function rtSetUnion(ST_Geometry,integer,pointer) to public;
  356. grant execute on function rtreeInfo(ST_Geometry,pointer,pointer,pointer) to public;
  357. create opclass ST_Geometry_ops for rtree
  358. strategies(ST_Overlaps,Equal,ST_Contains,ST_Within,SE_EnvelopesIntersect,ST_Intersects,ST_Touches,ST_Crosses,ST_OrderingEquals,SE_Nearest,SE_NearestBBox,ST_Equals)
  359. support(rtUnion,rtSize,rtInter,rtSFCbits,rtObjLength,rtSFCvalue,rtSetUnion);
  360. "
  361. where obj_signature = 'opclass.sql'
  362. and bld_id like 'spatial.8.21%';
  363. update sysbldobjects set drop_sql =
  364. "
  365. drop opclass ST_Geometry_ops restrict;
  366. drop function ST_Overlaps(ST_Geometry,ST_Geometry);
  367. drop function ST_Contains(ST_Geometry,ST_Geometry);
  368. drop function ST_Equals(ST_Geometry,ST_Geometry);
  369. drop function ST_Within(ST_Geometry,ST_Geometry);
  370. drop function SE_EnvelopesIntersect(ST_Geometry,ST_Geometry);
  371. drop function ST_Intersects(ST_Geometry,ST_Geometry);
  372. drop function ST_Touches(ST_Geometry,ST_Geometry);
  373. drop function ST_Crosses(ST_Geometry,ST_Geometry);
  374. drop function ST_OrderingEquals(ST_Geometry,ST_Geometry);
  375. drop function SE_Nearest(ST_Geometry,ST_Geometry);
  376. drop function SE_Nearest(ST_Geometry,ST_Geometry,int);
  377. drop function SE_NearestBBox(ST_Geometry,ST_Geometry);
  378. drop function SE_NearestBBox(ST_Geometry,ST_Geometry,int);
  379. drop function Equal(ST_Geometry,ST_Geometry);
  380. drop function rtUnion(ST_Geometry,ST_Geometry,ST_Geometry);
  381. drop function rtUnion(ST_Curve,ST_Curve,ST_Curve);
  382. drop function rtUnion(ST_GeomCollection,ST_GeomCollection,ST_GeomCollection);
  383. drop function rtUnion(ST_LineString,ST_LineString,ST_LineString);
  384. drop function rtUnion(ST_MultiCurve,ST_MultiCurve,ST_MultiCurve);
  385. drop function rtUnion(ST_MultiLineString,ST_MultiLineString,ST_MultiLineString);
  386. drop function rtUnion(ST_MultiPoint,ST_MultiPoint,ST_MultiPoint);
  387. drop function rtUnion(ST_MultiPolygon,ST_MultiPolygon,ST_MultiPolygon);
  388. drop function rtUnion(ST_MultiSurface,ST_MultiSurface,ST_MultiSurface);
  389. drop function rtUnion(ST_Point,ST_Point,ST_Point);
  390. drop function rtUnion(ST_Polygon,ST_Polygon,ST_Polygon);
  391. drop function rtUnion(ST_Surface,ST_Surface,ST_Surface);
  392. drop function rtSize(ST_Geometry,float);
  393. drop function rtInter(ST_Geometry,ST_Geometry,ST_Geometry);
  394. drop function rtObjLength(ST_Geometry,pointer);
  395. drop function rtSFCbits(ST_Geometry,pointer);
  396. drop function rtSFCvalue(ST_Geometry,integer,pointer);
  397. drop function rtSetUnion(ST_Geometry,integer,pointer);
  398. drop function rtreeInfo(ST_Geometry,pointer,pointer,pointer);
  399. "
  400. where obj_signature = 'opclass.sql'
  401. and bld_id like 'spatial.8.21%';