mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-23 00:10:38 +00:00
* fix: mysql prepare bool value (#5732) * fix: mysql prepare limit&offset param (#5734) * fix: prepare limit&offset param * test: sqlness * chore: per review * chore: per review * fix: wrap table name with `` (#5748) * fix: wrap table name with quotes * fix: minor fix * fix: handle nullable default value (#5747) * fix: handle nullable default value * chore: update sqlness * fix: properly give placeholder types (#5760) * fix: properly give placeholder types * chore: update sqlness * fix: support __name__ matcher in label values (#5773) * fix: typo variadic (#5800) Signed-off-by: Ruihang Xia <waynestxia@gmail.com> * fix: close issue #3902 since upstream fixed (#5801) Signed-off-by: yihong0618 <zouzou0208@gmail.com> * fix: correct error status code (#5802) * fix: interval cast expression can't work in range query, #5805 (#5813) * fix: interval cast expression can't work in range query, #5805 * fix: nested cast * test: make vector test stable * feat: introduce poison mechanism for procedure (#5822) * feat: introduce poison for procedure * tests: add unit tests * refactor: minor refactor * fix: unit tests * chore: fix unit tests * chore: apply suggestions from CR * chore: apply suggestions from CR * chore: update comments * chore: introduce `ProcedureStatus::Poisoned` * chore: upgrade greptime-proto to `2be0f` * chore: apply suggestions from CR * fix: throw errors instead of ignoring (#5792) * fix: throw errors instead of ignoring * fix: fix unit tests * refactor: remove schema version check * fix: fix clippy * chore: remove unused error * refactor: remove schema version check * feat: handle mutliple results * feat: introduce consistency guard * fix: release consistency guard on datanode operation completion * test: add tests * chore: remove schema version * refactor: rename * test: add more tests * chore: print all error * tests: query table after alteration * log ignored request * refine fuzz test * chore: fix clippy and log mailbox message * chore: close prepared statement after execution * chore: add comment * chore: remove log * chore: rename to `ConsistencyPoison` * chore: remove unused error * fix: fix unit tests * chore: apply suggestions from CR --------- Signed-off-by: Ruihang Xia <waynestxia@gmail.com> Signed-off-by: yihong0618 <zouzou0208@gmail.com> Co-authored-by: discord9 <55937128+discord9@users.noreply.github.com> Co-authored-by: Yohan Wal <profsyb@gmail.com> Co-authored-by: Yingwen <realevenyag@gmail.com> Co-authored-by: Ruihang Xia <waynestxia@gmail.com> Co-authored-by: yihong <zouzou0208@gmail.com> Co-authored-by: dennis zhuang <killme2008@gmail.com>
77 lines
1.8 KiB
SQL
77 lines
1.8 KiB
SQL
-- invalid prepare, from
|
|
-- https://github.com/duckdb/duckdb/blob/00a605270719941ca0412ad5d0a14b1bdfbf9eb5/test/sql/prepared/invalid_prepare.test
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
SELECT ?;
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
PREPARE stmt FROM 'SELECT ?::int;';
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
EXECUTE stmt USING 1;
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
EXECUTE stmt USING 'a';
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
DEALLOCATE stmt;
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
PREPARE stmt FROM 'SELECT ?::int WHERE 1=0;';
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
EXECUTE stmt USING 1;
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
EXECUTE stmt USING 'a';
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
DEALLOCATE stmt;
|
|
|
|
-- parameter variants, from:
|
|
-- https://github.com/duckdb/duckdb/blob/2360dd00f193b5d0850f9379d0c3794eb2084f36/test/sql/prepared/parameter_variants.test
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
PREPARE stmt FROM 'SELECT CAST(? AS INTEGER), CAST(? AS STRING);';
|
|
|
|
-- SQLNESS PROTOCOL MYSQL
|
|
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;
|