You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
let sql = "CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT PARALLEL RESTRICTED RETURN a + b";
let sql = "CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL STABLE CALLED ON NULL INPUT PARALLEL UNSAFE RETURN a + b";
let sql = r#"CREATE OR REPLACE FUNCTION increment(i INTEGER) RETURNS INTEGER LANGUAGE plpgsql AS $$ BEGIN RETURN i + 1; END; $$"#;
3373
-
assert_eq!(
3374
-
pg().verified_stmt(sql),
3375
-
Statement::CreateFunction{
3376
-
or_replace:true,
3377
-
temporary:false,
3378
-
name:ObjectName(vec![Ident::new("increment")]),
3379
-
args:Some(vec![OperateFunctionArg::with_name(
3380
-
"i",
3381
-
DataType::Integer(None)
3382
-
)]),
3383
-
return_type:Some(DataType::Integer(None)),
3384
-
params:CreateFunctionBody{
3385
-
language:Some("plpgsql".into()),
3386
-
behavior:None,
3387
-
called_on_null:None,
3388
-
parallel:None,
3389
-
return_:None,
3390
-
as_:Some(FunctionDefinition::DoubleDollarDef(
3391
-
" BEGIN RETURN i + 1; END; ".into()
3392
-
)),
3393
-
using:None
3394
-
},
3395
-
}
3396
-
);
3397
3305
}
3398
3306
3307
+
#[test]
3308
+
fnparse_create_function_detailed(){
3309
+
pg_and_generic().verified_stmt("CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL IMMUTABLE PARALLEL RESTRICTED RETURN a + b");
3310
+
pg_and_generic().verified_stmt("CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL IMMUTABLE RETURNS NULL ON NULL INPUT PARALLEL RESTRICTED RETURN a + b");
3311
+
pg_and_generic().verified_stmt("CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL STABLE PARALLEL UNSAFE RETURN a + b");
3312
+
pg_and_generic().verified_stmt("CREATE OR REPLACE FUNCTION add(a INTEGER, IN b INTEGER = 1) RETURNS INTEGER LANGUAGE SQL STABLE CALLED ON NULL INPUT PARALLEL UNSAFE RETURN a + b");
3313
+
pg_and_generic().verified_stmt(r#"CREATE OR REPLACE FUNCTION increment(i INTEGER) RETURNS INTEGER LANGUAGE plpgsql AS $$ BEGIN RETURN i + 1; END; $$"#);
3314
+
}
3399
3315
#[test]
3400
3316
fnparse_incorrect_create_function_parallel(){
3401
3317
let sql = "CREATE FUNCTION add(INTEGER, INTEGER) RETURNS INTEGER LANGUAGE SQL PARALLEL BLAH AS 'select $1 + $2;'";
0 commit comments