plpython에서는 트리거와 관련된 레코드에 대해서 TD라는 해쉬자료형을 사용합니다.
TD["old"], TD["new"] 이런식으로.
문제는 이놈의 필드가 char(1) 형인 경우는 자료값을 계산해내지 못하는 버그가 있습니다.
결국 테이블의 자료형을 text로 바꾸고서야 트리거가 정상적으로 작동하는군요.
참고하세요.
이 버그 때문에 몇시간을 고생했는지. -.-
이것 외에 plpython 놈은 python 2.2.x 최신 python에서 re 모듈을 불러오지 못하는 버그가 있습니다. (꽁수로 unicode 사용하지 않는 예전 re 모률을 불러오면 되기는 하지만)
plpython을 사용하려면, 2.1.x 이하 python을 사용해야겠네요.
다음버전에서 plpython의 보다 나은 모습은 기대해봅니다.
당연히 C로 만들어진 plpgsql 놈보다 plpython 놈이 당연히 늦습니다.
보다 빠르고 간결한 작업을 원하시면 plpgsql을 사용하시고,
보다 확장되고 client 측 코딩을 최대한 줄이고자 한다면,
plpython 놈을 한번 살펴보는 것도 괜찮을 것같습니다.
|