[GIS]srs cache use memory from user tenant instead of tenant 500
This commit is contained in:
19
deps/oblib/src/lib/geo/ob_geo_to_s2_visitor.cpp
vendored
19
deps/oblib/src/lib/geo/ob_geo_to_s2_visitor.cpp
vendored
@ -245,8 +245,14 @@ int ObWkbToS2Visitor::visit(ObIWkbGeomLineString *geo)
|
||||
int ObWkbToS2Visitor::visit(ObIWkbGeogPolygon *geo)
|
||||
{
|
||||
INIT_SUCC(ret);
|
||||
s2v_.emplace_back(MakeS2Polygon<ObIWkbGeogPolygon, ObWkbGeogPolygon,
|
||||
ObWkbGeogLinearRing, ObWkbGeogPolygonInnerRings>(geo));
|
||||
if (geo->length() < WKB_COMMON_WKB_HEADER_LEN) {
|
||||
ret = OB_ERR_GIS_INVALID_DATA;
|
||||
LOG_WARN("invalid swkb length", K(ret), K(geo->length()));
|
||||
} else {
|
||||
s2v_.emplace_back(MakeS2Polygon<ObIWkbGeogPolygon, ObWkbGeogPolygon,
|
||||
ObWkbGeogLinearRing, ObWkbGeogPolygonInnerRings>(geo));
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -254,8 +260,13 @@ int ObWkbToS2Visitor::visit(ObIWkbGeomPolygon *geo)
|
||||
{
|
||||
INIT_SUCC(ret);
|
||||
if (!invalid_) {
|
||||
s2v_.emplace_back(MakeProjS2Polygon<ObIWkbGeomPolygon, ObWkbGeomPolygon,
|
||||
ObWkbGeomLinearRing, ObWkbGeomPolygonInnerRings>(geo));
|
||||
if (geo->length() < WKB_COMMON_WKB_HEADER_LEN) {
|
||||
ret = OB_ERR_GIS_INVALID_DATA;
|
||||
LOG_WARN("invalid swkb length", K(ret), K(geo->length()));
|
||||
} else {
|
||||
s2v_.emplace_back(MakeProjS2Polygon<ObIWkbGeomPolygon, ObWkbGeomPolygon,
|
||||
ObWkbGeomLinearRing, ObWkbGeomPolygonInnerRings>(geo));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -232,7 +232,10 @@ int ObGeoToWktVisitor::appendPolygon(T_IBIN *geo)
|
||||
reserve_len += in_multi_visit_ ? 0 : strlen(type_name);
|
||||
reserve_len += (in_multi_visit_ || in_colloction_visit()) ? 1 : 0;
|
||||
// [type_name][(][(][x1][ ][y1][,][x2][ ][y2][,][x3][ ][y3][)][)]
|
||||
if (OB_FAIL(buffer_.reserve(reserve_len))) {
|
||||
if (geo->length() < WKB_COMMON_WKB_HEADER_LEN) {
|
||||
ret = OB_ERR_GIS_INVALID_DATA;
|
||||
LOG_WARN("invalid wkb length", K(ret), K(geo->length()));
|
||||
} else if (OB_FAIL(buffer_.reserve(reserve_len))) {
|
||||
LOG_WARN("fail to reserve memory for buffer_", K(ret), K(reserve_len));
|
||||
} else if (!in_multi_visit_ && OB_FAIL(buffer_.append(type_name))) {
|
||||
LOG_WARN("fail to append buffer_", K(ret), K(in_multi_visit_), K(type_name));
|
||||
|
14
deps/oblib/src/lib/geo/ob_srs_info.cpp
vendored
14
deps/oblib/src/lib/geo/ob_srs_info.cpp
vendored
@ -83,7 +83,8 @@ int ObSrsUtils::check_is_wgs84(const ObGeographicRs *rs, bool &is_wgs84)
|
||||
}
|
||||
|
||||
// todo@dazhi: compare the param_name and param_alias when epsg isnot comparable ?
|
||||
int ObSrsUtils::get_simple_proj_params(const ObProjectionPrams &parsed_params, ObVector<ObSimpleProjPram> ¶ms)
|
||||
int ObSrsUtils::get_simple_proj_params(const ObProjectionPrams &parsed_params,
|
||||
ObVector<ObSimpleProjPram, common::ObArenaAllocator> ¶ms)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
FOREACH_X(parsed_param, parsed_params.vals, OB_SUCC(ret)) {
|
||||
@ -297,7 +298,7 @@ int ObSpatialReferenceSystemBase::create_project_srs(ObIAllocator* allocator, ui
|
||||
|
||||
template <typename SRS_T, typename RS_T>
|
||||
int ObSpatialReferenceSystemBase::create_srs_internal(ObIAllocator* allocator, uint64_t srs_id,
|
||||
const RS_T *rs, ObSpatialReferenceSystemBase *&srs_info)
|
||||
const RS_T *rs, ObSpatialReferenceSystemBase *&srs_info)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
SRS_T *tmp_srs_info = NULL;
|
||||
@ -306,7 +307,7 @@ int ObSpatialReferenceSystemBase::create_srs_internal(ObIAllocator* allocator, u
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_WARN("alloc projected srs failed", K(ret), K(srs_id));
|
||||
} else {
|
||||
tmp_srs_info = new(buf)SRS_T();
|
||||
tmp_srs_info = new(buf)SRS_T(static_cast<common::ObArenaAllocator*>(allocator));
|
||||
if (OB_FAIL(tmp_srs_info->init(srs_id, rs))) {
|
||||
LOG_WARN("srs info init failed", K(ret), KP(rs), K(srs_id));
|
||||
} else {
|
||||
@ -326,9 +327,10 @@ int ObSpatialReferenceSystemBase::create_geographic_srs(ObIAllocator* allocator,
|
||||
return create_srs_internal<ObGeographicSrs, ObGeographicRs>(allocator, srs_id, rs, srs_info);
|
||||
}
|
||||
|
||||
ObGeographicSrs::ObGeographicSrs() : semi_major_axis_(NAN), inverse_flattening_(NAN),
|
||||
is_wgs84_(false), prime_meridian_(NAN), angular_factor_(NAN), bounds_info_(),
|
||||
proj4text_()
|
||||
ObGeographicSrs::ObGeographicSrs(common::ObArenaAllocator* alloc)
|
||||
: semi_major_axis_(NAN), inverse_flattening_(NAN),
|
||||
is_wgs84_(false), prime_meridian_(NAN), angular_factor_(NAN), bounds_info_(),
|
||||
proj4text_()
|
||||
{
|
||||
for (uint8_t i = 0; i < WGS84_PARA_NUM; i++) {
|
||||
wgs84_[i] = NAN;
|
||||
|
91
deps/oblib/src/lib/geo/ob_srs_info.h
vendored
91
deps/oblib/src/lib/geo/ob_srs_info.h
vendored
@ -276,7 +276,7 @@ private:
|
||||
class ObGeographicSrs : public ObSpatialReferenceSystemBase
|
||||
{
|
||||
public:
|
||||
ObGeographicSrs();
|
||||
ObGeographicSrs(common::ObArenaAllocator* alloc);
|
||||
virtual ~ObGeographicSrs() {}
|
||||
ObSrsType srs_type() const override { return ObSrsType::GEOGRAPHIC_SRS; }
|
||||
virtual int init(uint32_t srid, const ObGeographicRs *rs);
|
||||
@ -320,7 +320,9 @@ struct ObSimpleProjPram
|
||||
class ObProjectedSrs : public ObSpatialReferenceSystemBase
|
||||
{
|
||||
public:
|
||||
ObProjectedSrs() : geographic_srs_(), linear_unit_(NAN)
|
||||
ObProjectedSrs(common::ObArenaAllocator *allocator) : geographic_srs_(allocator),
|
||||
linear_unit_(NAN),
|
||||
simple_proj_prams_(allocator)
|
||||
{
|
||||
for (int i = 0; i < AXIS_DIRECTION_NUM; i++) {
|
||||
axis_dir_[i] = ObAxisDirection::INIT;
|
||||
@ -355,7 +357,7 @@ private:
|
||||
ObAxisDirection axis_dir_[AXIS_DIRECTION_NUM]; // direction of x and y axis;
|
||||
|
||||
protected:
|
||||
ObVector<ObSimpleProjPram> simple_proj_prams_; // should be filled by subclass
|
||||
ObVector<ObSimpleProjPram, common::ObArenaAllocator> simple_proj_prams_; // should be filled by subclass
|
||||
};
|
||||
|
||||
#define OB_GEO_REG_PROJ_PARAMS(...) \
|
||||
@ -372,7 +374,7 @@ for (int32_t i = 0; i < ARRAYSIZEOF(arr); ++i) { \
|
||||
class ObUnknownProjectedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObUnknownProjectedSrs() {}
|
||||
ObUnknownProjectedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObUnknownProjectedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::UNKNOWN; };
|
||||
@ -385,7 +387,7 @@ public:
|
||||
class ObPopularVisualPseudoMercatorSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObPopularVisualPseudoMercatorSrs() {}
|
||||
ObPopularVisualPseudoMercatorSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObPopularVisualPseudoMercatorSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::POPULAR_VISUAL_PSEUDO_MERCATOR; };
|
||||
@ -398,7 +400,7 @@ public:
|
||||
class ObLambertAzimuthalEqualAreaSphericalSrs: public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertAzimuthalEqualAreaSphericalSrs() {}
|
||||
ObLambertAzimuthalEqualAreaSphericalSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertAzimuthalEqualAreaSphericalSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_AZIMUTHAL_EQUAL_AREA_SPHERICAL; };
|
||||
@ -411,7 +413,7 @@ public:
|
||||
class ObEquidistantCylindricalSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObEquidistantCylindricalSrs() {}
|
||||
ObEquidistantCylindricalSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObEquidistantCylindricalSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::EQUIDISTANT_CYLINDRICAL; };
|
||||
@ -424,7 +426,7 @@ public:
|
||||
class ObEquidistantCylindricalSphericalSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObEquidistantCylindricalSphericalSrs() {}
|
||||
ObEquidistantCylindricalSphericalSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObEquidistantCylindricalSphericalSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::EQUIDISTANT_CYLINDRICAL_SPHERICAL; };
|
||||
@ -437,7 +439,7 @@ public:
|
||||
class ObKrovakNorthOrientatedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObKrovakNorthOrientatedSrs() {}
|
||||
ObKrovakNorthOrientatedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObKrovakNorthOrientatedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::KROVAK_NORTH_ORIENTATED; };
|
||||
@ -450,7 +452,7 @@ public:
|
||||
class ObKrovakModifiedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObKrovakModifiedSrs() {}
|
||||
ObKrovakModifiedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObKrovakModifiedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::KROVAK_MODIFIED; };
|
||||
@ -463,7 +465,7 @@ public:
|
||||
class ObKrovakModifiedNorthOrientatedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObKrovakModifiedNorthOrientatedSrs() {}
|
||||
ObKrovakModifiedNorthOrientatedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObKrovakModifiedNorthOrientatedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::KROVAK_MODIFIED_NORTH_ORIENTATED; };
|
||||
@ -476,7 +478,7 @@ public:
|
||||
class ObLambertConicConformal2SPMichiganSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertConicConformal2SPMichiganSrs() {}
|
||||
ObLambertConicConformal2SPMichiganSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertConicConformal2SPMichiganSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CONIC_CONFORMAL_2SP_MICHIGAN; };
|
||||
@ -489,7 +491,7 @@ public:
|
||||
class ObColombiaUrbanSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObColombiaUrbanSrs() {}
|
||||
ObColombiaUrbanSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObColombiaUrbanSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::COLOMBIA_URBAN; };
|
||||
@ -502,7 +504,7 @@ public:
|
||||
class ObLambertConicConformal1SPSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertConicConformal1SPSrs() {}
|
||||
ObLambertConicConformal1SPSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertConicConformal1SPSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CONIC_CONFORMAL_1SP; };
|
||||
@ -515,7 +517,7 @@ public:
|
||||
class ObLambertConicConformal2SPSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertConicConformal2SPSrs() {}
|
||||
ObLambertConicConformal2SPSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertConicConformal2SPSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CONIC_CONFORMAL_2SP; };
|
||||
@ -528,7 +530,7 @@ public:
|
||||
class ObLambertConicConformal2SPBelgiumSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertConicConformal2SPBelgiumSrs() {}
|
||||
ObLambertConicConformal2SPBelgiumSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertConicConformal2SPBelgiumSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CONIC_CONFORMAL_2SP_BELGIUM; };
|
||||
@ -541,7 +543,7 @@ public:
|
||||
class ObMercatorvariantASrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObMercatorvariantASrs() {}
|
||||
ObMercatorvariantASrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObMercatorvariantASrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::MERCATOR_VARIANT_A; };
|
||||
@ -554,7 +556,7 @@ public:
|
||||
class ObMercatorvariantBSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObMercatorvariantBSrs() {}
|
||||
ObMercatorvariantBSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObMercatorvariantBSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::MERCATOR_VARIANT_B; };
|
||||
@ -567,7 +569,7 @@ public:
|
||||
class ObCassiniSoldnerSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObCassiniSoldnerSrs() {}
|
||||
ObCassiniSoldnerSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObCassiniSoldnerSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::MERCATOR_VARIANT_B; };
|
||||
@ -580,7 +582,7 @@ public:
|
||||
class ObTransverseMercatorSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObTransverseMercatorSrs() {}
|
||||
ObTransverseMercatorSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObTransverseMercatorSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::TRANSVERSE_MERCATOR; };
|
||||
@ -593,7 +595,7 @@ public:
|
||||
class ObTransverseMercatorSouthOrientatedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObTransverseMercatorSouthOrientatedSrs() {}
|
||||
ObTransverseMercatorSouthOrientatedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObTransverseMercatorSouthOrientatedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::TRANSVERSE_MERCATOR_SOUTH_ORIENTATED; };
|
||||
@ -606,7 +608,7 @@ public:
|
||||
class ObObliqueStereographicSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObObliqueStereographicSrs() {}
|
||||
ObObliqueStereographicSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObObliqueStereographicSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::OBLIQUE_STEREOGRAPHIC; };
|
||||
@ -619,7 +621,7 @@ public:
|
||||
class ObPolarStereographicVariantASrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObPolarStereographicVariantASrs() {}
|
||||
ObPolarStereographicVariantASrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObPolarStereographicVariantASrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::POLAR_STEREOGRAPHIC_VARIANT_A; };
|
||||
@ -632,7 +634,7 @@ public:
|
||||
class ObNewZealandMapGridSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObNewZealandMapGridSrs() {}
|
||||
ObNewZealandMapGridSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObNewZealandMapGridSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::NEW_ZEALAND_MAP_GRID; };
|
||||
@ -645,7 +647,7 @@ public:
|
||||
class ObHotineObliqueMercatorvariantASrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObHotineObliqueMercatorvariantASrs() {}
|
||||
ObHotineObliqueMercatorvariantASrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObHotineObliqueMercatorvariantASrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::HOTINE_OBLIQUE_MERCATOR_VARIANT_A; };
|
||||
@ -658,7 +660,7 @@ public:
|
||||
class ObLabordeObliqueMercatorSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLabordeObliqueMercatorSrs() {}
|
||||
ObLabordeObliqueMercatorSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLabordeObliqueMercatorSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LABORDE_OBLIQUE_MERCATOR; };
|
||||
@ -671,7 +673,7 @@ public:
|
||||
class ObHotineObliqueMercatorVariantBSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObHotineObliqueMercatorVariantBSrs() {}
|
||||
ObHotineObliqueMercatorVariantBSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObHotineObliqueMercatorVariantBSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::HOTINE_OBLIQUE_MERCATOR_VARIANT_B; };
|
||||
@ -684,7 +686,7 @@ public:
|
||||
class ObTunisiaMiningGridSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObTunisiaMiningGridSrs() {}
|
||||
ObTunisiaMiningGridSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObTunisiaMiningGridSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::TUNISIA_MINING_GRID; };
|
||||
@ -697,7 +699,7 @@ public:
|
||||
class ObLambertConicNearConformalSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertConicNearConformalSrs() {}
|
||||
ObLambertConicNearConformalSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertConicNearConformalSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CONIC_NEAR_CONFORMAL; };
|
||||
@ -710,7 +712,7 @@ public:
|
||||
class ObAmericanPolyconicSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObAmericanPolyconicSrs() {}
|
||||
ObAmericanPolyconicSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObAmericanPolyconicSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::AMERICAN_POLYCONIC; };
|
||||
@ -723,7 +725,7 @@ public:
|
||||
class ObKrovakSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObKrovakSrs() {}
|
||||
ObKrovakSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObKrovakSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::KROVAK; };
|
||||
@ -736,7 +738,7 @@ public:
|
||||
class ObLambertAzimuthalEqualAreaSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertAzimuthalEqualAreaSrs() {}
|
||||
ObLambertAzimuthalEqualAreaSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertAzimuthalEqualAreaSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_AZIMUTHAL_EQUAL_AREA; };
|
||||
@ -749,7 +751,7 @@ public:
|
||||
class ObAlbersEqualAreaSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObAlbersEqualAreaSrs() {}
|
||||
ObAlbersEqualAreaSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObAlbersEqualAreaSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::ALBERS_EQUAL_AREA; };
|
||||
@ -762,7 +764,7 @@ public:
|
||||
class ObTransverseMercatorZonedGridSystemSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObTransverseMercatorZonedGridSystemSrs() {}
|
||||
ObTransverseMercatorZonedGridSystemSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObTransverseMercatorZonedGridSystemSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::TRANSVERSE_MERCATOR_ZONED_GRID_SYSTEM; };
|
||||
@ -775,7 +777,7 @@ public:
|
||||
class ObLambertConicConformalWestOrientatedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertConicConformalWestOrientatedSrs() {}
|
||||
ObLambertConicConformalWestOrientatedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertConicConformalWestOrientatedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CONIC_CONFORMAL_WEST_ORIENTATED; };
|
||||
@ -788,7 +790,7 @@ public:
|
||||
class ObBonneSouthOrientatedSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObBonneSouthOrientatedSrs() {}
|
||||
ObBonneSouthOrientatedSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObBonneSouthOrientatedSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::BONNE_SOUTH_ORIENTATED; };
|
||||
@ -801,7 +803,7 @@ public:
|
||||
class ObPolarStereographicVariantBSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObPolarStereographicVariantBSrs() {}
|
||||
ObPolarStereographicVariantBSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObPolarStereographicVariantBSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::POLAR_STEREOGRAPHIC_VARIANT_B; };
|
||||
@ -814,7 +816,7 @@ public:
|
||||
class ObPolarStereographicVariantCSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObPolarStereographicVariantCSrs() {}
|
||||
ObPolarStereographicVariantCSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObPolarStereographicVariantCSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::POLAR_STEREOGRAPHIC_VARIANT_C; };
|
||||
@ -827,7 +829,7 @@ public:
|
||||
class ObGuamProjectionSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObGuamProjectionSrs() {}
|
||||
ObGuamProjectionSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObGuamProjectionSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::GUAM_PROJECTION; };
|
||||
@ -840,7 +842,7 @@ public:
|
||||
class ObModifiedAzimuthalEquidistantSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObModifiedAzimuthalEquidistantSrs() {}
|
||||
ObModifiedAzimuthalEquidistantSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObModifiedAzimuthalEquidistantSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::MODIFIED_AZIMUTHAL_EQUIDISTANT; };
|
||||
@ -853,7 +855,7 @@ public:
|
||||
class ObHyperbolicCassiniSoldnerSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObHyperbolicCassiniSoldnerSrs() {}
|
||||
ObHyperbolicCassiniSoldnerSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObHyperbolicCassiniSoldnerSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::HYPERBOLIC_CASSINI_SOLDNER; };
|
||||
@ -866,7 +868,7 @@ public:
|
||||
class ObLambertCylindricalEqualAreaSphericalSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertCylindricalEqualAreaSphericalSrs() {}
|
||||
ObLambertCylindricalEqualAreaSphericalSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertCylindricalEqualAreaSphericalSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CYLINDRICAL_EQUAL_AREA_SPHERICAL; };
|
||||
@ -879,7 +881,7 @@ public:
|
||||
class ObLambertCylindricalEqualAreaSrs : public ObProjectedSrs
|
||||
{
|
||||
public:
|
||||
ObLambertCylindricalEqualAreaSrs() {}
|
||||
ObLambertCylindricalEqualAreaSrs(common::ObArenaAllocator *allocator) : ObProjectedSrs(allocator) {}
|
||||
virtual ~ObLambertCylindricalEqualAreaSrs() {}
|
||||
|
||||
ObProjectionType get_projection_type() const override { return ObProjectionType::LAMBERT_CYLINDRICAL_EQUAL_AREA; };
|
||||
@ -929,7 +931,8 @@ public:
|
||||
~ObSrsUtils() {}
|
||||
|
||||
static int check_is_wgs84(const ObGeographicRs *rs, bool &is_wgs84);
|
||||
static int get_simple_proj_params(const ObProjectionPrams &parsed_params, ObVector<ObSimpleProjPram> ¶ms);
|
||||
static int get_simple_proj_params(const ObProjectionPrams &parsed_params,
|
||||
ObVector<ObSimpleProjPram, common::ObArenaAllocator> ¶ms);
|
||||
static int check_authority(const ObRsAuthority& auth, const char *target_auth_name, int target_auth_code, bool allow_invalid, bool &res);
|
||||
|
||||
constexpr static double WGS_SEMI_MAJOR_AXIS = 6378137.0;
|
||||
|
2
deps/oblib/src/lib/thread/thread_define.h
vendored
2
deps/oblib/src/lib/thread/thread_define.h
vendored
@ -35,5 +35,5 @@ TG_DEF(IO_BENCHMARK, IO_BENCHMARK, "", TG_DYNAMIC, THREAD_POOL, ThreadCountPair(
|
||||
TG_DEF(replica_control, replica_control, "", TG_STATIC, THREAD_POOL, ThreadCountPair(1, 1))
|
||||
TG_DEF(TIMEZONE_MGR, TimezoneMgr, "", TG_STATIC, TIMER)
|
||||
TG_DEF(MASTER_KEY_MGR, MasterKeyMgr, "", TG_STATIC, QUEUE_THREAD, ThreadCountPair(1 ,1), 100)
|
||||
TG_DEF(SRS_MGR, SrsMgr, "", TG_STATIC, TIMER)
|
||||
TG_DEF(SRS_MGR, SrsMgr, "", TG_STATIC, TIMER, 128)
|
||||
#endif
|
||||
|
@ -368,7 +368,7 @@ int ObTenantSrs::fetch_all_srs(ObSrsCacheSnapShot *&srs_snapshot, bool is_sys_sr
|
||||
const ObSrsItem *tmp = NULL;
|
||||
res_count++;
|
||||
if (OB_ISNULL(snapshot)) {
|
||||
snapshot = OB_NEW(ObSrsCacheSnapShot, ObModIds::OMT, snapshot_type);
|
||||
snapshot = OB_NEW(ObSrsCacheSnapShot, ObModIds::OMT, snapshot_type, tenant_id_);
|
||||
if (OB_ISNULL(snapshot)) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_WARN("failed to create ObSrsCacheSnapShot", K(ret));
|
||||
|
@ -47,10 +47,11 @@ class ObSrsCacheSnapShot
|
||||
{
|
||||
public:
|
||||
static const uint32_t SRS_ITEM_BUCKET_NUM = 6144;
|
||||
explicit ObSrsCacheSnapShot(ObSrsCacheType srs_type)
|
||||
: allocator_("SrsSnapShot"), srs_type_(srs_type), srs_version_(0), ref_count_(0) {}
|
||||
explicit ObSrsCacheSnapShot(ObSrsCacheType srs_type, uint64_t tenant_id)
|
||||
: allocator_("SrsSnapShot", OB_MALLOC_NORMAL_BLOCK_SIZE, tenant_id),
|
||||
tenant_id_(tenant_id), srs_type_(srs_type), srs_version_(0), ref_count_(0) {}
|
||||
virtual ~ObSrsCacheSnapShot() { srs_item_map_.destroy(); }
|
||||
int init() { return srs_item_map_.create(SRS_ITEM_BUCKET_NUM, "TenantSrs", "TenantSrsItem"); }
|
||||
int init() { return srs_item_map_.create(SRS_ITEM_BUCKET_NUM, "SrsSnapShot", "SrsSnapShot", tenant_id_); }
|
||||
int add_srs_item(uint64_t srid, const common::ObSrsItem* srs_item) { return srs_item_map_.set_refactored(srid, srs_item); }
|
||||
int get_srs_item(uint64_t srid, const common::ObSrsItem *&srs_item);
|
||||
void set_srs_version(uint64_t version) { srs_version_ = version; }
|
||||
@ -65,6 +66,7 @@ public:
|
||||
|
||||
private:
|
||||
common::ObArenaAllocator allocator_;
|
||||
uint64_t tenant_id_;
|
||||
ObSrsCacheType srs_type_;
|
||||
uint64_t srs_version_;
|
||||
volatile int64_t ref_count_;
|
||||
|
Reference in New Issue
Block a user