Skip to content

Commit 2ace4dd

Browse files
committed
create a procedure
1 parent 7a1e54d commit 2ace4dd

File tree

2 files changed

+27
-16
lines changed

2 files changed

+27
-16
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
-- Licensed to the Apache Software Foundation (ASF) under one
2+
-- or more contributor license agreements. See the NOTICE file
3+
-- distributed with this work for additional information
4+
-- regarding copyright ownership. The ASF licenses this file
5+
-- to you under the Apache License, Version 2.0 (the
6+
-- "License"); you may not use this file except in compliance
7+
-- with the License. You may obtain a copy of the License at
8+
--
9+
-- http://www.apache.org/licenses/LICENSE-2.0
10+
--
11+
-- Unless required by applicable law or agreed to in writing,
12+
-- software distributed under the License is distributed on an
13+
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
-- KIND, either express or implied. See the License for the
15+
-- specific language governing permissions and limitations
16+
-- under the License.
17+
18+
-- in cloud
19+
DROP PROCEDURE IF EXISTS `cloud`.`IDEMPOTENT_DROP_UNIQUE_KEY`;
20+
21+
CREATE PROCEDURE `cloud`.`IDEMPOTENT_DROP_UNIQUE_KEY` (
22+
IN in_table_name VARCHAR(200),
23+
IN in_index_name VARCHAR(200)
24+
)
25+
BEGIN
26+
DECLARE CONTINUE HANDLER FOR 1091, 1025 BEGIN END; SET @ddl = CONCAT('ALTER TABLE ', in_table_name, ' DROP KEY ', in_index_name); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; END;

engine/schema/src/main/resources/META-INF/db/schema-41910to41920.sql

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,5 @@
2222
-- Add last_id to the volumes table
2323
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.volumes', 'last_id', 'bigint(20) unsigned DEFAULT NULL');
2424

25-
SELECT
26-
COUNT(*)
27-
INTO @exists
28-
FROM information_schema.STATISTICS
29-
WHERE TABLE_SCHEMA = 'cloud'
30-
AND TABLE_NAME = 'counter'
31-
AND INDEX_NAME = 'uc_counter__provider__source__value';
32-
33-
-- Drop the key if it exists
34-
SET @sql = IF(@exists > 0, 'ALTER TABLE counter DROP KEY uc_counter__provider__source__value', NULL);
35-
36-
-- Execute the drop statement if the index exists
37-
PREPARE stmt FROM @sql;
38-
EXECUTE stmt;
39-
DEALLOCATE PREPARE stmt;
40-
25+
CALL `cloud`.`IDEMPOTENT_DROP_UNIQUE_KEY`('counter', 'uc_counter__provider__source__value');
4126
CALL `cloud`.`IDEMPOTENT_ADD_UNIQUE_KEY`('cloud.counter', 'uc_counter__provider__source__value__removed', '(provider, source, value, removed)');

0 commit comments

Comments
 (0)