pymssql nextset() 빈값 이슈

최근에 구현한 부분에서 이상한 경험을 했는데 같은 db 프로시저를 호출하는 코드를 쓰고 테스트를 했는데 어떤 조건으로는 데이터가 순서에 맞게 잘 나오고 안나오고 하는 경우였다. 데이터는 mssql 저장 프로시저에서 2개의 결과셋을 반환하는데 첫번째에서는 보여줄 데이터의 금액, 건수 합산 데이터를 보여주고, 두번째에서는 실제 보여줄 데이터가 나오는 것이었다. 그래서 generator 를 이용해서 g.next(), g.next() 이렇게 2번 호출해서 해당 데이터를 받아오고 각각을 다른 변수에 담아서 리턴하고 있었다. 리턴된 데이터는 웹상에서 2개의 datatables 에 표시하는 식으로 구성되어 있었다. while True: result = [row for row in self.cursor] try: yield result except GeneratorExit: break ... result_sum = g.nextset() result_detail = g.nextset() 그런데 어떤 조건하에서는 이상하게 두번째 데이터가 첫번째 datatables 에 표시되는 버그가 있었다. 아무리 생각해도 이해가 되지 않아서, mssql 을 통해서 조회해보니 첫번째의 합산 결과셋이 빈칸으로 오는 것이었다. 그러면 상식적으로 첫번째 결과셋을 받는 변수에는 [] 로 나오고 두번째 결과셋을 받는 변수에는 실제 데이터가 나와야 한다. 그런데 첫번째 결과셋 변수에 두번째 결과셋 데이터가 들어가 있었다. 왜 이런 문제가 생길까? 문제의 원인은 pymssql 에서 nextset() 을 받아올때 빈