File: ltree_plpython.c

package info (click to toggle)
postgresql-9.6 9.6.17-0%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 129,840 kB
  • sloc: ansic: 743,530; sql: 67,512; xml: 30,901; yacc: 30,445; perl: 16,302; lex: 7,822; sh: 5,290; makefile: 4,780; python: 112; asm: 65; sed: 15
file content (31 lines) | stat: -rw-r--r-- 563 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "postgres.h"
#include "fmgr.h"
#include "plpython.h"
#include "ltree.h"

PG_MODULE_MAGIC;


PG_FUNCTION_INFO_V1(ltree_to_plpython);

Datum
ltree_to_plpython(PG_FUNCTION_ARGS)
{
	ltree	   *in = PG_GETARG_LTREE(0);
	int			i;
	PyObject   *list;
	ltree_level *curlevel;

	list = PyList_New(in->numlevel);

	curlevel = LTREE_FIRST(in);
	for (i = 0; i < in->numlevel; i++)
	{
		PyList_SetItem(list, i, PyString_FromStringAndSize(curlevel->name, curlevel->len));
		curlevel = LEVEL_NEXT(curlevel);
	}

	PG_FREE_IF_COPY(in, 0);

	return PointerGetDatum(list);
}