Improving various checks by Heikki Linnakangas <heikki@enterprisedb.com>
authorTeodor Sigaev <teodor@sigaev.ru>
Fri, 7 Sep 2007 15:35:11 +0000 (15:35 +0000)
committerTeodor Sigaev <teodor@sigaev.ru>
Fri, 7 Sep 2007 15:35:11 +0000 (15:35 +0000)
commit8983852e343d04696256d576d5009dd7c5e94272
tree40177ca8e59723822f0955f82300e096168263cf
parente5be89981fc70648eedb325781cf2fbd4da05ba8
Improving various checks by Heikki Linnakangas <heikki@enterprisedb.com>

- add code to check that the query tree is well-formed. It was indeed
  possible to send malformed queries in binary mode, which produced all
  kinds of strange results.

- make the left-field a uint32. There's no reason to
  arbitrarily limit it to 16-bits, and it won't increase the disk/memory
  footprint either now that QueryOperator and QueryOperand are separate
  structs.

- add check_stack_depth() call to all recursive functions I found.
  Some of them might have a natural limit so that you can't force
  arbitrarily deep recursions, but check_stack_depth() is cheap enough
  that seems best to just stick it into anything that might be a problem.
src/backend/utils/adt/tsquery.c
src/backend/utils/adt/tsquery_cleanup.c
src/backend/utils/adt/tsquery_rewrite.c
src/backend/utils/adt/tsquery_util.c
src/backend/utils/adt/tsrank.c
src/include/tsearch/ts_type.h