1. A computer-implemented method for creating an index on a database table, comprising: building a set of index rows by extracting an index key column from data rows of the database table; sorting the set of index rows based on the values of the index key column; generating partition boundary values to divide up the index rows into range-partitioned sets; performing a search argument-based repartitioning scan on the index rows of the database table upon determination that there are no duplicated values in the partition boundary values of the index key column; assigning each range-partitioned set of index rows to one of a plurality worker threads in the plurality of worker threads; executing at least some of the worker threads in parallel to build a plurality of sub-indexes based on the range-partitioned sets; and merging the plurality sub-indexes from the plurality of work threads to generate the index for the database table.