Yugabyte driver api - How to retrieve all columns upon failed INSERT?

We are migrating from Apache Cassandra DB to Yugabyte DB


With Apache Cassandra, GoCQL driver(GitHub - gocql/gocql: Package gocql implements a fast and robust Cassandra client for the Go programming language.) provides the option to retrieve all columns upon failed INSERT using MapScanCAS() api:

    insertValuesString = "INSERT INTO my_table (col1,col2,col3) " + "VALUES (?, ?, ?) IF NOT EXISTS"
    mapObj := map[string]interface{}{}
    applied, err := gocql.Session.Query(insertValuesString,
        col1,
        col2,
	col3).MapScanCAS(mapObj)

Using Yugabyte DB, ycql shell provides all columns with RETURN STATUS AS ROW clause, as mentioned here(IF NOT EXISTS clause is not returning all columns, If the row already exists - #2 by dorian_yugabyte).


We are currently using driver: GitHub - yugabyte/gocql: The YugabyteDB database Go Driver for YCQL, based on the gocql Driver for YugabyteDB.

For YugabyteDB, what is the driver api to fetch all the columns, upon failed INSERT?

Hi @sham_yuga

The driver returns a row object, so the same api that you fetch a row. In the response you linked, there is a sample code in python, that you can see it just retrieves a row.