[postgis-devel] Fwd: Assertion with RASTER when Postgis is just loaded

Darafei "Komяpa" Praliaskouski me at komzpa.net
Thu Jul 18 11:22:43 PDT 2019


Привет,

в запросах упомянуты таблицы, которые не приложены, из запроса неочевидно,
что в них происходи. второй запрос удаляет кусок системной таблицы. какое
поведение ожидается?

shared query references tables that aren't attached to the message. it's
not obvious how the query should behave. the second one is deleting a part
of system table. what is the expected behavior?

On Thu, Jul 18, 2019 at 6:15 PM Paul Ramsey <pramsey at cleverelephant.ca>
wrote:

>
>
> Begin forwarded message:
>
> *From: *Ольга Ольга <rikottta at mail.ru>
> *Subject: **Fwd: Assertion with RASTER when Postgis is just loaded*
> *Date: *July 18, 2019 at 8:11:00 AM PDT
> *To: *postgis-devel-owner at lists.osgeo.org
>
> Good day,
> This is the 3rd day when I am trying to let Postgis team know about a
> probable bug in Postgis.
> Either my email is not accepted, or I am proposed to confirm myself by my
> external profile, or my message is rejected... I might have found a
> valuable bug for Postgis community, at least it looks so. I wrote to
> Postgres and SQLsmith people and they all think so. Now I need to fight
> with the mechanism of enough proving that I am not a robot, to be able just
> to share the case which causes assertion failure.  I find this way very
> complicated, sorry. If anyone from Postgis could be interested in a
> potential bug which is regularly reproducible with SQLsmith, please - if
> you want - share the information below with those who might be interested
> in.
>
> Best, Olga
>
>
> ---------- Forwarded message ---------
> From: Ольга Ольга <rikottta at mail.ru>
> Date: Thu, Jul 18, 2019 at 4:53 PM
> Subject: Fwd: Assertion with RASTER when Postgis is just loaded
> To: <postgis-devel-owner at lists.osgeo.org>
>
>
> Good day,
>
> When I am trying to run SQLSmith on a schema with loaded POSTGIS extension
> (even when no tables are using POSTGIS types!), I am continuously getting:
>
> SELECT: rt_raster.c:1443: rt_raster_from_band: Assertion `NULL != raster'
> failed.
> FATAL: the database system is in recovery mode
>
> It's PSQL 11 and POSTGIS 2.5.
>
> Is there any workaround ?
>
> select sample_0.classoid as c0, case when public.st_mapalgebra( cast(
> public.st_union( cast(cast(null as raster) as raster), cast((select
> avg_width from pg_catalog.pg_stats limit 1 offset 4) as int4)) over
> (partition by sample_0.objoid order by
> sample_0.description,sample_0.description) as raster),
> cast(pg_catalog.hashinet( cast(cast(null as inet) as inet)) as int4),
> cast(cast(null as raster) as raster), cast(case when (select col7 from
> public.child_psql_table_without_overlap limit 1 offset 1) >^ cast(null as
> point) then (select pg_catalog.bit_or(coord_dimension) from
> public.geography_columns) else (select pg_catalog.bit_or(coord_dimension)
> from public.geography_columns) end as int4), cast((select agginitval from
> pg_catalog.pg_aggregate limit 1 offset 5) as text), cast(case when
> cast(null as tinterval) >= cast(null as tinterval) then
> sample_0.description else sample_0.description end as text),
> cast(pg_catalog.timeofday() as text),
> cast(cast(coalesce(sample_0.description, sample_0.description) as text) as
> text), cast(sample_0.description as text), cast(cast(coalesce((select col4
> from public.child_psql_table_without_overlap limit 1 offset 6) , (select
> pg_catalog.stddev(total_time) from pg_catalog.pg_stat_xact_user_functions)
> ) as float8) as float8)) @ cast(nullif( public.st_union( cast(cast(null as
> raster) as raster), cast(96 as int4), cast(sample_0.description as text))
> over (partition by sample_0.objsubid order by sample_0.classoid), case when
> cast(null as float4) <> (select enumsortorder from pg_catalog.pg_enum limit
> 1 offset 6) then cast(coalesce(cast(null as raster), cast(null as raster))
> as raster) else cast(coalesce(cast(null as raster), cast(null as raster))
> as raster) end ) as raster) then sample_0.classoid else sample_0.classoid
> end as c1, case when EXISTS ( select ref_0.autoanalyze_count as c0,
> sample_0.objoid as c1, 41 as c2, public.st_union( cast(cast(null as raster)
> as raster), cast(sample_0.objsubid as int4)) over (partition by
> sample_0.objoid,ref_0.n_tup_hot_upd order by ref_0.vacuum_count) as c3,
> (select data_type from information_schema.user_defined_types limit 1 offset
> 1) as c4 from pg_catalog.pg_stat_user_tables as ref_0 where cast(null as
> raster) <<| public.st_mapalgebraexpr( cast(cast(null as raster) as raster),
> cast(sample_0.description as text), cast(sample_0.description as text),
> cast((select col16 from public.child_twice_inherits_inherited limit 1
> offset 84) as float8)) limit 87) then sample_0.objoid else sample_0.objoid
> end as c2, cast(nullif(sample_0.objoid, (select pg_catalog.min(partrelid)
> from pg_catalog.pg_partitioned_table) ) as oid) as c3, sample_0.classoid as
> c4, sample_0.description as c5, sample_0.objoid as c6, sample_0.objsubid as
> c7, pg_catalog.current_user() as c8, sample_0.objoid as c9 from
> pg_catalog.pg_description as sample_0 tablesample system (3.6) where
> pg_catalog.btfloat4cmp( cast(case when ((select col13 from
> public.child_inherits_inherited_psql limit 1 offset 1) <@ cast(null as
> line)) or ((sample_0.objoid is NULL) and (cast(null as pg_lsn) <> cast(null
> as pg_lsn))) then case when public.seg_upper( cast(cast(null as seg) as
> seg)) < (select pg_catalog.sum(col3) from public.table) then (select
> pg_catalog.min(null_frac) from pg_catalog.pg_stats) else (select
> pg_catalog.min(null_frac) from pg_catalog.pg_stats) end else case when
> public.seg_upper( cast(cast(null as seg) as seg)) < (select
> pg_catalog.sum(col3) from public.table) then (select
> pg_catalog.min(null_frac) from pg_catalog.pg_stats) else (select
> pg_catalog.min(null_frac) from pg_catalog.pg_stats) end end as float4),
> cast(case when ((((cast(null as reltime) = cast(null as reltime)) or
> (false)) or ((select col8 from public.child_inherits_noninherited_psql
> limit 1 offset 2) >= (select col1 from
> public.pg_fdw_without_definition_psql limit 1 offset 2) )) and (cast(null
> as geometry) &&& cast(null as gidx))) and ((cast(null as isbn) >= (select
> col7 from public.table_with_psql_array_custom_type limit 1 offset 17) ) and
> (cast(null as inet) <= (select pg_catalog.min(col16) from
> public.child_inherits_inherited_psql) )) then cast(coalesce((select col0
> from public.psql_table_for_type limit 1 offset 1) , cast(null as float4))
> as float4) else cast(coalesce((select col0 from public.psql_table_for_type
> limit 1 offset 1) , cast(null as float4)) as float4) end as float4)) is
> NULL limit 44;
>
>
> delete from information_schema.sql_implementation_info where
> cast(nullif(cast(nullif(case when cast(null as circle) &<| (select col7
> from public.child_twice_inherits_inherited_psql limit 1 offset 6) then
> cast(null as raster) else cast(null as raster) end , cast(nullif(cast(null
> as raster), cast(null as raster)) as raster)) as raster), cast(nullif(case
> when (select col1 from public.fdw_table_with_custom_type_psql limit 1
> offset 6) ~<=~ (select col2 from public.table_for_psql_inheritance limit 1
> offset 5) then case when
> information_schema.sql_implementation_info.implementation_info_name is not
> NULL then cast(null as raster) else cast(null as raster) end else case when
> information_schema.sql_implementation_info.implementation_info_name is not
> NULL then cast(null as raster) else cast(null as raster) end end , case
> when information_schema.sql_implementation_info.integer_value is NULL then
> cast(null as raster) else cast(null as raster) end ) as raster)) as raster)
> &<| public.st_addband( cast(public.st_addband( cast(cast(null as raster) as
> raster), cast(case when cast(null as date) < cast(null as date) then
> cast(coalesce(cast(nullif(cast(null as _raster), cast(null as _raster)) as
> _raster), cast(nullif(cast(null as _raster), cast(null as _raster)) as
> _raster)) as _raster) else cast(coalesce(cast(nullif(cast(null as _raster),
> cast(null as _raster)) as _raster), cast(nullif(cast(null as _raster),
> cast(null as _raster)) as _raster)) as _raster) end as _raster), cast(case
> when (select public.st_makeline(extent) from public.raster_columns) @
> cast(null as raster) then cast(coalesce(cast(nullif((select inhseqno from
> pg_catalog.pg_inherits limit 1 offset 2) , 8) as int4), case when (select
> col8 from public.table_with_custom_type limit 1 offset 5) ~ (select col8
> from public.table_with_custom_type limit 1 offset 4) then 93 else 93 end )
> as int4) else cast(coalesce(cast(nullif((select inhseqno from
> pg_catalog.pg_inherits limit 1 offset 2) , 8) as int4), case when (select
> col8 from public.table_with_custom_type limit 1 offset 5) ~ (select col8
> from public.table_with_custom_type limit 1 offset 4) then 93 else 93 end )
> as int4) end as int4), cast((select srid from public.spatial_ref_sys limit
> 1 offset 72) as int4)) as raster), cast(case when ((select col5 from
> public.table_with_fdw_custom_type limit 1 offset 2) ^@ cast(null as
> ltxtquery)) or (cast(null as name) !~~ (select prosrc from
> pg_catalog.pg_proc limit 1 offset 5) ) then case when true then
> cast(nullif(cast(null as _raster), cast(null as _raster)) as _raster) else
> cast(nullif(cast(null as _raster), cast(null as _raster)) as _raster) end
> else case when true then cast(nullif(cast(null as _raster), cast(null as
> _raster)) as _raster) else cast(nullif(cast(null as _raster), cast(null as
> _raster)) as _raster) end end as _raster), cast(case when
> cast(nullif(cast(null as tid), case when (EXISTS ( select
> information_schema.sql_implementation_info.comments as c0, ref_0.classoid
> as c1, ref_0.objoid as c2, (select parameter_types from
> pg_catalog.pg_prepared_statements limit 1 offset 4) as c3 from
> pg_catalog.pg_shdescription as ref_0 where true limit 100)) or (cast(null
> as raster) @ cast(null as raster)) then cast(null as tid) else cast(null as
> tid) end ) as tid) > cast(null as tid) then case when (select col13 from
> public.child_inherits_inherited_psql limit 1 offset 6) ?#
> cast(nullif(cast(null as box), cast(null as box)) as box) then 60 else 60
> end else case when (select col13 from public.child_inherits_inherited_psql
> limit 1 offset 6) ?# cast(nullif(cast(null as box), cast(null as box)) as
> box) then 60 else 60 end end as int4), cast(pg_catalog.inet_server_port()
> as int4)) returning information_schema.sql_implementation_info.comments as
> c0, information_schema.sql_implementation_info.comments as c1,
> information_schema.sql_implementation_info.integer_value as c2,
> public._postgis_pgsql_version() as c3,
> information_schema.sql_implementation_info.implementation_info_id as c4,
> public.isn_weak() as c5;
>
> Regards
> Olga
>
>
> _______________________________________________
> postgis-devel mailing list
> postgis-devel at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-devel



-- 
Darafei Praliaskouski
Support me: http://patreon.com/komzpa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-devel/attachments/20190718/81aa27f6/attachment-0001.html>


More information about the postgis-devel mailing list