Warning
SingleStore 9.0 gives you the opportunity to preview, evaluate, and provide feedback on new and upcoming features prior to their general availability. In the interim, SingleStore 8.9 is recommended for production workloads, which can later be upgraded to SingleStore 9.0.
Assigning Expressions to Variables
On this page
You can reference system variables, user-defined variables, literals, or any combination of these using built-ins like CONCAT
, and the SELECT
statement as a variant of complex expressions.
Example:
SET sql_mode = CONCAT(@@sql_mode, _utf8', ONLY_FULL_GROUP_BY');
You can connect to a CA, set session variables, and then use SET GLOBAL
or SET AGGREGATOR
referencing these variables.
You can set system variables using complex expressions inside stored procedures.
Example:
CREATE OR REPLACE PROCEDURE db.fff() ASBEGINSET wait_timeout = 30001 + (SELECT b FROM db.t WHERE a = 3);ECHO SELECT @@session.wait_timeout;END;
There is a limitation that applies to all DDL statements inside stored procedures.EXECUTE IMMEDIATE
.
Example:
CREATE OR REPLACE PROCEDURE db.fff(arg int) ASDECLARE q text;BEGINq = CONCAT('SET wait_timeout = 30001 + ', arg, ' + (SELECT b FROM db.t WHERE a = 3)');EXECUTE IMMEDIATE q;ECHO SELECT @@session.wait_timeout;END;
Examples Using SET GLOBAL and SET SESSION
Example 1:
SET @new_mode = 'ANSI_QUOTES,';SET @@GLOBAL.sql_mode = CONCAT(@new_mode, 'ONLY_FULL_GROUP_BY');SELECT @@GLOBAL.sql_mode;
Example 2:
SET GLOBAL exporter_ssl_capath=`what's "going" on`;SELECT @@GLOBAL.exporter_ssl_capath;
Example 3:
SET SESSION net_read_timeout = (SELECT COUNT(*) FROM db.t) * 400;SELECT @@SESSION.net_read_timeout;
Example 4:
SET SESSION sql_mode=(select concat(@@sql_mode,',ANSI_QUOTES'));SELECT @@sql_mode;
Example 5:
SET SESSION inlist_precision_limit = 2000;SET @cvar = 200;SET GLOBAL inlist_precision_limit = @@inlist_precision_limit + @cvar;SELECT @@inlist_precision_limit;SELECT @@GLOBAL.inlist_precision_limit;
Last modified: April 25, 2025