# File lib/amalgalite/statement.rb, line 332
    def result_meta
      unless @result_meta
        meta = []
        column_count.times do |idx|
          column_meta = ::OpenStruct.new
          column_meta.name = @stmt_api.column_name( idx )

          db_name  = @stmt_api.column_database_name( idx ) 
          tbl_name = @stmt_api.column_table_name( idx ) 
          col_name = @stmt_api.column_origin_name( idx ) 

          column_meta.schema = ::Amalgalite::Column.new( db_name, tbl_name, col_name, idx )
          column_meta.schema.declared_data_type = @stmt_api.column_declared_type( idx )

          # only check for rowid if we have a table name and it is not the
          # sqlite_master table.  We could get recursion in those cases.
          if not using_rowid_column? and tbl_name and tbl_name != 'sqlite_master' and is_column_rowid?( tbl_name, col_name ) then
            @rowid_index = idx
          end

          meta << column_meta 
        end

        @result_meta = meta
      end
      return @result_meta
    end