@@ -816,7 +816,7 @@ ST_GEOHASH(180,NULL,10)
816816NULL
817817SELECT ST_GEOHASH(180,90,NULL);
818818ST_GEOHASH(180,90,NULL)
819- zzzzzzzzzzzzzzzzzzzzzz
819+ NULL
820820SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(0 0)'),10);
821821ST_GEOHASH(ST_GEOMFROMTEXT('POINT(0 0)'),10)
822822s000000000
@@ -894,7 +894,7 @@ ST_GEOHASH(NULL,100)
894894NULL
895895SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(-0.0001 -0.0001)'),NULL);
896896ST_GEOHASH(ST_GEOMFROMTEXT('POINT(-0.0001 -0.0001)'),NULL)
897- 7zzzzzzzmtm7mzm00yd7z00s0y30g60000000000000000000000000000000000000000000000000000000000000000000000
897+ NULL
898898SELECT ST_GEOHASH(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(180 90)'),ST_GEOMFROMTEXT('POINT(0 0)')),20) c;
899899c
900900zzzzzzzzzzzzzzzzzzzz
@@ -957,15 +957,15 @@ ERROR HY000: Out of range error: Latitude should be [-90,90] in function ST_GeoH
957957SELECT ST_GEOHASH(-180,-90.0000000000001,10);
958958ERROR HY000: Out of range error: Latitude should be [-90,90] in function ST_GeoHash.
959959SELECT ST_GEOHASH(180,90,0);
960- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
960+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
961961SELECT ST_GEOHASH(-180,90,-1);
962- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
962+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
963963SELECT ST_GEOHASH(180,-90,-100);
964- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
964+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
965965SELECT ST_GEOHASH(-180,-90,101);
966- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
966+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
967967SELECT ST_GEOHASH(0,90,1000);
968- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
968+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
969969SELECT ST_GEOHASH("181",90,20);
970970ERROR HY000: Out of range error: Longitude should be [-180,180] in function ST_GeoHash.
971971SELECT ST_GEOHASH("-181",90,20);
@@ -975,19 +975,19 @@ ERROR HY000: Out of range error: Latitude should be [-90,90] in function ST_GeoH
975975SELECT ST_GEOHASH(180,"-91",20);
976976ERROR HY000: Out of range error: Latitude should be [-90,90] in function ST_GeoHash.
977977SELECT ST_GEOHASH(180,90,"0");
978- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
978+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
979979SELECT ST_GEOHASH(180,90,"-1");
980- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
980+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
981981SELECT ST_GEOHASH(180,90,"-100");
982- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
982+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
983983SELECT ST_GEOHASH(180,90,"101");
984- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
984+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
985985SELECT ST_GEOHASH(180,90,"1000");
986- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
986+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
987987SELECT ST_GEOHASH(180,90,"");
988- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
988+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
989989SELECT ST_GEOHASH(180,90,"****");
990- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
990+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
991991SELECT ST_GEOHASH();
992992ERROR 42000: Incorrect parameter count in the call to native function 'ST_GEOHASH'
993993SELECT ST_GEOHASH(1);
@@ -1039,29 +1039,29 @@ ERROR HY000: Out of range error: Latitude should be [-90,90] in function ST_GeoH
10391039SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(-180 -90.0000000000001)'),10);
10401040ERROR HY000: Out of range error: Latitude should be [-90,90] in function ST_GeoHash.
10411041SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(180 90)'),0);
1042- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1042+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10431043SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(180 -90)'),-1);
1044- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1044+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10451045SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(-180 90)'),-100);
1046- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1046+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10471047SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(-180 -90)'),101);
1048- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1048+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10491049SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(0 0)'),10000);
1050- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1050+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10511051SELECT ST_GEOHASH(ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('POINT(180 90)'))),"0");
1052- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1052+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10531053SELECT ST_GEOHASH(ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('POINT(180 -90)'))),"-1");
1054- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1054+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10551055SELECT ST_GEOHASH(ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('POINT(-180 90)'))),"-100");
1056- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1056+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10571057SELECT ST_GEOHASH(ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('POINT(-180 -90)'))),"101");
1058- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1058+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10591059SELECT ST_GEOHASH(ST_GEOMFROMWKB(ST_ASWKB(ST_GEOMFROMTEXT('POINT(0 0)'))),"10000");
1060- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1060+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10611061SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(0 0)')," ");
1062- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1062+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10631063SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(0 0)'),"***");
1064- ERROR HY000: Out of range error: max geohash length value in function ST_GeoHash.
1064+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10651065SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(0 0)'));
10661066ERROR 42000: Incorrect parameter count in the call to native function 'ST_GEOHASH'
10671067SELECT ST_GEOHASH(ST_GEOMFROMTEXT(),20);
@@ -1085,9 +1085,9 @@ ERROR 22023: Invalid GIS data provided to function ST_GeoHash.
10851085SELECT ST_GEOHASH(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0))'),10);
10861086ERROR 22023: Invalid GIS data provided to function ST_GeoHash.
10871087SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(180 90)'),20.0001);
1088- ERROR 22023: Invalid GIS data provided to function ST_GeoHash.
1088+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10891089SELECT ST_GEOHASH(ST_GEOMFROMTEXT('POINT(180 90)'),(CAST(10 AS DATE)));
1090- ERROR 22023: Invalid GIS data provided to function ST_GeoHash.
1090+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
10911091SELECT ST_GEOHASH(ST_INTERSECTION(ST_GEOMFROMTEXT('POINT(180 90)'),ST_GEOMFROMTEXT('POINT(1 1)')),20);
10921092ERROR 22023: Invalid GIS data provided to function ST_GeoHash.
10931093SELECT ST_GEOHASH(ST_UNION(ST_GEOMFROMTEXT('POINT(180 90)'),ST_GEOMFROMTEXT('POINT(-180 -90)')),20);
@@ -1516,7 +1516,7 @@ ST_GeoHash(POINT(10, 10), @maxlen)
15161516s1z
15171517SELECT ST_GeoHash(POINT(10, 10), @null);
15181518ST_GeoHash(POINT(10, 10), @null)
1519- s1z0gs3y0zh7w1z0gs3y0zw
1519+ NULL
15201520SET @point = POINT(10, 10);
15211521PREPARE stmt FROM "SELECT ST_GeoHash(?, 10)";
15221522EXECUTE stmt USING @point;
@@ -1565,7 +1565,7 @@ SELECT ST_GeoHash(@double, @double, 10);
15651565ST_GeoHash(@double, @double, 10)
15661566s60tmsgy0s
15671567SELECT ST_GeoHash(POINT(10, 10), @double);
1568- ERROR 22023: Invalid GIS data provided to function ST_GeoHash.
1568+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
15691569SELECT ST_POINTFROMGEOHASH("00", @double);
15701570ERROR 22023: Invalid GIS data provided to function ST_PointFromGeoHash.
15711571DROP TABLE IF EXISTS t1;
@@ -1661,3 +1661,19 @@ SELECT ST_LatFromGeoHash("ї");
16611661ERROR HY000: Incorrect geohash value: '\0457' for function st_latfromgeohash
16621662SELECT ST_LongFromGeoHash("ї");
16631663ERROR HY000: Incorrect geohash value: '\0457' for function st_longfromgeohash
1664+ #
1665+ # MDEV-34158 st_geohash error reporting and null handling
1666+ #
1667+ SELECT ST_GeoHash(( POINTFROMTEXT(' POINT( 4 1 ) ') ), 1e0);
1668+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
1669+ SELECT ST_GeoHash(( POINTFROMTEXT(' POINT( 4 1 ) ') ), 0);
1670+ ERROR HY000: Out of range error: max_length parameter should be an integer in the range [1, 100] in function ST_GeoHash.
1671+ SELECT ST_GeoHash(45,-20,null);
1672+ ST_GeoHash(45,-20,null)
1673+ NULL
1674+ SELECT ST_GeoHash(0,-20,null);
1675+ ST_GeoHash(0,-20,null)
1676+ NULL
1677+ SELECT ST_GeoHash(( POINTFROMTEXT(' POINT( 4 1 ) ') ), NULL);
1678+ ST_GeoHash(( POINTFROMTEXT(' POINT( 4 1 ) ') ), NULL)
1679+ NULL
0 commit comments