Check-in [95c82fa3de]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:removing support for raster codec CharLS
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 95c82fa3de25798239fcfd3a44d7acb6b32a5f10
User & Date: sandro 2020-07-25 07:53:03
Context
2020-08-02
14:44
switching to 5.0.0-RC1 check-in: 43a21bbb45 user: sandro tags: trunk
2020-07-25
07:53
removing support for raster codec CharLS check-in: 95c82fa3de user: sandro tags: trunk
2020-07-18
16:48
implementing CreateMissingSystemTables() check-in: 985857de71 user: sandro tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/spatialite/extra_tables.c.

1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
....
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
....
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
....
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
....
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
....
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
....
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
....
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
....
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
....
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
	  sql =
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_compression_insert\n"
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "compression must be one of ''NONE'' | ''DEFLATE'' | ''DEFLATE_NO'' | "
	      "''LZMA'' | ''LZMA_NO'' | ''LZ4'' | ''LZ4_NO'' | ''ZSTD'' | ''ZSTD_NO'' | "
	      "''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | ''CCITTFAX4'' | "
	      "''CHARLS'' | ''LOSSY_JP2'' | ''LOSSLESS_JP2''')\n"
	      "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE',  'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CCITTFAX4', 'CHARLS', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_compression_update\n"
	      "BEFORE UPDATE OF 'compression' ON 'raster_coverages'"
	      "\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "compression must be one of ''NONE'' | ''DEFLATE'' | ''DEFLATE_NO'' | "
	      "''LZMA'' | ''LZMA_NO'' | ''LZ4'' | ''LZ4_NO'' | ''ZSTD'' | ''ZSTD_NO'' | "
	      "''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | ''CCITTFAX4'' | "
	      "''CHARLS'' | ''LOSSY_JP2'' | ''LOSSLESS_JP2''')\n"
	      "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CCITTFAX4', 'CHARLS', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	  sql =
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_graycompr_insert\n"
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = "
	      "'GRAYSCALE' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CHARLS', 'LOSSY_JP2', "
	      "'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	  sql =
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_graycompr_update\n"
	      "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = "
	      "'GRAYSCALE' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CHARLS', 'LOSSY_JP2', "
	      "'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_rgbcompr_insert\n"
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' "
	      "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN ("
	      "'NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', "
	      "'ZSTD', 'ZSTD_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', "
	      "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2') OR (NEW.sample_type = "
	      "'UINT16' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2'))));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_rgbcompr_update\n"
	      "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' "
	      "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN ("
	      "'NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', "
	      "'ZSTD', 'ZSTD_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', "
	      "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2') OR (NEW.sample_type = "
	      "'UINT16' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2'))));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = "
	      "'MULTIBAND' AND ((NEW.num_bands NOT IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR	"
	      "(NEW.sample_type <> 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', 'CHARLS', "
	      "'LOSSY_WEBP', 'LOSSLESS_WEBP', 'LOSSY_JP2', 'LOSSLESS_JP2')) OR "
	      "(NEW.sample_type = 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = "
	      "'MULTIBAND' AND ((NEW.num_bands NOT IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR	"
	      "(NEW.sample_type <> 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', 'CHARLS', "
	      "'LOSSY_WEBP', 'LOSSLESS_WEBP', 'LOSSY_JP2', 'LOSSLESS_JP2')) OR "
	      "(NEW.sample_type = 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'CHARLS', 'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' "
	      "AND (((NEW.sample_type NOT IN ('UINT8', 'UINT16')) AND NEW.compression "
	      "NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', "
	      "'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR ((NEW.sample_type IN ('UINT8', 'UINT16')) "
	      "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', 'CHARLS', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	      "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' "
	      "AND (((NEW.sample_type NOT IN ('UINT8', 'UINT16')) AND NEW.compression "
	      "NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', "
	      "'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR ((NEW.sample_type IN ('UINT8', 'UINT16')) "
	      "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', 'CHARLS', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;







|


|







 







|


|







 







|







 







|







 







|


|







 







|


|







 







|




|







 







|




|







 







|







 







|







