--- trunk/pgest.c 2005/10/20 16:24:26 48 +++ trunk/pgest.c 2005/10/29 18:54:40 49 @@ -359,12 +359,13 @@ #define _arg_node_uri 0 #define _arg_login 1 #define _arg_passwd 2 -#define _arg_query 3 -#define _arg_attr 4 -#define _arg_order 5 -#define _arg_limit 6 -#define _arg_offset 7 -#define _arg_attr_array 8 +#define _arg_depth 3 +#define _arg_query 4 +#define _arg_attr 5 +#define _arg_order 6 +#define _arg_limit 7 +#define _arg_offset 8 +#define _arg_attr_array 9 /* as (foo text, ... ); */ @@ -402,6 +403,7 @@ int resnum = 0; int limit = 0; int offset = 0; + int depth = 0; char *node_url; char *user, *passwd; @@ -479,6 +481,13 @@ user = _textout(PG_GETARG_TEXT_P(_arg_login)); passwd = _textout(PG_GETARG_TEXT_P(_arg_passwd)); + /* depth of search */ + if (PG_ARGISNULL(_arg_depth)) { + depth = 0; + } else { + depth = PG_GETARG_INT32(_arg_depth); + } + /* query string */ if (PG_ARGISNULL(_arg_query)) { query = ""; @@ -526,7 +535,7 @@ node = est_node_new(node_url); est_node_set_auth(node, user, passwd); - elog(DEBUG1, "pgest_node: query[%s] attr[%s] limit %d offset %d", query, (PG_ARGISNULL(_arg_attr) ? "NULL" : attr), limit, offset); + elog(DEBUG1, "pgest_node: node: %s (d:%d) query[%s] attr[%s] limit %d offset %d", node_url, depth, query, (PG_ARGISNULL(_arg_attr) ? "NULL" : attr), limit, offset); /* create a search condition object */ if (!(cond = est_cond_new())) { @@ -562,8 +571,7 @@ } /* get the result of search */ - /* FIXME: allow user to specify depath of search */ - nres = est_node_search(node, cond, 0); + nres = est_node_search(node, cond, depth); if (! nres) { int status = est_node_status(node);