发表日期: 2023-04-19 10:56:55 浏览次数:54
遵义市绥阳县蒲场镇网站制作、遵义市绥阳县风华镇小程序制作、遵义市绥阳县茅垭镇网站优化、遵义市绥阳县枧坝镇网站开发、遵义市绥阳县宽阔镇400电话办理、遵义市绥阳县黄杨镇网络推广、遵义市绥阳县青杠塘镇网站建设、遵义市绥阳县太白镇网店装修、遵义市绥阳县温泉镇微信公众号开发、遵义市绥阳县坪乐镇网页设计、遵义市绥阳县大路槽乡网络公司、遵义市绥阳县小关乡域名企业邮箱、遵义市正安县凤仪街道服务器空间、遵义市正安县瑞濠街道网站案例报价、遵义市正安县安场镇编辑排版美工、遵义市正安县庙塘镇App软件开发、遵义市正安县格林镇百度推广、遵义市正安县中观镇代运营托管、遵义市正安县新州镇logo设计、遵义市正安县芙蓉江镇网络全网营销
苏州市吴江区工信局二级主任科员徐鹏飞表示,近年来吴江重点发展工业互联网,以智能化和数字化转型为产业提档升级。而CCF 大数据与计算智能大赛可以有效实现政产学研用交流融通,对促进吴江产业发展非常有意义。过去十年,大赛为社会输送了大量人才,吴江区政府希望通过大赛筑巢引凤,吸引顶尖团队、专家和项目在吴江发展、落地。他认为,未来CCF BDCI大赛一定能够成为强大的粘合剂,把政府、高校、企业牢牢地结合在一起,为各行各业进行数字化的赋能。
360 集团首席安全官杜跃进表示,今天给我们带来安全威胁的不光是软件和网络系统,还包括人工智能算法、数据本身以及更复杂的场景,之前没有一个现成的词能够涵盖这个安全威胁,所以我们启用了“数字安全”这个概念。360集团在设计数字安全专题赛的四个赛题时,就是想把数字化转型带来的安全问题放在一起研究,利用大数据与人工智能来解决这些问题,这样才能与新的安全威胁进行对抗。
百度AI技术生态总经理马艳军表示,这几年百度在深度参与CCF BDCI的过程中非常明确地感受到大赛的力量,因为CCF BDCI很容易吸引到大批活跃度高、素质强的参赛选手。在合作出题的过程中,百度会选择企业的痛点问题、把真实的数据拿出来,也希望通过大赛促进参赛选手分享赛事成果,通过飞桨社区为开源生态做出更多贡献。他提到,有的作品方案已经在企业实际应用,这是大赛给产业界带来的最重要的价值。
2022启新程,CCF BDCI大赛创新聚力再出发,切实推动互联网、大数据与人工智能等技术与实际应用场景的深度融合,为打造具有国际竞争力的数字产业集群继续挖掘和培养优秀人才!
第四种形式的CREATE TYPE
创建一种新的 基本类型(标量类型)。为了创建一种新的基本类型,你必须是一个超级 用户(做这种限制的原因是一种错误的类型定义可能让服务器混淆甚至 崩溃)。
参数可以以任意顺序出现(而不仅是按照上面所示的顺序),并且大部分 是可选的。在定义类型前,必须注册两个或者更多函数(使用 CREATE FUNCTION
)。支持函数 input_function
以及 output_function
是必需的,而函数 receive_function
、 send_function
、 type_modifier_input_function
、 type_modifier_output_function
和 analyze_function
是可选的。通常来说这些函数必须是用 C 或者另外一种低层语言编写的。
input_function
将 类型的外部文本表达转换成为该类型定义的操作符和函数所使用的内部 表达。 output_function
执行反向的转换。输入函数可以被声明为有一个cstring
类型的参数,或者有三个类型分别为cstring
、 oid
、integer
的参数。第一个参数是 以 C 字符串存在的输入文本,第二个参数是该类型自身的 OID(对于 数组类型则是其元素类型的 OID),第三个参数是目标列的 typmod
(如果知道,不知道则将传递 -1)。输入函数必须 返回一个该数据类型本身的值。通常,一个输入函数应该被声明为 STRICT。 如果不是这样,在读到一个 NULL 输入值时,调用它时第一个参数会是 NULL。在这种情况下,该函数必须仍然返回 NULL,除非它发生了错误( 这种情况主要是想支持域输入函数,它们可能需要拒绝 NULL 输入)。 输出函数必须被声明为有一个新数据类型的参数。输出函数必须返回类型 cstring
。对于 NULL 值不会调用输出函数。
T可选的receive_function
会把类型的外部二进制表达转换成内部表达。如果没有提供这个函数, 该类型不能参与到二进制输入中。二进制表达转换成内部形式代价更低, 然而却更容易移植(例如,标准的整数数据类型使用网络字节序作为外 部二进制表达,而内部表达是机器本地的字节序)。接收函数应该执行 足够的检查以确保该值是有效的。接收函数可以被声明为有一个 internal
类型的参数,或者有三个类型分别为 internal
、oid
、integer
的参数。第一个参数是一个指向StringInfo
缓冲区的 指针,其中保存着接收到的字节串。其余可选的参数和文本输入函数的 相同。接收函数必须返回一个该数据类型本身的值。通常,一个接收函 数应该被声明为 STRICT。如果不是这样,在读到一个 NULL 输入值时, 调用它时第一个参数会是 NULL。在这种情况下,该函数必须仍然返回 NULL,除非它发生了错误(这种情况主要是想支持域接收函数,它们 可能需要拒绝 NULL 输入)。类似地,可选的 send_function
将 内部表达转换成外部二进制表达。如果没有提供这个函数,该类型将不 能参与到二进制输出中。发送函数必须被声明为有一个新数据类型的参 数。发送函数必须返回类型bytea
。对于 NULL 值不 会调用发送函数。
到这里你应该在疑惑输入和输出函数是如何能被声明为具有新类型的 结果或参数的?因为必须在创建新类型之前创建这两个函数。这个问题 的答案是,新类型应该首先被定义为一种shell type, 它是一种占位符类型,除了名称和拥有者之外它没有其他属性。这可以 通过不带额外参数的命令CREATE TYPE
做到。然后用 C 写的 I/O 函数可以 被定义为引用这种 shell type。最后,用带有完整定义的 name
CREATE TYPE
把该 shell type 替换为一个完全的、合 法的类型定义,之后新类型就可以正常使用了。
如果该类型支持修饰符(附加在类型声明上的可选约束,例如 char(5)
或者numeric(30,2)
),则需要可选的 type_modifier_input_function
以及type_modifier_output_function
。 PostgreSQL允许用户定义的类型有一个或者 多个简单常量或者标识符作为修饰符。不过,为了存储在系统目录中,该信息必须 能被打包到一个非负整数值中。所声明的修饰符会被以cstring
数组的形式 传递给 type_modifier_input_function
。 它必须检查该值的合法性(如果值错误就抛出一个错误),如果值正确,要返回 一个非负integer
值,它将被存储在“typmod”列中。如果 类型没有 type_modifier_input_function
则类型修饰符将被拒绝。 type_modifier_output_function
把内部的整数 typmod 值转换回正确的形式用于用户显示。它必须返回一个 cstring
值,该值就是追加到类型名称后的字符串。例如 numeric
的函数可能会返回(30,2)
。如果默认的显示格式 就是只把存储的 typmod 整数值放在圆括号内,则允许省略 type_modifier_output_function
。
可选的analyze_function
为该数据类型的列执行与类型相关的统计信息收集。默认情况下,如果 该类型有一个默认的 B-树操作符类,ANALYZE
将尝试用 类型的“equals”和“less-than”操作符来收集统计信息。 这种行为对于非标量类型并不合适,因此可以通过指定一个自定义分析函数来 覆盖这种行为。分析函数必须被声明为有一个类型为internal
的参 数,并且返回一个boolean
结果。分析函数的详细 API 请见 src/include/commands/vacuum.h
。
虽然只有 I/O 函数和其他为该类型创建的函数才知道新类型的内部表达的细节, 但是内部表达的一些属性必须被向 PostgreSQL声明。其中最重要的是 internallength
。基本数据 类型可以是定长的(这种情况下 internallength
是一个正 整数)或者是变长的(把 internallength
设置为 VARIABLE
,在内部通过把typlen
设置为 -1 表示)。 所有变长类型的内部表达都必须以一个 4 字节整数开始,它给出了这个值的总 长度(注意如第 66.2 节中所述,长度域常常是被编码 过的,直接接受它是不明智的)。
可选的标志PASSEDBYVALUE
表示这种数据类型的值需要 被传值而不是传引用。传值的类型必须是定长的,并且它们的内部表达不能超 过Datum
类型(某些机器上是 4 字节,其他机器上是 8 字节)的 尺寸。
alignment
参数指定数据 类型的存储对齐要求。允许的值等同于以 1、2、4 或 8 字节边界对齐。注意 变长类型的 alignment 参数必须至少为 4,因为它们需要包含一个 int4
作为它们的第一个组成部分。
storage
参数允许 为变长数据类型选择存储策略(对定长类型只允许 plain
)。plain
指定该类型的数 据将总是被存储在线内并且不会被压缩。extended
指定系统将首先尝试压缩一个长的数据值,并且将在数据仍然太长的情 况下把值移出主表行。external
允许值被移出主表, 但是系统将不会尝试对它进行压缩。main
允许压缩, 但是不鼓励把值移出主表(如果没有其他办法让行的大小变得合适,具有 这种存储策略的数据项仍将被移出主表,但比起 extended
以及external
项来, 这种存储策略的数据项会被优先考虑保留在主表中)。
如第 66.2 节和第 37.11.1 节 所述,除plain
之外所有的 storage
值都暗示 该数据类型的函数能处理被TOAST 过的值。指定的值 仅仅是决定一种可 TOAST 数据类型的列的默认 TOAST 存储策略,用户 可以使用ALTER TABLE SET STORAGE
为列选取其他策略。
like_type
参数提供 了另一种方法来指定一种数据类型的基本表达属性:从某种现有的类型中 拷贝。internallength
、 passedbyvalue
、 alignment
和 storage
的值会从指 定的类型中复制而来(也可以通过在LIKE
子句中指定这些属 性的值来覆盖复制过来的值,不过通常并不这么做)。当新类型的低层 实现是以一种现有的类型为参考时,用这种方式指定表达特别有用。
category
和 preferred
参数可以被用来 帮助控制在混淆的情况下应用哪一种隐式造型。每一种数据类型都属于一个用 单个 ASCII 字符命名的分类,并且每一种类型可以是其所属分类中的 “首选”。当有助于解决重载函数或操作符时,解析器将优先 造型到首选类型(但是只能从同类的其他类型造型)。更多细节请见 第 10 章。对于没有隐式造型到任意其他类型或者 从任意其他类型造型的类型,让这些设置保持默认即可。不过,对于一组 具有隐式造型的相关类型,把它们都标记为属于同一个类别并且选择一种 或两种“最常用”的类型作为该类别的首选通常是很有用的。在 把一种用户定义的类型增加到一个现有的内建类别(例如数字或者字符串 类型)中时, category
参数特别 有用。不过,也可以创建新的全部是用户定义类型的类别。对这样的类别, 可选择除大写字母之外的任何 ASCII 字符。
如果用户希望该数据类型的列被默认为某种非空值,可以指定一个默认值。 默认值可以用DEFAULT
关键词指定(这样一个默认值 可以被附加到一个特定列的显式DEFAULT
子句覆盖)。
要指定一种类型是数组,用ELEMENT
关键词指定该数组元素 的类型。例如,要定义一个 4 字节整数的数组(int4
), 应指定ELEMENT = int4
。更多有关数组类型的细节请 见下文。
要指定在这种类型数组的外部表达中分隔值的定界符,可以把delimiter
设置为一个特定字符。默认 的定界符是逗号(,
)。注意定界符是与数组元素类型相 关的,而不是数组类型本身相关。
如果可选的布尔参数 collatable
为真,这种 类型的列定义和表达式可能通过使用COLLATE
子句携带 有排序规则信息。在该类型上操作的函数的实现负责真正利用这些信息,仅 把类型标记为可排序的并不会让它们自动地去使用这类信息。
遵义市绥阳县蒲场镇网站制作、遵义市绥阳县风华镇小程序制作、遵义市绥阳县茅垭镇网站优化、遵义市绥阳县枧坝镇网站开发、遵义市绥阳县宽阔镇400电话办理、遵义市绥阳县黄杨镇网络推广、遵义市绥阳县青杠塘镇网站建设、遵义市绥阳县太白镇网店装修、遵义市绥阳县温泉镇微信公众号开发、遵义市绥阳县坪乐镇网页设计、遵义市绥阳县大路槽乡网络公司、遵义市绥阳县小关乡域名企业邮箱、遵义市正安县凤仪街道服务器空间、遵义市正安县瑞濠街道网站案例报价、遵义市正安县安场镇编辑排版美工、遵义市正安县庙塘镇App软件开发、遵义市正安县格林镇百度推广、遵义市正安县中观镇代运营托管、遵义市正安县新州镇logo设计、遵义市正安县芙蓉江镇网络全网营销
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878