Skip to content
This repository was archived by the owner on Feb 12, 2022. It is now read-only.
This repository was archived by the owner on Feb 12, 2022. It is now read-only.

Provide multiple versions support in external HBase tables #459

@VladRodionov

Description

@VladRodionov

This was from user group mailing list:

I have a table, which has MAX_VERSIONS > 1. Is it possible in Phoenix to get all the versions of a particular cell?
Example (HBase table):

rowkey:cf:col:ts1 -> value1
rowkey:cf:col:ts2 -> value2
rowkey:cf:col:ts3 -> value2

I want to get all values for: rowkey:cf:col?

Its a mapping:
rowkey -> ID
cf:col -> PROFILE

I want execute:
select PROFILE from TABLE where ID= x and get all 3 profiles

James response:

That'd be a good contribution. The simplest way I can see that done would be:

  • support a new MAX_VERSIONS connection property where you can specify how many version of a row you want to get back. In the PhoenixConnection constructor, you'd grab this in the same way we do for CURRENT_SCN and store it in a member variable. Then from BasicQueryPlan.newScanner, you'd set scan.setMaxVersions() just like we're setting scan.setTimeRange().
  • add a built-in function like ROW_TIME() that returns the DATE of the first KeyValue in the Tuple (see my blog here for an example on how to add a new built-in function). Slightly fancier would be ROW_TIME() that would return the DATE representing the timestamp of the KeyValue in Tuple representing the passed in.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions