Re: Atom table full

Salvador Abreu <[email protected]>
Newsgroups gmane.comp.gnu.prolog.general
Message-ID <[email protected]>
On Apr 16, 2008, at 12:49, JCK wrote:

> I have no need for backtracking during this portion of the code and  
> have no need for the data after a loop is completed (it's in  
> mysql).  So I guess my question is:
>
> (1) is there anyway of clearing the atoms that won't be used again  
> from table?

not that I know of.

> (2) there's nowhere in the loop where a huge number of atoms are  
> created.  The only place I can think of there being atoms created is  
> after SQL calls when I'm converting and putting the data into prolog  
> variables.  Is there anyone else who's had this problem found a  
> culprit which is known for creating lots of atoms?

The output from SQL queries don't really need to be cast as atoms,  
considering this is a single-use "throw away" item.  What I've been  
doing (in a PostgreSQL interface) is to use Prolog strings (i.e. lists  
of small integers) as the representation for SQL query results.

I don't know what are the MySQL interface predicates, but it's  
probably similar to the approach I use here, which entails using:
	:- foreign(pq_get_data_codes(+integer, +integer, -codes)).

instead of:
	:- foreign(pq_get_data_atom(+integer, +integer, -string)).

(this fetches a column from the SQL output) - the thing is using the  
"codes" type instead of "string", like this you won't be creating  
useless atoms.

Regards
--
Salvador Abreu       --  http://www.di.uevora.pt/~spa/
Departamento de Informatica
Universidade de Evora - PORTUGAL
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.