Note your comment:
sql="select * from testnn" # testnn is empty
Note the error:
apsw.ExecutionCompleteError: Can't get description for statements that have completed execution
The statement ran to completion. Asking what the columns are afterwards can't be done because it is complete.
Am I doing something wrong here? I'm expecting a description even though the table is empty because the full_column_names pragma is on.
The pragma has nothing to do with it. There is no description for an empty result set because the result set is empty.
Roger