We're Moving!

The Vertica Forum is moving to a new OpenText Analytics Database (Vertica) Community.

Join us there to post discussion topics, learn about

product releases, share tips, access the blog, and much more.

Create My New Community Account Now


ADONET64 vertica driver returns empty DataTable on Select count(*) — Vertica Forum

ADONET64 vertica driver returns empty DataTable on Select count(*)

joergschaberjoergschaber Vertica Customer

Hi,

sometimes my ADONET64 vertica driver returns an empty DataTable, when I run a "Select count(*) from " a View.
The c# code is the following:

            VerticaCommand command = _dbConnection.CreateCommand();
            command.Connection = _dbConnection;

           command.CommandText = "SELECT COUNT(*) FROM View";

            // Create the DataAdapter
            VerticaDataAdapter adapter = new VerticaDataAdapter {SelectCommand = command};

            // Fill the DataTable
            DataTable result = new DataTable();
            adapter.Fill(result);

After adapter.Fill(result) result should be a data table with one row, but sometimes it is just empty.
Any idea? Is that a bug in the driver?
vertica and driver version is v10.0.1-6

Tagged:

Best Answer

  • joergschaberjoergschaber Vertica Customer
    Answer ✓

    I think we found the problem. We figured that we probably had parallel queries using a async methods running the queries.
    Thanks.

Answers

  • Jim_KnicelyJim_Knicely - Select Field - Administrator
    edited June 2021

    Can you check to see if the query is reaching Vertica?

    To do that, query the SYSTEMS tables.

    Example...

    verticademos=> CREATE VIEW d_view AS SELECT * FROM dual;
    CREATE VIEW
    
    verticademos=> \! vsql -c "SELECT COUNT(*) FROM d_view;"
     COUNT
    -------
         1
    (1 row)
    
    verticademos=> SELECT user_name, transaction_id, statement_id, success FROM query_requests WHERE request = 'SELECT COUNT(*) FROM d_view;';z
    
     user_name |  transaction_id   | statement_id | success
    -----------+-------------------+--------------+---------
     dbadmin   | 45035996274039952 |            1 | t
    (1 row)
    
    verticademos=> SELECT session_id, transaction_id, statement_id, processed_row_count FROM query_profiles WHERE query = 'SELECT COUNT(*) FROM d_view;';
                  session_id              |  transaction_id   | statement_id | processed_row_count
    --------------------------------------+-------------------+--------------+---------------------
     erticademos_node0001-1145916:0x97e5a | 45035996274039952 |            1 |                   1
    (1 row)
    

    Are there times whene the SUCCESS flag is false?

    If so, take a peek at the DC_ERRORS Data Collector table for the related TRANSACTION_ID and STATEMENT_ID:

    SELECT log_message FROM dc_errors WHERE transaction_id = 45035996274039952 AND statement_id = 1;

  • joergschaberjoergschaber Vertica Customer

    Hi,

    yes, we checked and it seems that queries are not reaching Vertica and there are no queries with success = false.
    This errors seems to occur, when we query data sets where count = 0 and/or we have several queries in a milliseconds time interval.

Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Emoji
Image
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file