Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Overflow of $DBI::rows

by mbethke (Hermit)
on Dec 07, 2012 at 16:21 UTC ( #1007776=note: print w/replies, xml ) Need Help??


in reply to Overflow of $DBI::rows

Sounds unlikely. I have absolutely no experience with Teradata and little with ODBC but I dare say if the variable overflows at 2^31 it's very likely to be an C-level integer. Moving to a 64bit-machine is not an option for you? Perhaps with this amount of data you'd benefit from it anyway. Other than that it's probably difficult to fix on 32bit platforms as larger values could be returned to Perl but would necessarily become inaccurate, which is probably worse than not being able to use them at all.

Replies are listed 'Best First'.
Re^2: Overflow of $DBI::rows
by DanEllison (Beadle) on Dec 07, 2012 at 16:30 UTC
    We are in fact running 64bit Perl on a 64bit machine.
      Windows? When I run Makefile.PL for DBD-ODBC-1.41 on Linux, I get the following:
      unixODBC 2.3.1 DRIVERS............: /etc/unixODBC/odbcinst.ini SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini FILE DATA SOURCES..: /etc/unixODBC/ODBCDataSources USER DATA SOURCES..: /home/mb/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
      All 64bit sizes.
      dbdimp.h has this definition:
      SQLLEN RowCount; /* Rows affected by insert, update, delete * (unreliable for SELECT) */
      This member looks like it was the culprit here and somehow ended up as 32bit. The build output of DBD-ODBC should have some clues.
        We are in fact using DataDirect's 64bit ODBC. So it appears it may be correct. It may very well be a Teradata issue which wouldn't surprise me.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1007776]
help
Chatterbox?
[ambrus]: Corion: as for that, I talked with schmorp, and looked a bit more at Prima
[ambrus]: Corion: from the docs, it definitely looks like it would be possible to write an AnyEvent driver for it using Prima::File and Prima::Timer.
[ambrus]: (I haven't found an idle event.)
[ambrus]: However, I also looked at the internals, and found two interesting things:
[marto]: stupid xpath question, I have a xpath copied from the browser, is the * wildcard supposed to work for IDs? e.g. '//*[@id="*"]/ div/div/header/p/a '?
[ambrus]: The main loop for unixish systems is in https://metacpan. org/source/ KARASIK/Prima-1. 49/unix/apc_app.c. It is a hand-rolled select loop, but also always spins at least once every 0.2 seconds for some reason.
[ambrus]: marto: no, not that way. if you just want to test for an existing id attribute, then write *[@id] , or you can match a regexp to the value of that attribute like *[@id=~/something/ ]

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2016-12-08 10:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (140 votes). Check out past polls.