create_spangres_singers_table

in spanner/spec/spanner_postgresql_helper.rb [30:60]


def create_spangres_singers_table
  capture do
    db_admin_client = Google::Cloud::Spanner::Admin::Database.database_admin project: @project_id

    db_path = db_admin_client.database_path project: @project_id,
                                            instance: @instance.instance_id,
                                            database: @database_id

    create_table_query = <<~QUERY
      CREATE TABLE Singers (
        SingerId bigint NOT NULL PRIMARY KEY,
        FirstName varchar(1024),
        LastName varchar(1024),
        Rating numeric,
        SingerInfo bytea,
        FullName character varying(2048) GENERATED ALWAYS AS (FirstName || ' ' || LastName) STORED
      );
    QUERY
  
    job = db_admin_client.update_database_ddl database: db_path,
                                              statements: [create_table_query]
  
    job.wait_until_done!
  
    if job.error?
      puts "Error while creating table. Code: #{job.error.code}. Message: #{job.error.message}"
      raise GRPC::BadStatus.new(job.error.code, job.error.message)
    end
  end
end