mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-07 22:02:56 +00:00
fix: mysql prepare limit&offset param (#5734)
* fix: prepare limit&offset param * test: sqlness * chore: per review * chore: per review
This commit is contained in:
@@ -70,3 +70,62 @@ DEALLOCATE stmt;
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
-- test if placeholder at limit and offset are parsed correctly
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
PREPARE stmt FROM 'SELECT 1 LIMIT ? OFFSET ?;';
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
EXECUTE stmt USING 1, 2;
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DEALLOCATE stmt;
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
-- test with data
|
||||
CREATE TABLE IF NOT EXISTS "cake" (
|
||||
`domain` STRING,
|
||||
is_expire BOOLEAN NULL,
|
||||
ts TIMESTAMP(3),
|
||||
TIME INDEX ("ts"),
|
||||
PRIMARY KEY ("domain")
|
||||
) ENGINE=mito
|
||||
WITH(
|
||||
append_mode = 'true',
|
||||
ttl='7days'
|
||||
);
|
||||
|
||||
Affected Rows: 0
|
||||
|
||||
INSERT INTO cake(domain, is_expire, ts) VALUES('happy', false, '2025-03-18 12:55:51.758000');
|
||||
|
||||
Affected Rows: 1
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
PREPARE stmt FROM 'SELECT `cake`.`domain`, `cake`.`is_expire`, `cake`.`ts` FROM `cake` WHERE `cake`.`domain` = ? LIMIT ? OFFSET ?';
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
EXECUTE stmt USING 'happy', 42, 0;
|
||||
|
||||
+--------+-----------+----------------------------+
|
||||
| domain | is_expire | ts |
|
||||
+--------+-----------+----------------------------+
|
||||
| happy | 0 | 2025-03-18 12:55:51.758000 |
|
||||
+--------+-----------+----------------------------+
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DEALLOCATE stmt;
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DROP TABLE cake;
|
||||
|
||||
affected_rows: 0
|
||||
|
||||
|
||||
@@ -37,3 +37,40 @@ EXECUTE stmt USING 1, 'hello';
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DEALLOCATE stmt;
|
||||
|
||||
-- test if placeholder at limit and offset are parsed correctly
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
PREPARE stmt FROM 'SELECT 1 LIMIT ? OFFSET ?;';
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
EXECUTE stmt USING 1, 2;
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DEALLOCATE stmt;
|
||||
|
||||
-- test with data
|
||||
CREATE TABLE IF NOT EXISTS "cake" (
|
||||
`domain` STRING,
|
||||
is_expire BOOLEAN NULL,
|
||||
ts TIMESTAMP(3),
|
||||
TIME INDEX ("ts"),
|
||||
PRIMARY KEY ("domain")
|
||||
) ENGINE=mito
|
||||
WITH(
|
||||
append_mode = 'true',
|
||||
ttl='7days'
|
||||
);
|
||||
|
||||
INSERT INTO cake(domain, is_expire, ts) VALUES('happy', false, '2025-03-18 12:55:51.758000');
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
PREPARE stmt FROM 'SELECT `cake`.`domain`, `cake`.`is_expire`, `cake`.`ts` FROM `cake` WHERE `cake`.`domain` = ? LIMIT ? OFFSET ?';
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
EXECUTE stmt USING 'happy', 42, 0;
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DEALLOCATE stmt;
|
||||
|
||||
-- SQLNESS PROTOCOL MYSQL
|
||||
DROP TABLE cake;
|
||||
|
||||
Reference in New Issue
Block a user