Skip to content

Commit

Permalink
Geo: output 10 chars of geohash, not 11.
Browse files Browse the repository at this point in the history
This does not limit the actual precision, because the last digit bits were
garbage, and the shift value became even negative in the last iteration.
  • Loading branch information
antirez committed Oct 8, 2019
1 parent c65347a commit 009862a
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
8 changes: 4 additions & 4 deletions src/geo.c
Original file line number Diff line number Diff line change
Expand Up @@ -734,14 +734,14 @@ void geohashCommand(client *c) {
r[1].max = 90;
geohashEncode(&r[0],&r[1],xy[0],xy[1],26,&hash);

char buf[12];
char buf[11];
int i;
for (i = 0; i < 11; i++) {
for (i = 0; i < 10; i++) {
int idx = (hash.bits >> (52-((i+1)*5))) & 0x1f;
buf[i] = geoalphabet[idx];
}
buf[11] = '\0';
addReplyBulkCBuffer(c,buf,11);
buf[10] = '\0';
addReplyBulkCBuffer(c,buf,10);
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/geo.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ start_server {tags {"geo"}} {
r del points
r geoadd points -5.6 42.6 test
lindex [r geohash points test] 0
} {ezs42e44yx0}
} {ezs42e44yx}

test {GEOPOS simple} {
r del points
Expand Down

0 comments on commit 009862a

Please sign in to comment.