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




_______________________________________________
Users-prolog mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/users-prolog

Reply via email to