华为云用户手册

  • in_range_float4_int16(float4, float4, int16, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_float4_int16(1.0::float4, 1.9::float4, 1::int16, true, true); in_range_float4_int16 ----------------------- f (1 row)
  • in_range_float8_int2(float8, float8, int2, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_float8_int2(1.0::float8, 1.9::float8, 1::int2, true, true); in_range_float8_int2 ---------------------- f (1 row)
  • in_range_float4_int1(float4, float4, int1, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_float4_int1(1.0::float4, 1.9::float4, 1::int1, true, true); in_range_float4_int1 ---------------------- f (1 row)
  • in_range_timetz_interval(timetz, timetz, interval, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_timetz_interval('00:00:00+00', '12:00:00+00', interval '13' hour, true, true); in_range_timetz_interval -------------------------- f (1 row)
  • in_range_int8_numeric(int8, int8, numeric, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int8_numeric(1::int8, 2::int8, 0.9::numeric(10,4), true, true); in_range_int8_numeric ----------------------- t (1 row)
  • in_range_timestamp_interval(timestamp, timestamp, interval, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean gaussdb=# SELECT in_range_timestamp_interval('12-10-2010 11:25:00', '10-11-2010 11:26:00', interval '60' day, false, true); in_range_timestamp_interval ----------------------------- t (1 row)
  • in_range_time_interval(time, time, interval, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_time_interval('00:00:00', '12:00:00', interval '13' hour, true, true); in_range_time_interval ------------------------ f (1 row)
  • in_range_int4_numeric(int4, int4, numeric, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int4_numeric(1::int4, 2::int4, 0.9::numeric(10,4), true, true); in_range_int4_numeric ----------------------- t (1 row)
  • in_range_int1_numeric(int1, int1, numeric, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int1_numeric(1::int1, 2::int1, 0.9::numeric(10,4), true, true); in_range_int1_numeric ----------------------- t (1 row)
  • in_range_numeric_float4(numeric, numeric, float4, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_numeric_float4(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::float4, true, true); in_range_numeric_float4 ------------------------- f (1 row)
  • in_range_timestamptz_interval(timestamptz, timestamptz, interval, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_timestamptz_interval('12-10-2010 11:25:00+00', '10-11-2010 11:26:00+00', interval '60' day, false, true); in_range_timestamptz_interval ------------------------------- t (1 row)
  • in_range_int2_numeric(int2, int2, numeric, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int2_numeric(1::int2, 2::int2, 0.9::numeric(10,4), true, true); in_range_int2_numeric ----------------------- t (1 row)
  • in_range_numeric_float8(numeric, numeric, float8, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_numeric_float8(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::float8, true, true); in_range_numeric_float8 ------------------------- f (1 row)
  • in_range_int4_float8(int4, int4, float8, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int4_float8(1::int4, 2::int4, 0.9::float8, true, true); in_range_int4_float8 ---------------------- t (1 row)
  • in_range_int8_float8(int8, int8, float8, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int8_float8(1::int8, 2::int8, 0.9::float8, true, true); in_range_int8_float8 ---------------------- t (1 row)
  • in_range_int16_int16(int16, int16, int16, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int16_int16(1::int16, 1::int16, 1::int16, true, true); in_range_int16_int16 ---------------------- f (1 row) gaussdb=# SELECT in_range_int16_int16(1::int16, 4::int16, 2::int16, true, true); in_range_int16_int16 ---------------------- t (1 row)
  • in_range_int2_int16(int2, int2, int16, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int2_int16(1::int2, 1::int2, 1::int16, true, true); in_range_int2_int16 --------------------- f (1 row) gaussdb=# SELECT in_range_int2_int16(1::int2, 4::int2, 2::int16, true, true); in_range_int2_int16 --------------------- t
  • in_range_int8_int16(int8, int8, int16, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int8_int16(1::int8, 1::int8, 1::int16, true, true); in_range_int8_int16 --------------------- f (1 row) gaussdb=# SELECT in_range_int8_int16(1::int8, 4::int8, 2::int16, true, true); in_range_int8_int16 --------------------- t (1 row)
  • in_range_int1_int16(int1, int1, int16, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean gaussdb=# SELECT in_range_int1_int16(1::int1, 1::int1, 1::int16, true, true); in_range_int1_int16 --------------------- f (1 row) gaussdb=# SELECT in_range_int1_int16(1::int1, 4::int1, 2::int16, true, true); in_range_int1_int16 --------------------- t (1 row)
  • in_range_float4_float8(float4, float4, float8, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_float4_float8(1.0::float4, 1.9::float4, 1.0::float8, true, true); in_range_float4_float8 ------------------------ f (1 row)
  • in_range_interval_interval(interval, interval, interval, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_interval_interval(interval '13' hour, interval '10' hour, interval '3' hour, false, true); in_range_interval_interval ---------------------------- t (1 row)
  • numrange(numeric, numeric, [text]) 描述:表示一个范围。 返回类型:范围元素类型 示例: 1 2 3 4 5 6 7 8 9 10 gaussdb=# SELECT numrange(1.1,2.2) AS RESULT; result -------- [1.1,2.2) (1 row) gaussdb=# SELECT numrange(1.1,2.2, '()') AS RESULT; result -------- (1.1,2.2) (1 row)
  • in_range_numeric_numeric(numeric, numeric, numeric, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_numeric_numeric(1.0::numeric(10,4), 1.9::numeric(10,4), 1.0::numeric(10,4), true, true); in_range_numeric_numeric -------------------------- f (1 row)
  • in_range_int4_int16(int4, int4, int16, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_int4_int16(1::int4, 1::int4, 1::int16, true, true); in_range_int4_int16 --------------------- f (1 row) gaussdb=# SELECT in_range_int4_int16(1::int4, 4::int4, 2::int16, true, true); in_range_int4_int16 --------------------- t (1 row)
  • elem_contained_by_range(anyelement, anyrange) 描述:判断元素是否在范围内。 返回类型:Boolean 示例: gaussdb=# SELECT elem_contained_by_range('2', numrange(1.1,2.2)); elem_contained_by_range ------------------------- t (1 row)
  • in_range_float8_float8(float8, float8, float8, boolean, boolean) 描述:判断第一个参数,是否在第二个参数加/减第三个参数范围内。 参数说明: 第一个参数:需要被判断是否在范围内的数。 第二个参数:当前范围的起始值。 第三个参数:范围值,必须为正数。 第四个参数:当前操作是减操作或加操作。 TRUE:第二个参数减第三个参数再与第一个参数比较大小。 FALSE:第二个参数加第三个参数再与第一个参数比较大小。 第五个参数:第二个参数和第三个参数的运算结果与第一个参数做比较。 TRUE:判断结果是否大于第一个参数。若结果大于等于第一个参数则函数返回值为TRUE,反之为FALSE。 FALSE:判断结果是否小于等于第一个参数。若结果小于等于第一个参数则函数返回值为TRUE,反之为FALSE。 返回类型:Boolean 示例: gaussdb=# SELECT in_range_float8_float8(1.0::float8, 1.9::float8, 1.0::float8, true, true); in_range_float8_float8 ------------------------ f (1 row)
  • GS_SPM_PLAN_HISTORY GS_SPM_PLAN_HISTORY系统表是用于记录计划跳变历史的系统表,具备SYSADMIN权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1 GS_SPM_PLAN_HISTORY字段 名称 类型 描述 sql_hash bigint SPM中SQL的唯一标识。 plan_hash bigint plan id。 plan_hash_previous bigint 上一次使用的计划的plan id,若不存在上一次计划则为0。 userid oid 创建跳变历史的用户。 creation_time timestamp with time zone 创建跳变历史的时间。 父主题: SPM计划管理
  • gs_session_alt_status() 描述:查询当前用户所执行的计划外ALT会话的可恢复状态。这里不包括不支持的驱动接口调用所导致的会话状态变更。不可恢复的原因仅提供基本类别;如果是不支持的GUC参数、SQL或系统函数,请查询ALT支持的列表来确认应用程序调用的请求是否在支持范围内,详见《特性指南》的“计划外应用无损透明”章节中对GUC参数、SQL语法和系统函数的ALT支持策略列表描述。 返回值类型:setof record。 名称 类型 描述。 sessionid integer 会话ID。 sessionreplaystatus text ALT会话恢复的状态。 enable: 可恢复。 disable:不可恢复。 xactreplaystatus text ALT事务重放的状态。 enable: 可恢复。 disable:不可恢复。 reason text 不可恢复的原因简述。 示例: 1 2 3 4 5 6 gaussdb=# SELECT * FROM GS_SESSION_ALT_STATUS(); sessionid | sessionreplaystatus | xactreplaystatus | reason -----------------+---------------------+------------------+---------------------------------------------------------------------------------------- 140564166014720 | disable | disable | Session data types(valid after transaction is finished):unsupported set from current, + | | | Transaction non-replayable types:advisory lock, (1 row)
  • gs_statio_get_all_partitions_stats() 描述:获取所有分区的I/O统计信息。 返回值类型:setof record。 上述五个函数示例: 运行时统计信息上报是异步的,且基于UDP协议,后台线程处理可能存在延迟和丢包,此处示例预期仅供参考。 事务外统计信息查询: gaussdb=# CREATE TABLE part_tab1 gaussdb-# ( gaussdb(# a int, b int gaussdb(# ) gaussdb-# PARTITION BY RANGE(b) gaussdb-# ( gaussdb(# PARTITION P1 VALUES LESS THAN(10), gaussdb(# PARTITION P2 VALUES LESS THAN(20), gaussdb(# PARTITION P3 VALUES LESS THAN(MAXVALUE) gaussdb(# ); CREATE TABLE gaussdb=# CREATE TABLE subpart_tab1 gaussdb-# ( gaussdb(# month_code VARCHAR2 ( 30 ) NOT NULL , gaussdb(# dept_code VARCHAR2 ( 30 ) NOT NULL , gaussdb(# user_no VARCHAR2 ( 30 ) NOT NULL , gaussdb(# sales_amt int gaussdb(# ) gaussdb-# PARTITION BY RANGE (month_code) SUBPARTITION BY RANGE (dept_code) gaussdb-# ( gaussdb(# PARTITION p_201901 VALUES LESS THAN( '201903' ) gaussdb(# ( gaussdb(# SUBPARTITION p_201901_a VALUES LESS THAN( '2' ), gaussdb(# SUBPARTITION p_201901_b VALUES LESS THAN( '3' ) gaussdb(# ), gaussdb(# PARTITION p_201902 VALUES LESS THAN( '201904' ) gaussdb(# ( gaussdb(# SUBPARTITION p_201902_a VALUES LESS THAN( '2' ), gaussdb(# SUBPARTITION p_201902_b VALUES LESS THAN( '3' ) gaussdb(# ) gaussdb(# ); CREATE TABLE gaussdb=# CREATE INDEX index_part_tab1 ON part_tab1(b) LOCAL gaussdb-# ( gaussdb(# PARTITION b_index1, gaussdb(# PARTITION b_index2, gaussdb(# PARTITION b_index3 gaussdb(# ); CREATE INDEX gaussdb=# CREATE INDEX idx_user_no ON subpart_tab1(user_no) LOCAL; CREATE INDEX gaussdb=# INSERT INTO part_tab1 VALUES(1, 1); INSERT 0 1 gaussdb=# INSERT INTO part_tab1 VALUES(1, 11); INSERT 0 1 gaussdb=# INSERT INTO part_tab1 VALUES(1, 21); INSERT 0 1 gaussdb=# UPDATE part_tab1 SET a = 2 WHERE b = 1; UPDATE 1 gaussdb=# UPDATE part_tab1 SET a = 3 WHERE b = 11; UPDATE 1 gaussdb=# UPDATE /*+ indexscan(part_tab1) */ part_tab1 SET a = 4 WHERE b = 21; UPDATE 1 gaussdb=# DELETE FROM part_tab1; DELETE 3 gaussdb=# ANALYZE part_tab1; ANALYZE gaussdb=# VACUUM part_tab1; VACUUM gaussdb=# INSERT INTO subpart_tab1 VALUES('201902', '1', '1', 1); INSERT 0 1 gaussdb=# INSERT INTO subpart_tab1 VALUES('201902', '2', '2', 1); INSERT 0 1 gaussdb=# INSERT INTO subpart_tab1 VALUES('201903', '1', '3', 1); INSERT 0 1 gaussdb=# INSERT INTO subpart_tab1 VALUES('201903', '2', '4', 1); INSERT 0 1 gaussdb=# UPDATE subpart_tab1 SET sales_amt = 2 WHERE user_no='1'; UPDATE 1 gaussdb=# UPDATE subpart_tab1 SET sales_amt = 3 WHERE user_no='2'; UPDATE 1 gaussdb=# UPDATE subpart_tab1 SET sales_amt = 4 WHERE user_no='3'; UPDATE 1 gaussdb=# UPDATE /*+ indexscan(subpart_tab1) */ subpart_tab1 SET sales_amt = 5 WHERE user_no='4'; UPDATE 1 gaussdb=# DELETE FROM subpart_tab1; DELETE 4 gaussdb=# ANALYZE subpart_tab1; ANALYZE gaussdb=# VACUUM subpart_tab1; VACUUM gaussdb=# SELECT * FROM gs_stat_all_partitions; partition_oid | schemaname | relname | partition_name | sub_partition_name | seq_scan | seq_tup_read | idx_scan | idx_tup_fetch | n_tup_ins | n_tup_upd | n_tup_del | n_tup_hot_upd | n_live_tup | n_dead_tup | last_vacuum | last_autovacuum | last_analyze | last_autoanalyze | vacuum_count | autovacuum_count | analyze_count | autoanalyze_count ---------------+------------+--------------+----------------+--------------------+----------+--------------+----------+---------------+-----------+-----------+-----------+---------------+------------+ ------------+-------------------------------+------------------------+-------------------------------+------------------------+--------------+------------------+---------------+------------------- 16964 | public | subpart_tab1 | p_201902 | p_201902_b | 5 | 1 | 4 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:45.293965+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:44.688861+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 16963 | public | subpart_tab1 | p_201902 | p_201902_a | 5 | 1 | 4 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:45.291022+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:44.688843+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 16961 | public | subpart_tab1 | p_201901 | p_201901_b | 5 | 1 | 4 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:45.288037+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:44.688829+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 16960 | public | subpart_tab1 | p_201901 | p_201901_a | 5 | 1 | 4 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:45.285311+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:44.688802+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 16954 | public | part_tab1 | p3 | | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:29.490636+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:28.540115+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 16953 | public | part_tab1 | p2 | | 4 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:29.487914+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:28.540098+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 16952 | public | part_tab1 | p1 | | 5 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:29.48536+08 | 2000-01-01 08:00:00+08 | 2023-05-15 20:36:28.540071+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 (7 rows) gaussdb=# SELECT * FROM gs_statio_all_partitions; partition_oid | schemaname | relname | partition_name | sub_partition_name | heap_blks_read | heap_blks_hit | idx_blks_read | idx_blks_hit | toast_blks_read | toast_blks_hit | tidx_blks_read | t idx_blks_hit ---------------+------------+--------------+----------------+--------------------+----------------+---------------+---------------+--------------+-----------------+----------------+----------------+-- ------------- 16964 | public | subpart_tab1 | p_201902 | p_201902_b | 4 | 8 | 2 | 21 | | | | 16963 | public | subpart_tab1 | p_201902 | p_201902_a | 4 | 8 | 2 | 21 | | | | 16961 | public | subpart_tab1 | p_201901 | p_201901_b | 4 | 8 | 2 | 21 | | | | 16960 | public | subpart_tab1 | p_201901 | p_201901_a | 4 | 8 | 2 | 21 | | | | 16954 | public | part_tab1 | p3 | | 4 | 8 | 2 | 15 | | | | 16953 | public | part_tab1 | p2 | | 4 | 8 | 2 | 15 | | | | 16952 | public | part_tab1 | p1 | | 4 | 8 | 2 | 15 | | | | (7 rows) gaussdb=# SELECT * FROM gs_stat_get_partition_stats(16952); partition_oid | seq_scan | seq_tup_read | idx_scan | idx_tup_fetch | n_tup_ins | n_tup_upd | n_tup_del | n_tup_hot_upd | n_live_tup | n_dead_tup | last_vacuum | last_autovacuum | last_analyze | last_autoanalyze | vacuum_count | autovacuum_count | analyze_count | autoanalyze_count | last_data_changed | heap_blks_read | heap_blks_hit | idx_blks_re ad | idx_blks_hit | tup_fetch | block_fetch ---------------+----------+--------------+----------+---------------+-----------+-----------+-----------+---------------+------------+------------+------------------------------+---------------------- --+-------------------------------+------------------------+--------------+------------------+---------------+-------------------+------------------------+----------------+---------------+------------ ---+--------------+-----------+------------- 16952 | 5 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 2023-05-15 20:36:29.48536+08 | 2000-01-01 08:00:00+0 8 | 2023-05-15 20:36:28.540071+08 | 2000-01-01 08:00:00+08 | 1 | 0 | 1 | 0 | 2000-01-01 08:00:00+08 | 4 | 8 | 2 | 21 | 0 | 12 (1 row) 事务内统计信息查询: gaussdb=# BEGIN; BEGIN gaussdb=# INSERT INTO part_tab1 VALUES(1, 1); INSERT 0 1 gaussdb=# INSERT INTO part_tab1 VALUES(1, 11); INSERT 0 1 gaussdb=# INSERT INTO part_tab1 VALUES(1, 21); INSERT 0 1 gaussdb=# UPDATE part_tab1 SET a = 2 WHERE b = 1; UPDATE 1 gaussdb=# UPDATE part_tab1 SET a = 3 WHERE b = 11; UPDATE 1 gaussdb=# UPDATE /*+ indexscan(part_tab1) */ part_tab1 SET a = 4 WHERE b = 21; UPDATE 1 gaussdb=# DELETE FROM part_tab1; DELETE 3 gaussdb=# INSERT INTO subpart_tab1 VALUES('201902', '1', '1', 1); INSERT 0 1 gaussdb=# INSERT INTO subpart_tab1 VALUES('201902', '2', '2', 1); INSERT 0 1 gaussdb=# INSERT INTO subpart_tab1 VALUES('201903', '1', '3', 1); INSERT 0 1 gaussdb=# INSERT INTO subpart_tab1 VALUES('201903', '2', '4', 1); INSERT 0 1 gaussdb=# UPDATE subpart_tab1 SET sales_amt = 2 WHERE user_no='1'; UPDATE 1 gaussdb=# UPDATE subpart_tab1 SET sales_amt = 3 WHERE user_no='2'; UPDATE 1 gaussdb=# UPDATE subpart_tab1 SET sales_amt = 4 WHERE user_no='3'; UPDATE 1 gaussdb=# UPDATE /*+ indexscan(subpart_tab1) */ subpart_tab1 SET sales_amt = 5 WHERE user_no='4'; UPDATE 1 gaussdb=# DELETE FROM subpart_tab1; DELETE 4 gaussdb=# SELECT * FROM gs_stat_xact_all_partitions; partition_oid | schemaname | relname | partition_name | sub_partition_name | seq_scan | seq_tup_read | idx_scan | idx_tup_fetch | n_tup_ins | n_tup_upd | n_tup_del | n_tup_hot_upd ---------------+------------+--------------+----------------+--------------------+----------+--------------+----------+---------------+-----------+-----------+-----------+--------------- 16964 | public | subpart_tab1 | p_201902 | p_201902_b | 4 | 4 | 1 | 2 | 1 | 1 | 1 | 1 16963 | public | subpart_tab1 | p_201902 | p_201902_a | 4 | 4 | 1 | 0 | 1 | 1 | 1 | 1 16961 | public | subpart_tab1 | p_201901 | p_201901_b | 4 | 4 | 1 | 0 | 1 | 1 | 1 | 1 16960 | public | subpart_tab1 | p_201901 | p_201901_a | 4 | 4 | 1 | 0 | 1 | 1 | 1 | 1 16954 | public | part_tab1 | p3 | | 1 | 1 | 1 | 2 | 1 | 1 | 1 | 1 16953 | public | part_tab1 | p2 | | 3 | 2 | 0 | 0 | 1 | 1 | 1 | 1 16952 | public | part_tab1 | p1 | | 4 | 2 | 0 | 0 | 1 | 1 | 1 | 1 (7 rows) gaussdb=# SELECT * FROM gs_stat_get_xact_partition_stats(16952); partition_oid | seq_scan | seq_tup_read | idx_scan | idx_tup_fetch | n_tup_ins | n_tup_upd | n_tup_del | n_tup_hot_upd | tup_fetch ---------------+----------+--------------+----------+---------------+-----------+-----------+-----------+---------------+----------- 16952 | 4 | 2 | 0 | 0 | 1 | 1 | 1 | 1 | 0 (1 row)
  • gs_recent_barrier_buffer_info(start_time text, end_time text) 描述:根据用户输入的时间范围,进行相应的barrier信息查询,获取time_stamp、 CS N、LSN和standard_time。 返回值类型:records 说明:调用该函数的用户需要具有SYSADMIN权限或具有OPRADMIN权限。输入参数start_time和end_time采用“年-月-日 时间”格式,其中时间采用clock格式。查询最大时间跨度为1天,超出跨度约束,根据查询起始时间将结束时间自动转换为极限边界进行查询。例如: gaussdb=# SELECT * FROM gs_recent_barrier_buffer_info('2024-01-15 23:27:50', '2024-01-15 23:28:00'); timestamp | lsn | csn | standard_time ------------+-------------------+----------+--------------------- 1705332470 | 00000000/15FFBBA0 | 41020421 | 2024-01-15 23:27:50 1705332471 | 00000000/15FFBDF0 | 41020422 | 2024-01-15 23:27:51 1705332472 | 00000000/15FFC058 | 41020423 | 2024-01-15 23:27:52 1705332472 | 00000000/15FFC0F8 | 41020424 | 2024-01-15 23:27:52 1705332473 | 00000000/15FFC348 | 41020425 | 2024-01-15 23:27:53 1705332474 | 00000000/15FFC598 | 41020426 | 2024-01-15 23:27:54 1705332475 | 00000000/15FFC638 | 41020427 | 2024-01-15 23:27:55 1705332476 | 00000000/15FFC888 | 41020428 | 2024-01-15 23:27:56 1705332476 | 00000000/15FFDC80 | 41020433 | 2024-01-15 23:27:56 1705332477 | 00000000/15FFDD20 | 41020434 | 2024-01-15 23:27:57 1705332478 | 00000000/15FFDF70 | 41020435 | 2024-01-15 23:27:58 1705332479 | 00000000/15FFE1D8 | 41020436 | 2024-01-15 23:27:59 1705332480 | 00000000/15FFE278 | 41020437 | 2024-01-15 23:28:00 1705332480 | 00000000/15FFE4C8 | 41020438 | 2024-01-15 23:28:00 (14 rows)
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全