জড়িত দৃশ্য জ্যামিতি_কলামগুলিতে দেখা যায় না


12

পোস্টগ্রিসএসকিউএল 9.3.1 চলমান একটি পোস্টজিআইএস ২.১-সক্ষম ডাটাবেসে আমি একটি বস্তুগত দৃশ্যের সংজ্ঞা দিয়েছি:

CREATE MATERIALIZED VIEW canvec_data.contours_m AS 
 SELECT
    contours_original.ogc_fid, 
    contours_original.elevation::integer AS elevation_orig, 
    CASE
        WHEN "substring"(contours_original.code::text, 1, 3) = '257'::text THEN round(contours_original.elevation::double precision * 0.3048::double precision)
        ELSE contours_original.elevation::double precision
    END AS elevation_m, 
    contours_original.wkb_geometry::geometry(Linestring,3578)
 FROM canvec_data.contours_original

আমি সম্ভবত ভ্রান্তভাবে প্রত্যাশা করেছিলাম যে এই ফলস্বরূপ সত্তা (একটি টেবিল?) public.geometry_columnsভিউতে তালিকাভুক্ত করা হবে এবং এইভাবে জিআইএস ভিউয়ার সফ্টওয়্যার যেমন কিউজিআইএস দ্বারা সঠিকভাবে ব্যাখ্যা করা হবে।

বস্তুগত দৃশ্য ভিউতে উপস্থিত হয় না public.geometry_columns

আমি কি ভুল করছি?

ধন্যবাদ!

উত্তর:


16

আপনি কোনও ভুল করছেন না, আপনি পোস্টগ্রিজএসকিউএল 9.3 এর নতুন উপাদানযুক্ত দর্শন বৈশিষ্ট্যের জন্য আমাদের সমর্থনে একটি গর্ত আবিষ্কার করেছেন। আমি সমস্ত প্রাসঙ্গিক শাখা প্যাচ করেছি এবং আপনি নিজের জ্যামিতি_কলামগুলির সংজ্ঞাটি আপডেট করতে পারেন (এই টিকিটের পরিবর্তনের উল্লেখগুলি দেখুন http://trac.osgeo.org/postgis/ticket/2511 )

আসলে, এসকিউএল উইন্ডোতে আপনি কেবল এখানে পেস্ট করতে পারেন এমন কিছু এখানে:

CREATE OR REPLACE VIEW geometry_columns AS 
  SELECT current_database()::varchar(256) AS f_table_catalog, 
    n.nspname::varchar(256) AS f_table_schema, 
    c.relname::varchar(256) AS f_table_name, 
    a.attname::varchar(256) AS f_geometry_column, 
    COALESCE(NULLIF(postgis_typmod_dims(a.atttypmod),2),
             postgis_constraint_dims(n.nspname, c.relname, a.attname),
             2) AS coord_dimension, 
    COALESCE(NULLIF(postgis_typmod_srid(a.atttypmod),0),
             postgis_constraint_srid(n.nspname, c.relname, a.attname),
             0) AS srid, 
    -- force to be uppercase with no ZM so is backwards compatible
    -- with old geometry_columns
    replace(
      replace(
        COALESCE(
          NULLIF(upper(postgis_typmod_type(a.atttypmod)::text), 'GEOMETRY'),
          postgis_constraint_type(n.nspname, c.relname, a.attname),
          'GEOMETRY'
        ), 'ZM', ''
      ), 'Z', ''
    )::varchar(30) AS type
  FROM pg_class c, pg_attribute a, pg_type t, pg_namespace n
  WHERE t.typname = 'geometry'::name 
    AND a.attisdropped = false 
    AND a.atttypid = t.oid 
    AND a.attrelid = c.oid 
    AND c.relnamespace = n.oid 
    AND (c.relkind = 'r'::"char" OR c.relkind = 'v'::"char" OR c.relkind = 'm'::"char")
    AND NOT pg_is_other_temp_schema(c.relnamespace)
    AND NOT ( n.nspname = 'public' AND c.relname = 'raster_columns' )
    AND has_table_privilege( c.oid, 'SELECT'::text );

5
দুর্দান্ত জবাব এবং ঠিক করুন; এটি গ্রাহক পরিষেবা ...
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.