@@ -3927,6 +3927,41 @@ SELECT * FROM age_reverse('gnirts a si siht'::cstring);
39273927 "this is a string"
39283928(1 row)
39293929
3930+ -- should return empty string
3931+ SELECT * FROM age_reverse('');
3932+ age_reverse
3933+ -------------
3934+ ""
3935+ (1 row)
3936+
3937+ SELECT * FROM age_reverse(''::text);
3938+ age_reverse
3939+ -------------
3940+ ""
3941+ (1 row)
3942+
3943+ SELECT * FROM age_reverse(''::cstring);
3944+ age_reverse
3945+ -------------
3946+ ""
3947+ (1 row)
3948+
3949+ SELECT * FROM cypher('expr', $$
3950+ RETURN reverse('')
3951+ $$) AS (result agtype);
3952+ result
3953+ --------
3954+ ""
3955+ (1 row)
3956+
3957+ SELECT * FROM cypher('expr', $$
3958+ RETURN reverse("")
3959+ $$) AS (result agtype);
3960+ result
3961+ --------
3962+ ""
3963+ (1 row)
3964+
39303965-- should return null
39313966SELECT * FROM cypher('expr', $$
39323967 RETURN reverse(null)
@@ -4104,6 +4139,75 @@ SELECT * FROM age_tolower('CSTRING'::cstring);
41044139 "cstring"
41054140(1 row)
41064141
4142+ -- should return empty string
4143+ SELECT * FROM age_toupper('');
4144+ age_toupper
4145+ -------------
4146+ ""
4147+ (1 row)
4148+
4149+ SELECT * FROM age_toupper(''::text);
4150+ age_toupper
4151+ -------------
4152+ ""
4153+ (1 row)
4154+
4155+ SELECT * FROM age_toupper(''::cstring);
4156+ age_toupper
4157+ -------------
4158+ ""
4159+ (1 row)
4160+
4161+ SELECT * FROM cypher('expr', $$
4162+ RETURN toupper('')
4163+ $$) AS (result agtype);
4164+ result
4165+ --------
4166+ ""
4167+ (1 row)
4168+
4169+ SELECT * FROM cypher('expr', $$
4170+ RETURN toupper("")
4171+ $$) AS (result agtype);
4172+ result
4173+ --------
4174+ ""
4175+ (1 row)
4176+
4177+ SELECT * FROM age_tolower('');
4178+ age_tolower
4179+ -------------
4180+ ""
4181+ (1 row)
4182+
4183+ SELECT * FROM age_tolower(''::text);
4184+ age_tolower
4185+ -------------
4186+ ""
4187+ (1 row)
4188+
4189+ SELECT * FROM age_tolower(''::cstring);
4190+ age_tolower
4191+ -------------
4192+ ""
4193+ (1 row)
4194+
4195+ SELECT * FROM cypher('expr', $$
4196+ RETURN tolower('')
4197+ $$) AS (result agtype);
4198+ result
4199+ --------
4200+ ""
4201+ (1 row)
4202+
4203+ SELECT * FROM cypher('expr', $$
4204+ RETURN tolower("")
4205+ $$) AS (result agtype);
4206+ result
4207+ --------
4208+ ""
4209+ (1 row)
4210+
41074211-- should return null
41084212SELECT * FROM cypher('expr', $$
41094213 RETURN toUpper(null)
@@ -4211,6 +4315,73 @@ SELECT * FROM age_trim(' string ');
42114315 "string"
42124316(1 row)
42134317
4318+ -- should return empty string
4319+ SELECT * FROM cypher('expr', $$
4320+ RETURN lTrim('')
4321+ $$) AS (results agtype);
4322+ results
4323+ ---------
4324+ ""
4325+ (1 row)
4326+
4327+ SELECT * FROM cypher('expr', $$
4328+ RETURN rTrim('')
4329+ $$) AS (results agtype);
4330+ results
4331+ ---------
4332+ ""
4333+ (1 row)
4334+
4335+ SELECT * FROM cypher('expr', $$
4336+ RETURN trim('')
4337+ $$) AS (results agtype);
4338+ results
4339+ ---------
4340+ ""
4341+ (1 row)
4342+
4343+ SELECT * FROM cypher('expr', $$
4344+ RETURN lTrim("")
4345+ $$) AS (results agtype);
4346+ results
4347+ ---------
4348+ ""
4349+ (1 row)
4350+
4351+ SELECT * FROM cypher('expr', $$
4352+ RETURN rTrim("")
4353+ $$) AS (results agtype);
4354+ results
4355+ ---------
4356+ ""
4357+ (1 row)
4358+
4359+ SELECT * FROM cypher('expr', $$
4360+ RETURN trim("")
4361+ $$) AS (results agtype);
4362+ results
4363+ ---------
4364+ ""
4365+ (1 row)
4366+
4367+ SELECT * FROM age_ltrim('');
4368+ age_ltrim
4369+ -----------
4370+ ""
4371+ (1 row)
4372+
4373+ SELECT * FROM age_rtrim('');
4374+ age_rtrim
4375+ -----------
4376+ ""
4377+ (1 row)
4378+
4379+ SELECT * FROM age_trim('');
4380+ age_trim
4381+ ----------
4382+ ""
4383+ (1 row)
4384+
42144385-- should return null
42154386SELECT * FROM cypher('expr', $$
42164387 RETURN lTrim(null)
@@ -4322,15 +4493,16 @@ $$) AS (results agtype);
43224493 "123"
43234494(1 row)
43244495
4325- -- should return null
4496+ -- should return empty string
43264497SELECT * FROM cypher('expr', $$
43274498 RETURN left("123456789", 0)
43284499$$) AS (results agtype);
43294500 results
43304501---------
4331-
4502+ ""
43324503(1 row)
43334504
4505+ -- should return null
43344506SELECT * FROM cypher('expr', $$
43354507 RETURN left(null, 1)
43364508$$) AS (results agtype);
@@ -4401,15 +4573,16 @@ $$) AS (results agtype);
44014573 "789"
44024574(1 row)
44034575
4404- -- should return null
4576+ -- should return empty string
44054577SELECT * FROM cypher('expr', $$
44064578 RETURN right("123456789", 0)
44074579$$) AS (results agtype);
44084580 results
44094581---------
4410-
4582+ ""
44114583(1 row)
44124584
4585+ -- should return null
44134586SELECT * FROM cypher('expr', $$
44144587 RETURN right(null, 1)
44154588$$) AS (results agtype);
@@ -4508,6 +4681,13 @@ SELECT * FROM age_substring('0123456789', 1);
45084681 "123456789"
45094682(1 row)
45104683
4684+ -- should return empty string
4685+ SELECT * FROM age_substring('0123456789', 0, 0);
4686+ age_substring
4687+ ---------------
4688+ ""
4689+ (1 row)
4690+
45114691-- should return null
45124692SELECT * FROM cypher('expr', $$
45134693 RETURN substring(null, null, null)
@@ -4747,49 +4927,68 @@ $$) AS (results agtype);
47474927 "ababab"
47484928(1 row)
47494929
4750- -- should return null
4930+ -- should return empty string
47514931SELECT * FROM cypher('expr', $$
4752- RETURN replace(null, null, null )
4932+ RETURN replace("", "", "" )
47534933$$) AS (results agtype);
47544934 results
47554935---------
4756-
4936+ ""
47574937(1 row)
47584938
47594939SELECT * FROM cypher('expr', $$
4760- RETURN replace("Hello", null, null )
4940+ RETURN replace("Hello", "Hello", "" )
47614941$$) AS (results agtype);
47624942 results
47634943---------
4764-
4944+ ""
47654945(1 row)
47664946
47674947SELECT * FROM cypher('expr', $$
4768- RETURN replace("Hello ", "", null )
4948+ RETURN replace("", "Hello ", "Mellow" )
47694949$$) AS (results agtype);
47704950 results
47714951---------
4772-
4952+ ""
4953+ (1 row)
4954+
4955+ SELECT * FROM age_replace('', '', '');
4956+ age_replace
4957+ -------------
4958+ ""
47734959(1 row)
47744960
4961+ SELECT * FROM age_replace('Hello', 'Hello', '');
4962+ age_replace
4963+ -------------
4964+ ""
4965+ (1 row)
4966+
4967+ SELECT * FROM age_replace('', 'Hello', 'Mellow');
4968+ age_replace
4969+ -------------
4970+ ""
4971+ (1 row)
4972+
4973+ -- should return null
47754974SELECT * FROM cypher('expr', $$
4776- RETURN replace("", "", "" )
4975+ RETURN replace(null, null, null )
47774976$$) AS (results agtype);
47784977 results
47794978---------
47804979
47814980(1 row)
47824981
47834982SELECT * FROM cypher('expr', $$
4784- RETURN replace("Hello", "Hello", "" )
4983+ RETURN replace("Hello", null, null )
47854984$$) AS (results agtype);
47864985 results
47874986---------
47884987
47894988(1 row)
47904989
47914990SELECT * FROM cypher('expr', $$
4792- RETURN replace("", "Hello ", "Mellow" )
4991+ RETURN replace("Hello ", "", null )
47934992$$) AS (results agtype);
47944993 results
47954994---------
@@ -4814,24 +5013,6 @@ SELECT * FROM age_replace('Hello', '', null);
48145013
48155014(1 row)
48165015
4817- SELECT * FROM age_replace('', '', '');
4818- age_replace
4819- -------------
4820-
4821- (1 row)
4822-
4823- SELECT * FROM age_replace('Hello', 'Hello', '');
4824- age_replace
4825- -------------
4826-
4827- (1 row)
4828-
4829- SELECT * FROM age_replace('', 'Hello', 'Mellow');
4830- age_replace
4831- -------------
4832-
4833- (1 row)
4834-
48355016-- should fail
48365017SELECT * FROM cypher('expr', $$
48375018 RETURN replace()
0 commit comments