1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
....
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
....
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
....
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
....
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
....
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
....
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
....
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
....
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
....
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
	  sql =
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_compression_insert\n"
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "compression must be one of ''NONE'' | ''DEFLATE'' | ''DEFLATE_NO'' | "
	      "''LZMA'' | ''LZMA_NO'' | ''LZ4'' | ''LZ4_NO'' | ''ZSTD'' | ''ZSTD_NO'' | "
	      "''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | ''CCITTFAX4'' | "
	      "''LOSSY_JP2'' | ''LOSSLESS_JP2''')\n"
	      "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE',  'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CCITTFAX4', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_compression_update\n"
	      "BEFORE UPDATE OF 'compression' ON 'raster_coverages'"
	      "\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "compression must be one of ''NONE'' | ''DEFLATE'' | ''DEFLATE_NO'' | "
	      "''LZMA'' | ''LZMA_NO'' | ''LZ4'' | ''LZ4_NO'' | ''ZSTD'' | ''ZSTD_NO'' | "
	      "''PNG'' | ''JPEG'' | ''LOSSY_WEBP'' | ''LOSSLESS_WEBP'' | ''CCITTFAX4'' | "
	      "''LOSSY_JP2'' | ''LOSSLESS_JP2''')\n"
	      "WHERE NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'CCITTFAX4', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	  sql =
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_graycompr_insert\n"
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = "
	      "'GRAYSCALE' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'LOSSY_JP2', "
	      "'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	  sql =
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_graycompr_update\n"
	      "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent GRAYSCALE compression')\nWHERE NEW.pixel_type = "
	      "'GRAYSCALE' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', 'LOSSY_JP2', "
	      "'LOSSLESS_JP2');\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_rgbcompr_insert\n"
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' "
	      "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN ("
	      "'NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', "
	      "'ZSTD', 'ZSTD_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2') OR (NEW.sample_type = "
	      "'UINT16' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2'))));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "CREATE TRIGGER IF NOT EXISTS raster_coverages_rgbcompr_update\n"
	      "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent RGB compression')\nWHERE NEW.pixel_type = 'RGB' "
	      "AND ((NEW.sample_type = 'UINT8' AND NEW.compression NOT IN ("
	      "'NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', "
	      "'ZSTD', 'ZSTD_NO', 'PNG', 'JPEG', 'LOSSY_WEBP', 'LOSSLESS_WEBP', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2') OR (NEW.sample_type = "
	      "'UINT16' AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', "
	      "'LZMA', 'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2'))));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = "
	      "'MULTIBAND' AND ((NEW.num_bands NOT IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR	"
	      "(NEW.sample_type <> 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_WEBP', 'LOSSLESS_WEBP', 'LOSSY_JP2', 'LOSSLESS_JP2')) OR "
	      "(NEW.sample_type = 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent MULTIBAND compression')\nWHERE NEW.pixel_type = "
	      "'MULTIBAND' AND ((NEW.num_bands NOT IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR	"
	      "(NEW.sample_type <> 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_WEBP', 'LOSSLESS_WEBP', 'LOSSY_JP2', 'LOSSLESS_JP2')) OR "
	      "(NEW.sample_type = 'UINT16' AND NEW.num_bands IN (3, 4) AND "
	      "NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
	    }
................................................................................
	      "BEFORE INSERT ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT,'insert on raster_coverages violates constraint: "
	      "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' "
	      "AND (((NEW.sample_type NOT IN ('UINT8', 'UINT16')) AND NEW.compression "
	      "NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', "
	      "'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR ((NEW.sample_type IN ('UINT8', 'UINT16')) "
	      "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;
................................................................................
	      "BEFORE UPDATE ON 'raster_coverages'\nFOR EACH ROW BEGIN\n"
	      "SELECT RAISE(ABORT, 'update on raster_coverages violates constraint: "
	      "inconsistent DATAGRID compression')\nWHERE NEW.pixel_type = 'DATAGRID' "
	      "AND (((NEW.sample_type NOT IN ('UINT8', 'UINT16')) AND NEW.compression "
	      "NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', 'LZMA_NO', 'LZ4', "
	      "'LZ4_NO', 'ZSTD', 'ZSTD_NO')) OR ((NEW.sample_type IN ('UINT8', 'UINT16')) "
	      "AND NEW.compression NOT IN ('NONE', 'DEFLATE', 'DEFLATE_NO', 'LZMA', "
	      "'LZMA_NO', 'LZ4', 'LZ4_NO', 'ZSTD', 'ZSTD_NO', 'PNG', "
	      "'LOSSY_JP2', 'LOSSLESS_JP2')));\nEND";
	  ret = sqlite3_exec (sqlite, sql, NULL, NULL, &err_msg);
	  if (ret != SQLITE_OK)
	    {
		spatialite_e ("SQL error: %s\n", err_msg);
		sqlite3_free (err_msg);
		return 0;

Changes to test/sql_stmt_tests/Makefile.

187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
PACKAGE_STRING = libspatialite 5.0.0-beta1
PACKAGE_TARNAME = libspatialite
PACKAGE_URL = 
PACKAGE_VERSION = 5.0.0-beta1
PATH_SEPARATOR = :
PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = 
PKG_CONFIG_PATH = 
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE = 
SHELL = /bin/sh
STRIP = strip
VERSION = 5.0.0-beta1
abs_builddir = /home/sandro/fossil/libspatialite/test/sql_stmt_tests







|







187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
PACKAGE_STRING = libspatialite 5.0.0-beta1
PACKAGE_TARNAME = libspatialite
PACKAGE_URL = 
PACKAGE_VERSION = 5.0.0-beta1
PATH_SEPARATOR = :
PKG_CONFIG = /usr/bin/pkg-config
PKG_CONFIG_LIBDIR = 
PKG_CONFIG_PATH = /usr/local/lib/pkgconfig
RANLIB = ranlib
SED = /usr/bin/sed
SET_MAKE = 
SHELL = /bin/sh
STRIP = strip
VERSION = 5.0.0-beta1
abs_builddir = /home/sandro/fossil/libspatialite/test/sql_stmt_tests