function createTableDefinition(tableName, tableSchema, schemaBuilder) {
  var tableBuilder = schemaBuilder.createTable(tableName);

  processColumns(tableSchema, tableBuilder);

  if (tableSchema.constraint === null) {
    // Case where "Constraint" key-word appears in the YAML schema, but the
    // section is left empty. Note, using triple-equals on purpose since
    // undefined == null is true.
    throw new Error('Empty constraint for ' + tableName);
  }

  if (tableSchema.constraint) {
    processPrimaryKeyConstraint(tableSchema, tableBuilder);
    processUniqueConstraints(tableSchema, tableBuilder);
    processForeignKeyConstraints(tableSchema, tableBuilder);
  }
  processIndices(tableSchema, tableBuilder);

  if (tableSchema.constraint && tableSchema.constraint.nullable) {
    tableBuilder.addNullable(tableSchema.constraint.nullable);
  }

  if (tableSchema.pragma && tableSchema.pragma.persistentIndex != undefined) {
    tableBuilder.persistentIndex(tableSchema.pragma.persistentIndex);
  }
}
@param {string} tableName
@param {!Table_} tableSchema
@param {!lf.schema.Builder} schemaBuilder