pg_query 2.1.4 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/README.md +32 -0
- data/Rakefile +2 -2
- data/ext/pg_query/include/access/twophase.h +2 -0
- data/ext/pg_query/include/access/xact.h +6 -0
- data/ext/pg_query/include/access/xlog_internal.h +10 -1
- data/ext/pg_query/include/access/xlogreader.h +10 -0
- data/ext/pg_query/include/catalog/dependency.h +2 -0
- data/ext/pg_query/include/catalog/pg_class.h +1 -1
- data/ext/pg_query/include/catalog/pg_class_d.h +1 -1
- data/ext/pg_query/include/catalog/pg_control.h +2 -0
- data/ext/pg_query/include/catalog/pg_operator.h +3 -1
- data/ext/pg_query/include/catalog/pg_publication.h +3 -0
- data/ext/pg_query/include/catalog/pg_type.h +1 -0
- data/ext/pg_query/include/commands/async.h +1 -1
- data/ext/pg_query/include/commands/tablespace.h +2 -0
- data/ext/pg_query/include/commands/trigger.h +8 -0
- data/ext/pg_query/include/lib/simplehash.h +13 -13
- data/ext/pg_query/include/libpq/libpq.h +1 -0
- data/ext/pg_query/include/mb/pg_wchar.h +1 -0
- data/ext/pg_query/include/miscadmin.h +24 -11
- data/ext/pg_query/include/nodes/execnodes.h +2 -2
- data/ext/pg_query/include/nodes/parsenodes.h +5 -4
- data/ext/pg_query/include/nodes/pathnodes.h +2 -1
- data/ext/pg_query/include/nodes/pg_list.h +1 -0
- data/ext/pg_query/include/nodes/plannodes.h +18 -3
- data/ext/pg_query/include/optimizer/optimizer.h +0 -5
- data/ext/pg_query/include/parser/gram.h +2 -2
- data/ext/pg_query/include/parser/kwlist.h +1 -1
- data/ext/pg_query/include/parser/parse_coerce.h +1 -0
- data/ext/pg_query/include/pg_config.h +16 -13
- data/ext/pg_query/include/pg_query.h +2 -2
- data/ext/pg_query/include/pg_query_fingerprint_defs.c +286 -314
- data/ext/pg_query/include/pg_query_outfuncs_defs.c +1 -0
- data/ext/pg_query/include/pg_query_readfuncs_defs.c +1 -0
- data/ext/pg_query/include/pgstat.h +2 -1
- data/ext/pg_query/include/plpgsql.h +2 -2
- data/ext/pg_query/include/port/pg_bitutils.h +48 -2
- data/ext/pg_query/include/port.h +4 -0
- data/ext/pg_query/include/protobuf/pg_query.pb-c.h +4 -3
- data/ext/pg_query/include/replication/reorderbuffer.h +6 -5
- data/ext/pg_query/include/replication/slot.h +1 -1
- data/ext/pg_query/include/storage/block.h +1 -1
- data/ext/pg_query/include/storage/lock.h +6 -5
- data/ext/pg_query/include/storage/lwlock.h +1 -0
- data/ext/pg_query/include/storage/proc.h +14 -0
- data/ext/pg_query/include/storage/s_lock.h +24 -0
- data/ext/pg_query/include/tcop/pquery.h +6 -0
- data/ext/pg_query/include/utils/builtins.h +1 -0
- data/ext/pg_query/include/utils/inval.h +1 -0
- data/ext/pg_query/include/utils/portal.h +13 -0
- data/ext/pg_query/include/utils/rel.h +0 -1
- data/ext/pg_query/include/utils/relcache.h +1 -2
- data/ext/pg_query/include/utils/snapmgr.h +1 -0
- data/ext/pg_query/pg_query.pb-c.c +18 -5
- data/ext/pg_query/pg_query_deparse.c +8 -8
- data/ext/pg_query/pg_query_fingerprint.c +1 -0
- data/ext/pg_query/pg_query_json_plpgsql.c +68 -0
- data/ext/pg_query/pg_query_normalize.c +43 -7
- data/ext/pg_query/pg_query_outfuncs.h +1 -0
- data/ext/pg_query/pg_query_outfuncs_json.c +11 -0
- data/ext/pg_query/pg_query_parse_plpgsql.c +58 -15
- data/ext/pg_query/src_backend_catalog_namespace.c +1 -0
- data/ext/pg_query/src_backend_libpq_pqcomm.c +8 -0
- data/ext/pg_query/src_backend_nodes_copyfuncs.c +23 -33
- data/ext/pg_query/src_backend_nodes_equalfuncs.c +1 -0
- data/ext/pg_query/src_backend_nodes_list.c +12 -0
- data/ext/pg_query/src_backend_parser_gram.c +18 -3
- data/ext/pg_query/src_backend_parser_scan.c +493 -253
- data/ext/pg_query/src_backend_tcop_postgres.c +11 -1
- data/ext/pg_query/src_backend_utils_adt_ruleutils.c +38 -10
- data/ext/pg_query/src_backend_utils_misc_guc.c +1 -0
- data/ext/pg_query/src_common_wchar.c +11 -0
- data/ext/pg_query/src_pl_plpgsql_src_pl_comp.c +4 -2
- data/ext/pg_query/src_pl_plpgsql_src_pl_gram.c +1 -1
- data/ext/pg_query/src_port_pg_bitutils.c +1 -22
- data/ext/pg_query/src_port_snprintf.c +9 -7
- data/lib/pg_query/deparse.rb +7 -1
- data/lib/pg_query/fingerprint.rb +13 -2
- data/lib/pg_query/parse.rb +5 -3
- data/lib/pg_query/pg_query_pb.rb +2 -1
- data/lib/pg_query/treewalker.rb +6 -0
- data/lib/pg_query/version.rb +1 -1
- metadata +2 -2
|
@@ -302,7 +302,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
302
302
|
|
|
303
303
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
304
304
|
_fingerprintNode(ctx, node->colcollations, node, "colcollations", depth + 1);
|
|
305
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
305
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colcollations) == 1 && linitial(node->colcollations) == NIL)) {
|
|
306
306
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
307
307
|
if (ctx->write_tokens)
|
|
308
308
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -318,7 +318,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
318
318
|
|
|
319
319
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
320
320
|
_fingerprintNode(ctx, node->coldefexprs, node, "coldefexprs", depth + 1);
|
|
321
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
321
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coldefexprs) == 1 && linitial(node->coldefexprs) == NIL)) {
|
|
322
322
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
323
323
|
if (ctx->write_tokens)
|
|
324
324
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -334,7 +334,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
334
334
|
|
|
335
335
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
336
336
|
_fingerprintNode(ctx, node->colexprs, node, "colexprs", depth + 1);
|
|
337
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
337
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colexprs) == 1 && linitial(node->colexprs) == NIL)) {
|
|
338
338
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
339
339
|
if (ctx->write_tokens)
|
|
340
340
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -350,7 +350,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
350
350
|
|
|
351
351
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
352
352
|
_fingerprintNode(ctx, node->colnames, node, "colnames", depth + 1);
|
|
353
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
353
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colnames) == 1 && linitial(node->colnames) == NIL)) {
|
|
354
354
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
355
355
|
if (ctx->write_tokens)
|
|
356
356
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -366,7 +366,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
366
366
|
|
|
367
367
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
368
368
|
_fingerprintNode(ctx, node->coltypes, node, "coltypes", depth + 1);
|
|
369
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
369
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypes) == 1 && linitial(node->coltypes) == NIL)) {
|
|
370
370
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
371
371
|
if (ctx->write_tokens)
|
|
372
372
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -382,7 +382,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
382
382
|
|
|
383
383
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
384
384
|
_fingerprintNode(ctx, node->coltypmods, node, "coltypmods", depth + 1);
|
|
385
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
385
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypmods) == 1 && linitial(node->coltypmods) == NIL)) {
|
|
386
386
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
387
387
|
if (ctx->write_tokens)
|
|
388
388
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -432,7 +432,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
432
432
|
|
|
433
433
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
434
434
|
_fingerprintNode(ctx, node->ns_names, node, "ns_names", depth + 1);
|
|
435
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
435
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ns_names) == 1 && linitial(node->ns_names) == NIL)) {
|
|
436
436
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
437
437
|
if (ctx->write_tokens)
|
|
438
438
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -448,7 +448,7 @@ _fingerprintTableFunc(FingerprintContext *ctx, const TableFunc *node, const void
|
|
|
448
448
|
|
|
449
449
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
450
450
|
_fingerprintNode(ctx, node->ns_uris, node, "ns_uris", depth + 1);
|
|
451
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
451
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ns_uris) == 1 && linitial(node->ns_uris) == NIL)) {
|
|
452
452
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
453
453
|
if (ctx->write_tokens)
|
|
454
454
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -646,7 +646,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
|
646
646
|
|
|
647
647
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
648
648
|
_fingerprintNode(ctx, node->aggargtypes, node, "aggargtypes", depth + 1);
|
|
649
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
649
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggargtypes) == 1 && linitial(node->aggargtypes) == NIL)) {
|
|
650
650
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
651
651
|
if (ctx->write_tokens)
|
|
652
652
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -669,7 +669,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
|
669
669
|
|
|
670
670
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
671
671
|
_fingerprintNode(ctx, node->aggdirectargs, node, "aggdirectargs", depth + 1);
|
|
672
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
672
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggdirectargs) == 1 && linitial(node->aggdirectargs) == NIL)) {
|
|
673
673
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
674
674
|
if (ctx->write_tokens)
|
|
675
675
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -685,7 +685,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
|
685
685
|
|
|
686
686
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
687
687
|
_fingerprintNode(ctx, node->aggdistinct, node, "aggdistinct", depth + 1);
|
|
688
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
688
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggdistinct) == 1 && linitial(node->aggdistinct) == NIL)) {
|
|
689
689
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
690
690
|
if (ctx->write_tokens)
|
|
691
691
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -738,7 +738,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
|
738
738
|
|
|
739
739
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
740
740
|
_fingerprintNode(ctx, node->aggorder, node, "aggorder", depth + 1);
|
|
741
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
741
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aggorder) == 1 && linitial(node->aggorder) == NIL)) {
|
|
742
742
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
743
743
|
if (ctx->write_tokens)
|
|
744
744
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -783,7 +783,7 @@ _fingerprintAggref(FingerprintContext *ctx, const Aggref *node, const void *pare
|
|
|
783
783
|
|
|
784
784
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
785
785
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
786
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
786
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
787
787
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
788
788
|
if (ctx->write_tokens)
|
|
789
789
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -820,7 +820,7 @@ _fingerprintGroupingFunc(FingerprintContext *ctx, const GroupingFunc *node, cons
|
|
|
820
820
|
|
|
821
821
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
822
822
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
823
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
823
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
824
824
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
825
825
|
if (ctx->write_tokens)
|
|
826
826
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -836,7 +836,7 @@ _fingerprintGroupingFunc(FingerprintContext *ctx, const GroupingFunc *node, cons
|
|
|
836
836
|
|
|
837
837
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
838
838
|
_fingerprintNode(ctx, node->cols, node, "cols", depth + 1);
|
|
839
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
839
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cols) == 1 && linitial(node->cols) == NIL)) {
|
|
840
840
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
841
841
|
if (ctx->write_tokens)
|
|
842
842
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -854,7 +854,7 @@ _fingerprintGroupingFunc(FingerprintContext *ctx, const GroupingFunc *node, cons
|
|
|
854
854
|
|
|
855
855
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
856
856
|
_fingerprintNode(ctx, node->refs, node, "refs", depth + 1);
|
|
857
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
857
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->refs) == 1 && linitial(node->refs) == NIL)) {
|
|
858
858
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
859
859
|
if (ctx->write_tokens)
|
|
860
860
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -892,7 +892,7 @@ _fingerprintWindowFunc(FingerprintContext *ctx, const WindowFunc *node, const vo
|
|
|
892
892
|
|
|
893
893
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
894
894
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
895
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
895
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
896
896
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
897
897
|
if (ctx->write_tokens)
|
|
898
898
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1015,7 +1015,7 @@ _fingerprintSubscriptingRef(FingerprintContext *ctx, const SubscriptingRef *node
|
|
|
1015
1015
|
|
|
1016
1016
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1017
1017
|
_fingerprintNode(ctx, node->reflowerindexpr, node, "reflowerindexpr", depth + 1);
|
|
1018
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1018
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->reflowerindexpr) == 1 && linitial(node->reflowerindexpr) == NIL)) {
|
|
1019
1019
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1020
1020
|
if (ctx->write_tokens)
|
|
1021
1021
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1038,7 +1038,7 @@ _fingerprintSubscriptingRef(FingerprintContext *ctx, const SubscriptingRef *node
|
|
|
1038
1038
|
|
|
1039
1039
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1040
1040
|
_fingerprintNode(ctx, node->refupperindexpr, node, "refupperindexpr", depth + 1);
|
|
1041
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1041
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->refupperindexpr) == 1 && linitial(node->refupperindexpr) == NIL)) {
|
|
1042
1042
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1043
1043
|
if (ctx->write_tokens)
|
|
1044
1044
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1059,7 +1059,7 @@ _fingerprintFuncExpr(FingerprintContext *ctx, const FuncExpr *node, const void *
|
|
|
1059
1059
|
|
|
1060
1060
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1061
1061
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
1062
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1062
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
1063
1063
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1064
1064
|
if (ctx->write_tokens)
|
|
1065
1065
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1161,7 +1161,7 @@ _fingerprintOpExpr(FingerprintContext *ctx, const OpExpr *node, const void *pare
|
|
|
1161
1161
|
|
|
1162
1162
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1163
1163
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
1164
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1164
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
1165
1165
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1166
1166
|
if (ctx->write_tokens)
|
|
1167
1167
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1224,7 +1224,7 @@ _fingerprintScalarArrayOpExpr(FingerprintContext *ctx, const ScalarArrayOpExpr *
|
|
|
1224
1224
|
|
|
1225
1225
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1226
1226
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
1227
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1227
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
1228
1228
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1229
1229
|
if (ctx->write_tokens)
|
|
1230
1230
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1273,7 +1273,7 @@ _fingerprintBoolExpr(FingerprintContext *ctx, const BoolExpr *node, const void *
|
|
|
1273
1273
|
|
|
1274
1274
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1275
1275
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
1276
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1276
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
1277
1277
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1278
1278
|
if (ctx->write_tokens)
|
|
1279
1279
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1303,7 +1303,7 @@ _fingerprintSubLink(FingerprintContext *ctx, const SubLink *node, const void *pa
|
|
|
1303
1303
|
|
|
1304
1304
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1305
1305
|
_fingerprintNode(ctx, node->operName, node, "operName", depth + 1);
|
|
1306
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1306
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->operName) == 1 && linitial(node->operName) == NIL)) {
|
|
1307
1307
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1308
1308
|
if (ctx->write_tokens)
|
|
1309
1309
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1370,7 +1370,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
|
1370
1370
|
|
|
1371
1371
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1372
1372
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
1373
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1373
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
1374
1374
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1375
1375
|
if (ctx->write_tokens)
|
|
1376
1376
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1407,7 +1407,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
|
1407
1407
|
|
|
1408
1408
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1409
1409
|
_fingerprintNode(ctx, node->parParam, node, "parParam", depth + 1);
|
|
1410
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1410
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->parParam) == 1 && linitial(node->parParam) == NIL)) {
|
|
1411
1411
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1412
1412
|
if (ctx->write_tokens)
|
|
1413
1413
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1428,7 +1428,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
|
1428
1428
|
|
|
1429
1429
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1430
1430
|
_fingerprintNode(ctx, node->paramIds, node, "paramIds", depth + 1);
|
|
1431
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1431
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->paramIds) == 1 && linitial(node->paramIds) == NIL)) {
|
|
1432
1432
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1433
1433
|
if (ctx->write_tokens)
|
|
1434
1434
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1463,7 +1463,7 @@ _fingerprintSubPlan(FingerprintContext *ctx, const SubPlan *node, const void *pa
|
|
|
1463
1463
|
|
|
1464
1464
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1465
1465
|
_fingerprintNode(ctx, node->setParam, node, "setParam", depth + 1);
|
|
1466
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1466
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->setParam) == 1 && linitial(node->setParam) == NIL)) {
|
|
1467
1467
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1468
1468
|
if (ctx->write_tokens)
|
|
1469
1469
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1523,7 +1523,7 @@ _fingerprintAlternativeSubPlan(FingerprintContext *ctx, const AlternativeSubPlan
|
|
|
1523
1523
|
|
|
1524
1524
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1525
1525
|
_fingerprintNode(ctx, node->subplans, node, "subplans", depth + 1);
|
|
1526
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1526
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->subplans) == 1 && linitial(node->subplans) == NIL)) {
|
|
1527
1527
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1528
1528
|
if (ctx->write_tokens)
|
|
1529
1529
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1611,7 +1611,7 @@ _fingerprintFieldStore(FingerprintContext *ctx, const FieldStore *node, const vo
|
|
|
1611
1611
|
|
|
1612
1612
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1613
1613
|
_fingerprintNode(ctx, node->fieldnums, node, "fieldnums", depth + 1);
|
|
1614
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1614
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fieldnums) == 1 && linitial(node->fieldnums) == NIL)) {
|
|
1615
1615
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1616
1616
|
if (ctx->write_tokens)
|
|
1617
1617
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1627,7 +1627,7 @@ _fingerprintFieldStore(FingerprintContext *ctx, const FieldStore *node, const vo
|
|
|
1627
1627
|
|
|
1628
1628
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1629
1629
|
_fingerprintNode(ctx, node->newvals, node, "newvals", depth + 1);
|
|
1630
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1630
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->newvals) == 1 && linitial(node->newvals) == NIL)) {
|
|
1631
1631
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1632
1632
|
if (ctx->write_tokens)
|
|
1633
1633
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -1899,7 +1899,7 @@ _fingerprintCaseExpr(FingerprintContext *ctx, const CaseExpr *node, const void *
|
|
|
1899
1899
|
|
|
1900
1900
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
1901
1901
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
1902
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
1902
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
1903
1903
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
1904
1904
|
if (ctx->write_tokens)
|
|
1905
1905
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2041,7 +2041,7 @@ _fingerprintArrayExpr(FingerprintContext *ctx, const ArrayExpr *node, const void
|
|
|
2041
2041
|
|
|
2042
2042
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2043
2043
|
_fingerprintNode(ctx, node->elements, node, "elements", depth + 1);
|
|
2044
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2044
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->elements) == 1 && linitial(node->elements) == NIL)) {
|
|
2045
2045
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2046
2046
|
if (ctx->write_tokens)
|
|
2047
2047
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2069,7 +2069,7 @@ _fingerprintRowExpr(FingerprintContext *ctx, const RowExpr *node, const void *pa
|
|
|
2069
2069
|
|
|
2070
2070
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2071
2071
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
2072
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2072
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
2073
2073
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2074
2074
|
if (ctx->write_tokens)
|
|
2075
2075
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2085,7 +2085,7 @@ _fingerprintRowExpr(FingerprintContext *ctx, const RowExpr *node, const void *pa
|
|
|
2085
2085
|
|
|
2086
2086
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2087
2087
|
_fingerprintNode(ctx, node->colnames, node, "colnames", depth + 1);
|
|
2088
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2088
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colnames) == 1 && linitial(node->colnames) == NIL)) {
|
|
2089
2089
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2090
2090
|
if (ctx->write_tokens)
|
|
2091
2091
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2120,7 +2120,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
|
2120
2120
|
|
|
2121
2121
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2122
2122
|
_fingerprintNode(ctx, node->inputcollids, node, "inputcollids", depth + 1);
|
|
2123
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2123
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->inputcollids) == 1 && linitial(node->inputcollids) == NIL)) {
|
|
2124
2124
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2125
2125
|
if (ctx->write_tokens)
|
|
2126
2126
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2136,7 +2136,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
|
2136
2136
|
|
|
2137
2137
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2138
2138
|
_fingerprintNode(ctx, node->largs, node, "largs", depth + 1);
|
|
2139
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2139
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->largs) == 1 && linitial(node->largs) == NIL)) {
|
|
2140
2140
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2141
2141
|
if (ctx->write_tokens)
|
|
2142
2142
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2152,7 +2152,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
|
2152
2152
|
|
|
2153
2153
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2154
2154
|
_fingerprintNode(ctx, node->opfamilies, node, "opfamilies", depth + 1);
|
|
2155
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2155
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilies) == 1 && linitial(node->opfamilies) == NIL)) {
|
|
2156
2156
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2157
2157
|
if (ctx->write_tokens)
|
|
2158
2158
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2168,7 +2168,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
|
2168
2168
|
|
|
2169
2169
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2170
2170
|
_fingerprintNode(ctx, node->opnos, node, "opnos", depth + 1);
|
|
2171
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2171
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opnos) == 1 && linitial(node->opnos) == NIL)) {
|
|
2172
2172
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2173
2173
|
if (ctx->write_tokens)
|
|
2174
2174
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2184,7 +2184,7 @@ _fingerprintRowCompareExpr(FingerprintContext *ctx, const RowCompareExpr *node,
|
|
|
2184
2184
|
|
|
2185
2185
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2186
2186
|
_fingerprintNode(ctx, node->rargs, node, "rargs", depth + 1);
|
|
2187
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2187
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rargs) == 1 && linitial(node->rargs) == NIL)) {
|
|
2188
2188
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2189
2189
|
if (ctx->write_tokens)
|
|
2190
2190
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2210,7 +2210,7 @@ _fingerprintCoalesceExpr(FingerprintContext *ctx, const CoalesceExpr *node, cons
|
|
|
2210
2210
|
|
|
2211
2211
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2212
2212
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
2213
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2213
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
2214
2214
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2215
2215
|
if (ctx->write_tokens)
|
|
2216
2216
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2247,7 +2247,7 @@ _fingerprintMinMaxExpr(FingerprintContext *ctx, const MinMaxExpr *node, const vo
|
|
|
2247
2247
|
|
|
2248
2248
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2249
2249
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
2250
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2250
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
2251
2251
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2252
2252
|
if (ctx->write_tokens)
|
|
2253
2253
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2322,7 +2322,7 @@ _fingerprintXmlExpr(FingerprintContext *ctx, const XmlExpr *node, const void *pa
|
|
|
2322
2322
|
|
|
2323
2323
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2324
2324
|
_fingerprintNode(ctx, node->arg_names, node, "arg_names", depth + 1);
|
|
2325
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2325
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->arg_names) == 1 && linitial(node->arg_names) == NIL)) {
|
|
2326
2326
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2327
2327
|
if (ctx->write_tokens)
|
|
2328
2328
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2338,7 +2338,7 @@ _fingerprintXmlExpr(FingerprintContext *ctx, const XmlExpr *node, const void *pa
|
|
|
2338
2338
|
|
|
2339
2339
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2340
2340
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
2341
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2341
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
2342
2342
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2343
2343
|
if (ctx->write_tokens)
|
|
2344
2344
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2361,7 +2361,7 @@ _fingerprintXmlExpr(FingerprintContext *ctx, const XmlExpr *node, const void *pa
|
|
|
2361
2361
|
|
|
2362
2362
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2363
2363
|
_fingerprintNode(ctx, node->named_args, node, "named_args", depth + 1);
|
|
2364
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2364
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->named_args) == 1 && linitial(node->named_args) == NIL)) {
|
|
2365
2365
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2366
2366
|
if (ctx->write_tokens)
|
|
2367
2367
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2789,7 +2789,7 @@ _fingerprintJoinExpr(FingerprintContext *ctx, const JoinExpr *node, const void *
|
|
|
2789
2789
|
|
|
2790
2790
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2791
2791
|
_fingerprintNode(ctx, node->usingClause, node, "usingClause", depth + 1);
|
|
2792
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2792
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->usingClause) == 1 && linitial(node->usingClause) == NIL)) {
|
|
2793
2793
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2794
2794
|
if (ctx->write_tokens)
|
|
2795
2795
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2810,7 +2810,7 @@ _fingerprintFromExpr(FingerprintContext *ctx, const FromExpr *node, const void *
|
|
|
2810
2810
|
|
|
2811
2811
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2812
2812
|
_fingerprintNode(ctx, node->fromlist, node, "fromlist", depth + 1);
|
|
2813
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2813
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fromlist) == 1 && linitial(node->fromlist) == NIL)) {
|
|
2814
2814
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2815
2815
|
if (ctx->write_tokens)
|
|
2816
2816
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2853,7 +2853,7 @@ _fingerprintOnConflictExpr(FingerprintContext *ctx, const OnConflictExpr *node,
|
|
|
2853
2853
|
|
|
2854
2854
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2855
2855
|
_fingerprintNode(ctx, node->arbiterElems, node, "arbiterElems", depth + 1);
|
|
2856
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2856
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->arbiterElems) == 1 && linitial(node->arbiterElems) == NIL)) {
|
|
2857
2857
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2858
2858
|
if (ctx->write_tokens)
|
|
2859
2859
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2900,7 +2900,7 @@ _fingerprintOnConflictExpr(FingerprintContext *ctx, const OnConflictExpr *node,
|
|
|
2900
2900
|
|
|
2901
2901
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2902
2902
|
_fingerprintNode(ctx, node->exclRelTlist, node, "exclRelTlist", depth + 1);
|
|
2903
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2903
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->exclRelTlist) == 1 && linitial(node->exclRelTlist) == NIL)) {
|
|
2904
2904
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2905
2905
|
if (ctx->write_tokens)
|
|
2906
2906
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2916,7 +2916,7 @@ _fingerprintOnConflictExpr(FingerprintContext *ctx, const OnConflictExpr *node,
|
|
|
2916
2916
|
|
|
2917
2917
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2918
2918
|
_fingerprintNode(ctx, node->onConflictSet, node, "onConflictSet", depth + 1);
|
|
2919
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2919
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->onConflictSet) == 1 && linitial(node->onConflictSet) == NIL)) {
|
|
2920
2920
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2921
2921
|
if (ctx->write_tokens)
|
|
2922
2922
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2959,7 +2959,7 @@ _fingerprintIntoClause(FingerprintContext *ctx, const IntoClause *node, const vo
|
|
|
2959
2959
|
|
|
2960
2960
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2961
2961
|
_fingerprintNode(ctx, node->colNames, node, "colNames", depth + 1);
|
|
2962
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2962
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colNames) == 1 && linitial(node->colNames) == NIL)) {
|
|
2963
2963
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2964
2964
|
if (ctx->write_tokens)
|
|
2965
2965
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -2980,7 +2980,7 @@ _fingerprintIntoClause(FingerprintContext *ctx, const IntoClause *node, const vo
|
|
|
2980
2980
|
|
|
2981
2981
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
2982
2982
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
2983
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
2983
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
2984
2984
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
2985
2985
|
if (ctx->write_tokens)
|
|
2986
2986
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3081,7 +3081,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3081
3081
|
|
|
3082
3082
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3083
3083
|
_fingerprintNode(ctx, node->constraintDeps, node, "constraintDeps", depth + 1);
|
|
3084
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3084
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraintDeps) == 1 && linitial(node->constraintDeps) == NIL)) {
|
|
3085
3085
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3086
3086
|
if (ctx->write_tokens)
|
|
3087
3087
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3097,7 +3097,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3097
3097
|
|
|
3098
3098
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3099
3099
|
_fingerprintNode(ctx, node->cteList, node, "cteList", depth + 1);
|
|
3100
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3100
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cteList) == 1 && linitial(node->cteList) == NIL)) {
|
|
3101
3101
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3102
3102
|
if (ctx->write_tokens)
|
|
3103
3103
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3113,7 +3113,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3113
3113
|
|
|
3114
3114
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3115
3115
|
_fingerprintNode(ctx, node->distinctClause, node, "distinctClause", depth + 1);
|
|
3116
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3116
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->distinctClause) == 1 && linitial(node->distinctClause) == NIL)) {
|
|
3117
3117
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3118
3118
|
if (ctx->write_tokens)
|
|
3119
3119
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3129,7 +3129,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3129
3129
|
|
|
3130
3130
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3131
3131
|
_fingerprintNode(ctx, node->groupClause, node, "groupClause", depth + 1);
|
|
3132
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3132
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupClause) == 1 && linitial(node->groupClause) == NIL)) {
|
|
3133
3133
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3134
3134
|
if (ctx->write_tokens)
|
|
3135
3135
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3145,7 +3145,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3145
3145
|
|
|
3146
3146
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3147
3147
|
_fingerprintNode(ctx, node->groupingSets, node, "groupingSets", depth + 1);
|
|
3148
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3148
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupingSets) == 1 && linitial(node->groupingSets) == NIL)) {
|
|
3149
3149
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3150
3150
|
if (ctx->write_tokens)
|
|
3151
3151
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3320,7 +3320,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3320
3320
|
|
|
3321
3321
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3322
3322
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
|
3323
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3323
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
|
3324
3324
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3325
3325
|
if (ctx->write_tokens)
|
|
3326
3326
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3336,7 +3336,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3336
3336
|
|
|
3337
3337
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3338
3338
|
_fingerprintNode(ctx, node->rowMarks, node, "rowMarks", depth + 1);
|
|
3339
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3339
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rowMarks) == 1 && linitial(node->rowMarks) == NIL)) {
|
|
3340
3340
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3341
3341
|
if (ctx->write_tokens)
|
|
3342
3342
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3352,7 +3352,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3352
3352
|
|
|
3353
3353
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3354
3354
|
_fingerprintNode(ctx, node->rtable, node, "rtable", depth + 1);
|
|
3355
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3355
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rtable) == 1 && linitial(node->rtable) == NIL)) {
|
|
3356
3356
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3357
3357
|
if (ctx->write_tokens)
|
|
3358
3358
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3385,7 +3385,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3385
3385
|
|
|
3386
3386
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3387
3387
|
_fingerprintNode(ctx, node->sortClause, node, "sortClause", depth + 1);
|
|
3388
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3388
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->sortClause) == 1 && linitial(node->sortClause) == NIL)) {
|
|
3389
3389
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3390
3390
|
if (ctx->write_tokens)
|
|
3391
3391
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3415,7 +3415,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3415
3415
|
|
|
3416
3416
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3417
3417
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
|
3418
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3418
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
|
3419
3419
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3420
3420
|
if (ctx->write_tokens)
|
|
3421
3421
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3448,7 +3448,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3448
3448
|
|
|
3449
3449
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3450
3450
|
_fingerprintNode(ctx, node->windowClause, node, "windowClause", depth + 1);
|
|
3451
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3451
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->windowClause) == 1 && linitial(node->windowClause) == NIL)) {
|
|
3452
3452
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3453
3453
|
if (ctx->write_tokens)
|
|
3454
3454
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3464,7 +3464,7 @@ _fingerprintQuery(FingerprintContext *ctx, const Query *node, const void *parent
|
|
|
3464
3464
|
|
|
3465
3465
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3466
3466
|
_fingerprintNode(ctx, node->withCheckOptions, node, "withCheckOptions", depth + 1);
|
|
3467
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3467
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->withCheckOptions) == 1 && linitial(node->withCheckOptions) == NIL)) {
|
|
3468
3468
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3469
3469
|
if (ctx->write_tokens)
|
|
3470
3470
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3485,7 +3485,7 @@ _fingerprintInsertStmt(FingerprintContext *ctx, const InsertStmt *node, const vo
|
|
|
3485
3485
|
|
|
3486
3486
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3487
3487
|
_fingerprintNode(ctx, node->cols, node, "cols", depth + 1);
|
|
3488
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3488
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cols) == 1 && linitial(node->cols) == NIL)) {
|
|
3489
3489
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3490
3490
|
if (ctx->write_tokens)
|
|
3491
3491
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3540,7 +3540,7 @@ _fingerprintInsertStmt(FingerprintContext *ctx, const InsertStmt *node, const vo
|
|
|
3540
3540
|
|
|
3541
3541
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3542
3542
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
|
3543
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3543
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
|
3544
3544
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3545
3545
|
if (ctx->write_tokens)
|
|
3546
3546
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3612,7 +3612,7 @@ _fingerprintDeleteStmt(FingerprintContext *ctx, const DeleteStmt *node, const vo
|
|
|
3612
3612
|
|
|
3613
3613
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3614
3614
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
|
3615
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3615
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
|
3616
3616
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3617
3617
|
if (ctx->write_tokens)
|
|
3618
3618
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3628,7 +3628,7 @@ _fingerprintDeleteStmt(FingerprintContext *ctx, const DeleteStmt *node, const vo
|
|
|
3628
3628
|
|
|
3629
3629
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3630
3630
|
_fingerprintNode(ctx, node->usingClause, node, "usingClause", depth + 1);
|
|
3631
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3631
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->usingClause) == 1 && linitial(node->usingClause) == NIL)) {
|
|
3632
3632
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3633
3633
|
if (ctx->write_tokens)
|
|
3634
3634
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3683,7 +3683,7 @@ _fingerprintUpdateStmt(FingerprintContext *ctx, const UpdateStmt *node, const vo
|
|
|
3683
3683
|
|
|
3684
3684
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3685
3685
|
_fingerprintNode(ctx, node->fromClause, node, "fromClause", depth + 1);
|
|
3686
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3686
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fromClause) == 1 && linitial(node->fromClause) == NIL)) {
|
|
3687
3687
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3688
3688
|
if (ctx->write_tokens)
|
|
3689
3689
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3716,7 +3716,7 @@ _fingerprintUpdateStmt(FingerprintContext *ctx, const UpdateStmt *node, const vo
|
|
|
3716
3716
|
|
|
3717
3717
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3718
3718
|
_fingerprintNode(ctx, node->returningList, node, "returningList", depth + 1);
|
|
3719
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3719
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->returningList) == 1 && linitial(node->returningList) == NIL)) {
|
|
3720
3720
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3721
3721
|
if (ctx->write_tokens)
|
|
3722
3722
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3732,7 +3732,7 @@ _fingerprintUpdateStmt(FingerprintContext *ctx, const UpdateStmt *node, const vo
|
|
|
3732
3732
|
|
|
3733
3733
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3734
3734
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
|
3735
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3735
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
|
3736
3736
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3737
3737
|
if (ctx->write_tokens)
|
|
3738
3738
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3792,7 +3792,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
3792
3792
|
|
|
3793
3793
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3794
3794
|
_fingerprintNode(ctx, node->distinctClause, node, "distinctClause", depth + 1);
|
|
3795
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3795
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->distinctClause) == 1 && linitial(node->distinctClause) == NIL)) {
|
|
3796
3796
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3797
3797
|
if (ctx->write_tokens)
|
|
3798
3798
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3808,7 +3808,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
3808
3808
|
|
|
3809
3809
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3810
3810
|
_fingerprintNode(ctx, node->fromClause, node, "fromClause", depth + 1);
|
|
3811
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3811
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fromClause) == 1 && linitial(node->fromClause) == NIL)) {
|
|
3812
3812
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3813
3813
|
if (ctx->write_tokens)
|
|
3814
3814
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3824,7 +3824,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
3824
3824
|
|
|
3825
3825
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3826
3826
|
_fingerprintNode(ctx, node->groupClause, node, "groupClause", depth + 1);
|
|
3827
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3827
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupClause) == 1 && linitial(node->groupClause) == NIL)) {
|
|
3828
3828
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3829
3829
|
if (ctx->write_tokens)
|
|
3830
3830
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3930,7 +3930,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
3930
3930
|
|
|
3931
3931
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3932
3932
|
_fingerprintNode(ctx, node->lockingClause, node, "lockingClause", depth + 1);
|
|
3933
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3933
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->lockingClause) == 1 && linitial(node->lockingClause) == NIL)) {
|
|
3934
3934
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3935
3935
|
if (ctx->write_tokens)
|
|
3936
3936
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3968,7 +3968,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
3968
3968
|
|
|
3969
3969
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3970
3970
|
_fingerprintNode(ctx, node->sortClause, node, "sortClause", depth + 1);
|
|
3971
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3971
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->sortClause) == 1 && linitial(node->sortClause) == NIL)) {
|
|
3972
3972
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3973
3973
|
if (ctx->write_tokens)
|
|
3974
3974
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -3984,7 +3984,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
3984
3984
|
|
|
3985
3985
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
3986
3986
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
|
3987
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
3987
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
|
3988
3988
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
3989
3989
|
if (ctx->write_tokens)
|
|
3990
3990
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4000,7 +4000,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
4000
4000
|
|
|
4001
4001
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4002
4002
|
_fingerprintNode(ctx, node->valuesLists, node, "valuesLists", depth + 1);
|
|
4003
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4003
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->valuesLists) == 1 && linitial(node->valuesLists) == NIL)) {
|
|
4004
4004
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4005
4005
|
if (ctx->write_tokens)
|
|
4006
4006
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4033,7 +4033,7 @@ _fingerprintSelectStmt(FingerprintContext *ctx, const SelectStmt *node, const vo
|
|
|
4033
4033
|
|
|
4034
4034
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4035
4035
|
_fingerprintNode(ctx, node->windowClause, node, "windowClause", depth + 1);
|
|
4036
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4036
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->windowClause) == 1 && linitial(node->windowClause) == NIL)) {
|
|
4037
4037
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4038
4038
|
if (ctx->write_tokens)
|
|
4039
4039
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4071,7 +4071,7 @@ _fingerprintAlterTableStmt(FingerprintContext *ctx, const AlterTableStmt *node,
|
|
|
4071
4071
|
|
|
4072
4072
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4073
4073
|
_fingerprintNode(ctx, node->cmds, node, "cmds", depth + 1);
|
|
4074
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4074
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cmds) == 1 && linitial(node->cmds) == NIL)) {
|
|
4075
4075
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4076
4076
|
if (ctx->write_tokens)
|
|
4077
4077
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4166,6 +4166,11 @@ _fingerprintAlterTableCmd(FingerprintContext *ctx, const AlterTableCmd *node, co
|
|
|
4166
4166
|
_fingerprintString(ctx, buffer);
|
|
4167
4167
|
}
|
|
4168
4168
|
|
|
4169
|
+
if (node->recurse) {
|
|
4170
|
+
_fingerprintString(ctx, "recurse");
|
|
4171
|
+
_fingerprintString(ctx, "true");
|
|
4172
|
+
}
|
|
4173
|
+
|
|
4169
4174
|
if (true) {
|
|
4170
4175
|
_fingerprintString(ctx, "subtype");
|
|
4171
4176
|
_fingerprintString(ctx, _enumToStringAlterTableType(node->subtype));
|
|
@@ -4223,7 +4228,7 @@ _fingerprintAlterDomainStmt(FingerprintContext *ctx, const AlterDomainStmt *node
|
|
|
4223
4228
|
|
|
4224
4229
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4225
4230
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
|
4226
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4231
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
|
4227
4232
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4228
4233
|
if (ctx->write_tokens)
|
|
4229
4234
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4249,7 +4254,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
|
4249
4254
|
|
|
4250
4255
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4251
4256
|
_fingerprintNode(ctx, node->colCollations, node, "colCollations", depth + 1);
|
|
4252
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4257
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colCollations) == 1 && linitial(node->colCollations) == NIL)) {
|
|
4253
4258
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4254
4259
|
if (ctx->write_tokens)
|
|
4255
4260
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4265,7 +4270,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
|
4265
4270
|
|
|
4266
4271
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4267
4272
|
_fingerprintNode(ctx, node->colTypes, node, "colTypes", depth + 1);
|
|
4268
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4273
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colTypes) == 1 && linitial(node->colTypes) == NIL)) {
|
|
4269
4274
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4270
4275
|
if (ctx->write_tokens)
|
|
4271
4276
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4281,7 +4286,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
|
4281
4286
|
|
|
4282
4287
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4283
4288
|
_fingerprintNode(ctx, node->colTypmods, node, "colTypmods", depth + 1);
|
|
4284
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4289
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colTypmods) == 1 && linitial(node->colTypmods) == NIL)) {
|
|
4285
4290
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4286
4291
|
if (ctx->write_tokens)
|
|
4287
4292
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4297,7 +4302,7 @@ _fingerprintSetOperationStmt(FingerprintContext *ctx, const SetOperationStmt *no
|
|
|
4297
4302
|
|
|
4298
4303
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4299
4304
|
_fingerprintNode(ctx, node->groupClauses, node, "groupClauses", depth + 1);
|
|
4300
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4305
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->groupClauses) == 1 && linitial(node->groupClauses) == NIL)) {
|
|
4301
4306
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4302
4307
|
if (ctx->write_tokens)
|
|
4303
4308
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4367,7 +4372,7 @@ _fingerprintGrantStmt(FingerprintContext *ctx, const GrantStmt *node, const void
|
|
|
4367
4372
|
|
|
4368
4373
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4369
4374
|
_fingerprintNode(ctx, node->grantees, node, "grantees", depth + 1);
|
|
4370
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4375
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->grantees) == 1 && linitial(node->grantees) == NIL)) {
|
|
4371
4376
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4372
4377
|
if (ctx->write_tokens)
|
|
4373
4378
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4388,7 +4393,7 @@ _fingerprintGrantStmt(FingerprintContext *ctx, const GrantStmt *node, const void
|
|
|
4388
4393
|
|
|
4389
4394
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4390
4395
|
_fingerprintNode(ctx, node->objects, node, "objects", depth + 1);
|
|
4391
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4396
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objects) == 1 && linitial(node->objects) == NIL)) {
|
|
4392
4397
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4393
4398
|
if (ctx->write_tokens)
|
|
4394
4399
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4409,7 +4414,7 @@ _fingerprintGrantStmt(FingerprintContext *ctx, const GrantStmt *node, const void
|
|
|
4409
4414
|
|
|
4410
4415
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4411
4416
|
_fingerprintNode(ctx, node->privileges, node, "privileges", depth + 1);
|
|
4412
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4417
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->privileges) == 1 && linitial(node->privileges) == NIL)) {
|
|
4413
4418
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4414
4419
|
if (ctx->write_tokens)
|
|
4415
4420
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4445,7 +4450,7 @@ _fingerprintGrantRoleStmt(FingerprintContext *ctx, const GrantRoleStmt *node, co
|
|
|
4445
4450
|
|
|
4446
4451
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4447
4452
|
_fingerprintNode(ctx, node->granted_roles, node, "granted_roles", depth + 1);
|
|
4448
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4453
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->granted_roles) == 1 && linitial(node->granted_roles) == NIL)) {
|
|
4449
4454
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4450
4455
|
if (ctx->write_tokens)
|
|
4451
4456
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4461,7 +4466,7 @@ _fingerprintGrantRoleStmt(FingerprintContext *ctx, const GrantRoleStmt *node, co
|
|
|
4461
4466
|
|
|
4462
4467
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4463
4468
|
_fingerprintNode(ctx, node->grantee_roles, node, "grantee_roles", depth + 1);
|
|
4464
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4469
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->grantee_roles) == 1 && linitial(node->grantee_roles) == NIL)) {
|
|
4465
4470
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4466
4471
|
if (ctx->write_tokens)
|
|
4467
4472
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4521,7 +4526,7 @@ _fingerprintAlterDefaultPrivilegesStmt(FingerprintContext *ctx, const AlterDefau
|
|
|
4521
4526
|
|
|
4522
4527
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4523
4528
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
4524
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4529
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
4525
4530
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4526
4531
|
if (ctx->write_tokens)
|
|
4527
4532
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4583,7 +4588,7 @@ _fingerprintCopyStmt(FingerprintContext *ctx, const CopyStmt *node, const void *
|
|
|
4583
4588
|
|
|
4584
4589
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4585
4590
|
_fingerprintNode(ctx, node->attlist, node, "attlist", depth + 1);
|
|
4586
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4591
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->attlist) == 1 && linitial(node->attlist) == NIL)) {
|
|
4587
4592
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4588
4593
|
if (ctx->write_tokens)
|
|
4589
4594
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4614,7 +4619,7 @@ _fingerprintCopyStmt(FingerprintContext *ctx, const CopyStmt *node, const void *
|
|
|
4614
4619
|
|
|
4615
4620
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4616
4621
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
4617
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4622
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
4618
4623
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4619
4624
|
if (ctx->write_tokens)
|
|
4620
4625
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4691,7 +4696,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
|
4691
4696
|
|
|
4692
4697
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4693
4698
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
|
4694
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4699
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
|
4695
4700
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4696
4701
|
if (ctx->write_tokens)
|
|
4697
4702
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4712,7 +4717,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
|
4712
4717
|
|
|
4713
4718
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4714
4719
|
_fingerprintNode(ctx, node->inhRelations, node, "inhRelations", depth + 1);
|
|
4715
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4720
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->inhRelations) == 1 && linitial(node->inhRelations) == NIL)) {
|
|
4716
4721
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4717
4722
|
if (ctx->write_tokens)
|
|
4718
4723
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4750,7 +4755,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
|
4750
4755
|
|
|
4751
4756
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4752
4757
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
4753
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4758
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
4754
4759
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4755
4760
|
if (ctx->write_tokens)
|
|
4756
4761
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4817,7 +4822,7 @@ _fingerprintCreateStmt(FingerprintContext *ctx, const CreateStmt *node, const vo
|
|
|
4817
4822
|
|
|
4818
4823
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4819
4824
|
_fingerprintNode(ctx, node->tableElts, node, "tableElts", depth + 1);
|
|
4820
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4825
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tableElts) == 1 && linitial(node->tableElts) == NIL)) {
|
|
4821
4826
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4822
4827
|
if (ctx->write_tokens)
|
|
4823
4828
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4843,7 +4848,7 @@ _fingerprintDefineStmt(FingerprintContext *ctx, const DefineStmt *node, const vo
|
|
|
4843
4848
|
|
|
4844
4849
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4845
4850
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
4846
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4851
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
4847
4852
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4848
4853
|
if (ctx->write_tokens)
|
|
4849
4854
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4859,7 +4864,7 @@ _fingerprintDefineStmt(FingerprintContext *ctx, const DefineStmt *node, const vo
|
|
|
4859
4864
|
|
|
4860
4865
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4861
4866
|
_fingerprintNode(ctx, node->definition, node, "definition", depth + 1);
|
|
4862
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4867
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->definition) == 1 && linitial(node->definition) == NIL)) {
|
|
4863
4868
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4864
4869
|
if (ctx->write_tokens)
|
|
4865
4870
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4875,7 +4880,7 @@ _fingerprintDefineStmt(FingerprintContext *ctx, const DefineStmt *node, const vo
|
|
|
4875
4880
|
|
|
4876
4881
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4877
4882
|
_fingerprintNode(ctx, node->defnames, node, "defnames", depth + 1);
|
|
4878
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4883
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->defnames) == 1 && linitial(node->defnames) == NIL)) {
|
|
4879
4884
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4880
4885
|
if (ctx->write_tokens)
|
|
4881
4886
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4931,7 +4936,7 @@ _fingerprintDropStmt(FingerprintContext *ctx, const DropStmt *node, const void *
|
|
|
4931
4936
|
|
|
4932
4937
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4933
4938
|
_fingerprintNode(ctx, node->objects, node, "objects", depth + 1);
|
|
4934
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4939
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objects) == 1 && linitial(node->objects) == NIL)) {
|
|
4935
4940
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4936
4941
|
if (ctx->write_tokens)
|
|
4937
4942
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -4962,7 +4967,7 @@ _fingerprintTruncateStmt(FingerprintContext *ctx, const TruncateStmt *node, cons
|
|
|
4962
4967
|
|
|
4963
4968
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
4964
4969
|
_fingerprintNode(ctx, node->relations, node, "relations", depth + 1);
|
|
4965
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
4970
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->relations) == 1 && linitial(node->relations) == NIL)) {
|
|
4966
4971
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
4967
4972
|
if (ctx->write_tokens)
|
|
4968
4973
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5059,7 +5064,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
|
5059
5064
|
|
|
5060
5065
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5061
5066
|
_fingerprintNode(ctx, node->excludeOpNames, node, "excludeOpNames", depth + 1);
|
|
5062
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5067
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->excludeOpNames) == 1 && linitial(node->excludeOpNames) == NIL)) {
|
|
5063
5068
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5064
5069
|
if (ctx->write_tokens)
|
|
5065
5070
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5090,7 +5095,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
|
5090
5095
|
|
|
5091
5096
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5092
5097
|
_fingerprintNode(ctx, node->indexIncludingParams, node, "indexIncludingParams", depth + 1);
|
|
5093
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5098
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indexIncludingParams) == 1 && linitial(node->indexIncludingParams) == NIL)) {
|
|
5094
5099
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5095
5100
|
if (ctx->write_tokens)
|
|
5096
5101
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5113,7 +5118,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
|
5113
5118
|
|
|
5114
5119
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5115
5120
|
_fingerprintNode(ctx, node->indexParams, node, "indexParams", depth + 1);
|
|
5116
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5121
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indexParams) == 1 && linitial(node->indexParams) == NIL)) {
|
|
5117
5122
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5118
5123
|
if (ctx->write_tokens)
|
|
5119
5124
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5160,7 +5165,7 @@ _fingerprintIndexStmt(FingerprintContext *ctx, const IndexStmt *node, const void
|
|
|
5160
5165
|
|
|
5161
5166
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5162
5167
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5163
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5168
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5164
5169
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5165
5170
|
if (ctx->write_tokens)
|
|
5166
5171
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5240,7 +5245,7 @@ _fingerprintCreateFunctionStmt(FingerprintContext *ctx, const CreateFunctionStmt
|
|
|
5240
5245
|
|
|
5241
5246
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5242
5247
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
|
5243
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5248
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
|
5244
5249
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5245
5250
|
if (ctx->write_tokens)
|
|
5246
5251
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5252,22 +5257,8 @@ _fingerprintCreateFunctionStmt(FingerprintContext *ctx, const CreateFunctionStmt
|
|
|
5252
5257
|
_fingerprintString(ctx, "true");
|
|
5253
5258
|
}
|
|
5254
5259
|
|
|
5255
|
-
|
|
5256
|
-
XXH3_state_t* prev = XXH3_createState();
|
|
5257
|
-
XXH64_hash_t hash;
|
|
5258
|
-
|
|
5259
|
-
XXH3_copyState(prev, ctx->xxh_state);
|
|
5260
|
-
_fingerprintString(ctx, "options");
|
|
5260
|
+
// Intentionally ignoring node->options for fingerprinting
|
|
5261
5261
|
|
|
5262
|
-
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5263
|
-
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5264
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5265
|
-
XXH3_copyState(ctx->xxh_state, prev);
|
|
5266
|
-
if (ctx->write_tokens)
|
|
5267
|
-
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
5268
|
-
}
|
|
5269
|
-
XXH3_freeState(prev);
|
|
5270
|
-
}
|
|
5271
5262
|
if (node->parameters != NULL && node->parameters->length > 0) {
|
|
5272
5263
|
XXH3_state_t* prev = XXH3_createState();
|
|
5273
5264
|
XXH64_hash_t hash;
|
|
@@ -5277,7 +5268,7 @@ _fingerprintCreateFunctionStmt(FingerprintContext *ctx, const CreateFunctionStmt
|
|
|
5277
5268
|
|
|
5278
5269
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5279
5270
|
_fingerprintNode(ctx, node->parameters, node, "parameters", depth + 1);
|
|
5280
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5271
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->parameters) == 1 && linitial(node->parameters) == NIL)) {
|
|
5281
5272
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5282
5273
|
if (ctx->write_tokens)
|
|
5283
5274
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5320,7 +5311,7 @@ _fingerprintAlterFunctionStmt(FingerprintContext *ctx, const AlterFunctionStmt *
|
|
|
5320
5311
|
|
|
5321
5312
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5322
5313
|
_fingerprintNode(ctx, node->actions, node, "actions", depth + 1);
|
|
5323
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5314
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->actions) == 1 && linitial(node->actions) == NIL)) {
|
|
5324
5315
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5325
5316
|
if (ctx->write_tokens)
|
|
5326
5317
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5354,22 +5345,8 @@ _fingerprintAlterFunctionStmt(FingerprintContext *ctx, const AlterFunctionStmt *
|
|
|
5354
5345
|
static void
|
|
5355
5346
|
_fingerprintDoStmt(FingerprintContext *ctx, const DoStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
|
5356
5347
|
{
|
|
5357
|
-
|
|
5358
|
-
XXH3_state_t* prev = XXH3_createState();
|
|
5359
|
-
XXH64_hash_t hash;
|
|
5360
|
-
|
|
5361
|
-
XXH3_copyState(prev, ctx->xxh_state);
|
|
5362
|
-
_fingerprintString(ctx, "args");
|
|
5348
|
+
// Intentionally ignoring node->args for fingerprinting
|
|
5363
5349
|
|
|
5364
|
-
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5365
|
-
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
5366
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5367
|
-
XXH3_copyState(ctx->xxh_state, prev);
|
|
5368
|
-
if (ctx->write_tokens)
|
|
5369
|
-
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
5370
|
-
}
|
|
5371
|
-
XXH3_freeState(prev);
|
|
5372
|
-
}
|
|
5373
5350
|
}
|
|
5374
5351
|
|
|
5375
5352
|
static void
|
|
@@ -5453,7 +5430,7 @@ _fingerprintRuleStmt(FingerprintContext *ctx, const RuleStmt *node, const void *
|
|
|
5453
5430
|
|
|
5454
5431
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5455
5432
|
_fingerprintNode(ctx, node->actions, node, "actions", depth + 1);
|
|
5456
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5433
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->actions) == 1 && linitial(node->actions) == NIL)) {
|
|
5457
5434
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5458
5435
|
if (ctx->write_tokens)
|
|
5459
5436
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5519,10 +5496,7 @@ _fingerprintRuleStmt(FingerprintContext *ctx, const RuleStmt *node, const void *
|
|
|
5519
5496
|
static void
|
|
5520
5497
|
_fingerprintNotifyStmt(FingerprintContext *ctx, const NotifyStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
|
5521
5498
|
{
|
|
5522
|
-
|
|
5523
|
-
_fingerprintString(ctx, "conditionname");
|
|
5524
|
-
_fingerprintString(ctx, node->conditionname);
|
|
5525
|
-
}
|
|
5499
|
+
// Intentionally ignoring node->conditionname for fingerprinting
|
|
5526
5500
|
|
|
5527
5501
|
if (node->payload != NULL) {
|
|
5528
5502
|
_fingerprintString(ctx, "payload");
|
|
@@ -5534,20 +5508,14 @@ _fingerprintNotifyStmt(FingerprintContext *ctx, const NotifyStmt *node, const vo
|
|
|
5534
5508
|
static void
|
|
5535
5509
|
_fingerprintListenStmt(FingerprintContext *ctx, const ListenStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
|
5536
5510
|
{
|
|
5537
|
-
|
|
5538
|
-
_fingerprintString(ctx, "conditionname");
|
|
5539
|
-
_fingerprintString(ctx, node->conditionname);
|
|
5540
|
-
}
|
|
5511
|
+
// Intentionally ignoring node->conditionname for fingerprinting
|
|
5541
5512
|
|
|
5542
5513
|
}
|
|
5543
5514
|
|
|
5544
5515
|
static void
|
|
5545
5516
|
_fingerprintUnlistenStmt(FingerprintContext *ctx, const UnlistenStmt *node, const void *parent, const char *field_name, unsigned int depth)
|
|
5546
5517
|
{
|
|
5547
|
-
|
|
5548
|
-
_fingerprintString(ctx, "conditionname");
|
|
5549
|
-
_fingerprintString(ctx, node->conditionname);
|
|
5550
|
-
}
|
|
5518
|
+
// Intentionally ignoring node->conditionname for fingerprinting
|
|
5551
5519
|
|
|
5552
5520
|
}
|
|
5553
5521
|
|
|
@@ -5584,7 +5552,7 @@ _fingerprintViewStmt(FingerprintContext *ctx, const ViewStmt *node, const void *
|
|
|
5584
5552
|
|
|
5585
5553
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5586
5554
|
_fingerprintNode(ctx, node->aliases, node, "aliases", depth + 1);
|
|
5587
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5555
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aliases) == 1 && linitial(node->aliases) == NIL)) {
|
|
5588
5556
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5589
5557
|
if (ctx->write_tokens)
|
|
5590
5558
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5600,7 +5568,7 @@ _fingerprintViewStmt(FingerprintContext *ctx, const ViewStmt *node, const void *
|
|
|
5600
5568
|
|
|
5601
5569
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5602
5570
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5603
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5571
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5604
5572
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5605
5573
|
if (ctx->write_tokens)
|
|
5606
5574
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5692,7 +5660,7 @@ _fingerprintCreateDomainStmt(FingerprintContext *ctx, const CreateDomainStmt *no
|
|
|
5692
5660
|
|
|
5693
5661
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5694
5662
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
|
5695
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5663
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
|
5696
5664
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5697
5665
|
if (ctx->write_tokens)
|
|
5698
5666
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5708,7 +5676,7 @@ _fingerprintCreateDomainStmt(FingerprintContext *ctx, const CreateDomainStmt *no
|
|
|
5708
5676
|
|
|
5709
5677
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5710
5678
|
_fingerprintNode(ctx, node->domainname, node, "domainname", depth + 1);
|
|
5711
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5679
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->domainname) == 1 && linitial(node->domainname) == NIL)) {
|
|
5712
5680
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5713
5681
|
if (ctx->write_tokens)
|
|
5714
5682
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5751,7 +5719,7 @@ _fingerprintCreatedbStmt(FingerprintContext *ctx, const CreatedbStmt *node, cons
|
|
|
5751
5719
|
|
|
5752
5720
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5753
5721
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5754
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5722
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5755
5723
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5756
5724
|
if (ctx->write_tokens)
|
|
5757
5725
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5782,7 +5750,7 @@ _fingerprintDropdbStmt(FingerprintContext *ctx, const DropdbStmt *node, const vo
|
|
|
5782
5750
|
|
|
5783
5751
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5784
5752
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5785
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5753
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5786
5754
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5787
5755
|
if (ctx->write_tokens)
|
|
5788
5756
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5808,7 +5776,7 @@ _fingerprintVacuumStmt(FingerprintContext *ctx, const VacuumStmt *node, const vo
|
|
|
5808
5776
|
|
|
5809
5777
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5810
5778
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5811
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5779
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5812
5780
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5813
5781
|
if (ctx->write_tokens)
|
|
5814
5782
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5824,7 +5792,7 @@ _fingerprintVacuumStmt(FingerprintContext *ctx, const VacuumStmt *node, const vo
|
|
|
5824
5792
|
|
|
5825
5793
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5826
5794
|
_fingerprintNode(ctx, node->rels, node, "rels", depth + 1);
|
|
5827
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5795
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->rels) == 1 && linitial(node->rels) == NIL)) {
|
|
5828
5796
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5829
5797
|
if (ctx->write_tokens)
|
|
5830
5798
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5845,7 +5813,7 @@ _fingerprintExplainStmt(FingerprintContext *ctx, const ExplainStmt *node, const
|
|
|
5845
5813
|
|
|
5846
5814
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5847
5815
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5848
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5816
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5849
5817
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5850
5818
|
if (ctx->write_tokens)
|
|
5851
5819
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -5947,7 +5915,7 @@ _fingerprintCreateSeqStmt(FingerprintContext *ctx, const CreateSeqStmt *node, co
|
|
|
5947
5915
|
|
|
5948
5916
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
5949
5917
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
5950
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5918
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
5951
5919
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
5952
5920
|
if (ctx->write_tokens)
|
|
5953
5921
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6002,7 +5970,7 @@ _fingerprintAlterSeqStmt(FingerprintContext *ctx, const AlterSeqStmt *node, cons
|
|
|
6002
5970
|
|
|
6003
5971
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6004
5972
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
6005
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
5973
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
6006
5974
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6007
5975
|
if (ctx->write_tokens)
|
|
6008
5976
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6040,7 +6008,7 @@ _fingerprintVariableSetStmt(FingerprintContext *ctx, const VariableSetStmt *node
|
|
|
6040
6008
|
|
|
6041
6009
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6042
6010
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
6043
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6011
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
6044
6012
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6045
6013
|
if (ctx->write_tokens)
|
|
6046
6014
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6096,7 +6064,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
|
6096
6064
|
|
|
6097
6065
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6098
6066
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
6099
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6067
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
6100
6068
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6101
6069
|
if (ctx->write_tokens)
|
|
6102
6070
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6112,7 +6080,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
|
6112
6080
|
|
|
6113
6081
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6114
6082
|
_fingerprintNode(ctx, node->columns, node, "columns", depth + 1);
|
|
6115
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6083
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->columns) == 1 && linitial(node->columns) == NIL)) {
|
|
6116
6084
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6117
6085
|
if (ctx->write_tokens)
|
|
6118
6086
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6157,7 +6125,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
|
6157
6125
|
|
|
6158
6126
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6159
6127
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
|
6160
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6128
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
|
6161
6129
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6162
6130
|
if (ctx->write_tokens)
|
|
6163
6131
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6212,7 +6180,7 @@ _fingerprintCreateTrigStmt(FingerprintContext *ctx, const CreateTrigStmt *node,
|
|
|
6212
6180
|
|
|
6213
6181
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6214
6182
|
_fingerprintNode(ctx, node->transitionRels, node, "transitionRels", depth + 1);
|
|
6215
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6183
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->transitionRels) == 1 && linitial(node->transitionRels) == NIL)) {
|
|
6216
6184
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6217
6185
|
if (ctx->write_tokens)
|
|
6218
6186
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6255,7 +6223,7 @@ _fingerprintCreatePLangStmt(FingerprintContext *ctx, const CreatePLangStmt *node
|
|
|
6255
6223
|
|
|
6256
6224
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6257
6225
|
_fingerprintNode(ctx, node->plhandler, node, "plhandler", depth + 1);
|
|
6258
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6226
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->plhandler) == 1 && linitial(node->plhandler) == NIL)) {
|
|
6259
6227
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6260
6228
|
if (ctx->write_tokens)
|
|
6261
6229
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6271,7 +6239,7 @@ _fingerprintCreatePLangStmt(FingerprintContext *ctx, const CreatePLangStmt *node
|
|
|
6271
6239
|
|
|
6272
6240
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6273
6241
|
_fingerprintNode(ctx, node->plinline, node, "plinline", depth + 1);
|
|
6274
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6242
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->plinline) == 1 && linitial(node->plinline) == NIL)) {
|
|
6275
6243
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6276
6244
|
if (ctx->write_tokens)
|
|
6277
6245
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6297,7 +6265,7 @@ _fingerprintCreatePLangStmt(FingerprintContext *ctx, const CreatePLangStmt *node
|
|
|
6297
6265
|
|
|
6298
6266
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6299
6267
|
_fingerprintNode(ctx, node->plvalidator, node, "plvalidator", depth + 1);
|
|
6300
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6268
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->plvalidator) == 1 && linitial(node->plvalidator) == NIL)) {
|
|
6301
6269
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6302
6270
|
if (ctx->write_tokens)
|
|
6303
6271
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6323,7 +6291,7 @@ _fingerprintCreateRoleStmt(FingerprintContext *ctx, const CreateRoleStmt *node,
|
|
|
6323
6291
|
|
|
6324
6292
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6325
6293
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
6326
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6294
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
6327
6295
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6328
6296
|
if (ctx->write_tokens)
|
|
6329
6297
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6361,7 +6329,7 @@ _fingerprintAlterRoleStmt(FingerprintContext *ctx, const AlterRoleStmt *node, co
|
|
|
6361
6329
|
|
|
6362
6330
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6363
6331
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
6364
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6332
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
6365
6333
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6366
6334
|
if (ctx->write_tokens)
|
|
6367
6335
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6404,7 +6372,7 @@ _fingerprintDropRoleStmt(FingerprintContext *ctx, const DropRoleStmt *node, cons
|
|
|
6404
6372
|
|
|
6405
6373
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6406
6374
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
|
6407
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6375
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
|
6408
6376
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6409
6377
|
if (ctx->write_tokens)
|
|
6410
6378
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6437,7 +6405,7 @@ _fingerprintLockStmt(FingerprintContext *ctx, const LockStmt *node, const void *
|
|
|
6437
6405
|
|
|
6438
6406
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6439
6407
|
_fingerprintNode(ctx, node->relations, node, "relations", depth + 1);
|
|
6440
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6408
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->relations) == 1 && linitial(node->relations) == NIL)) {
|
|
6441
6409
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6442
6410
|
if (ctx->write_tokens)
|
|
6443
6411
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6458,7 +6426,7 @@ _fingerprintConstraintsSetStmt(FingerprintContext *ctx, const ConstraintsSetStmt
|
|
|
6458
6426
|
|
|
6459
6427
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6460
6428
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
|
6461
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6429
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
|
6462
6430
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6463
6431
|
if (ctx->write_tokens)
|
|
6464
6432
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6555,7 +6523,7 @@ _fingerprintCreateSchemaStmt(FingerprintContext *ctx, const CreateSchemaStmt *no
|
|
|
6555
6523
|
|
|
6556
6524
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6557
6525
|
_fingerprintNode(ctx, node->schemaElts, node, "schemaElts", depth + 1);
|
|
6558
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6526
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->schemaElts) == 1 && linitial(node->schemaElts) == NIL)) {
|
|
6559
6527
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6560
6528
|
if (ctx->write_tokens)
|
|
6561
6529
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6586,7 +6554,7 @@ _fingerprintAlterDatabaseStmt(FingerprintContext *ctx, const AlterDatabaseStmt *
|
|
|
6586
6554
|
|
|
6587
6555
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6588
6556
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
6589
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6557
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
6590
6558
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6591
6559
|
if (ctx->write_tokens)
|
|
6592
6560
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6678,7 +6646,7 @@ _fingerprintCreateConversionStmt(FingerprintContext *ctx, const CreateConversion
|
|
|
6678
6646
|
|
|
6679
6647
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6680
6648
|
_fingerprintNode(ctx, node->conversion_name, node, "conversion_name", depth + 1);
|
|
6681
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6649
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->conversion_name) == 1 && linitial(node->conversion_name) == NIL)) {
|
|
6682
6650
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6683
6651
|
if (ctx->write_tokens)
|
|
6684
6652
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6704,7 +6672,7 @@ _fingerprintCreateConversionStmt(FingerprintContext *ctx, const CreateConversion
|
|
|
6704
6672
|
|
|
6705
6673
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6706
6674
|
_fingerprintNode(ctx, node->func_name, node, "func_name", depth + 1);
|
|
6707
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6675
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->func_name) == 1 && linitial(node->func_name) == NIL)) {
|
|
6708
6676
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6709
6677
|
if (ctx->write_tokens)
|
|
6710
6678
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6823,7 +6791,7 @@ _fingerprintCreateOpClassStmt(FingerprintContext *ctx, const CreateOpClassStmt *
|
|
|
6823
6791
|
|
|
6824
6792
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6825
6793
|
_fingerprintNode(ctx, node->items, node, "items", depth + 1);
|
|
6826
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6794
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->items) == 1 && linitial(node->items) == NIL)) {
|
|
6827
6795
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6828
6796
|
if (ctx->write_tokens)
|
|
6829
6797
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6839,7 +6807,7 @@ _fingerprintCreateOpClassStmt(FingerprintContext *ctx, const CreateOpClassStmt *
|
|
|
6839
6807
|
|
|
6840
6808
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6841
6809
|
_fingerprintNode(ctx, node->opclassname, node, "opclassname", depth + 1);
|
|
6842
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6810
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclassname) == 1 && linitial(node->opclassname) == NIL)) {
|
|
6843
6811
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6844
6812
|
if (ctx->write_tokens)
|
|
6845
6813
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6855,7 +6823,7 @@ _fingerprintCreateOpClassStmt(FingerprintContext *ctx, const CreateOpClassStmt *
|
|
|
6855
6823
|
|
|
6856
6824
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6857
6825
|
_fingerprintNode(ctx, node->opfamilyname, node, "opfamilyname", depth + 1);
|
|
6858
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6826
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilyname) == 1 && linitial(node->opfamilyname) == NIL)) {
|
|
6859
6827
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6860
6828
|
if (ctx->write_tokens)
|
|
6861
6829
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6881,7 +6849,7 @@ _fingerprintCreateOpFamilyStmt(FingerprintContext *ctx, const CreateOpFamilyStmt
|
|
|
6881
6849
|
|
|
6882
6850
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6883
6851
|
_fingerprintNode(ctx, node->opfamilyname, node, "opfamilyname", depth + 1);
|
|
6884
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6852
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilyname) == 1 && linitial(node->opfamilyname) == NIL)) {
|
|
6885
6853
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6886
6854
|
if (ctx->write_tokens)
|
|
6887
6855
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6912,7 +6880,7 @@ _fingerprintAlterOpFamilyStmt(FingerprintContext *ctx, const AlterOpFamilyStmt *
|
|
|
6912
6880
|
|
|
6913
6881
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6914
6882
|
_fingerprintNode(ctx, node->items, node, "items", depth + 1);
|
|
6915
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6883
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->items) == 1 && linitial(node->items) == NIL)) {
|
|
6916
6884
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6917
6885
|
if (ctx->write_tokens)
|
|
6918
6886
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6928,7 +6896,7 @@ _fingerprintAlterOpFamilyStmt(FingerprintContext *ctx, const AlterOpFamilyStmt *
|
|
|
6928
6896
|
|
|
6929
6897
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6930
6898
|
_fingerprintNode(ctx, node->opfamilyname, node, "opfamilyname", depth + 1);
|
|
6931
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6899
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opfamilyname) == 1 && linitial(node->opfamilyname) == NIL)) {
|
|
6932
6900
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6933
6901
|
if (ctx->write_tokens)
|
|
6934
6902
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6949,7 +6917,7 @@ _fingerprintPrepareStmt(FingerprintContext *ctx, const PrepareStmt *node, const
|
|
|
6949
6917
|
|
|
6950
6918
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6951
6919
|
_fingerprintNode(ctx, node->argtypes, node, "argtypes", depth + 1);
|
|
6952
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6920
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->argtypes) == 1 && linitial(node->argtypes) == NIL)) {
|
|
6953
6921
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6954
6922
|
if (ctx->write_tokens)
|
|
6955
6923
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -6991,7 +6959,7 @@ _fingerprintExecuteStmt(FingerprintContext *ctx, const ExecuteStmt *node, const
|
|
|
6991
6959
|
|
|
6992
6960
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
6993
6961
|
_fingerprintNode(ctx, node->params, node, "params", depth + 1);
|
|
6994
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
6962
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->params) == 1 && linitial(node->params) == NIL)) {
|
|
6995
6963
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
6996
6964
|
if (ctx->write_tokens)
|
|
6997
6965
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7052,7 +7020,7 @@ _fingerprintCreateTableSpaceStmt(FingerprintContext *ctx, const CreateTableSpace
|
|
|
7052
7020
|
|
|
7053
7021
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7054
7022
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7055
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7023
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7056
7024
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7057
7025
|
if (ctx->write_tokens)
|
|
7058
7026
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7308,7 +7276,7 @@ _fingerprintAlterOperatorStmt(FingerprintContext *ctx, const AlterOperatorStmt *
|
|
|
7308
7276
|
|
|
7309
7277
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7310
7278
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7311
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7279
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7312
7280
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7313
7281
|
if (ctx->write_tokens)
|
|
7314
7282
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7329,7 +7297,7 @@ _fingerprintAlterTypeStmt(FingerprintContext *ctx, const AlterTypeStmt *node, co
|
|
|
7329
7297
|
|
|
7330
7298
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7331
7299
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7332
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7300
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7333
7301
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7334
7302
|
if (ctx->write_tokens)
|
|
7335
7303
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7345,7 +7313,7 @@ _fingerprintAlterTypeStmt(FingerprintContext *ctx, const AlterTypeStmt *node, co
|
|
|
7345
7313
|
|
|
7346
7314
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7347
7315
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
|
7348
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7316
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
|
7349
7317
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7350
7318
|
if (ctx->write_tokens)
|
|
7351
7319
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7371,7 +7339,7 @@ _fingerprintDropOwnedStmt(FingerprintContext *ctx, const DropOwnedStmt *node, co
|
|
|
7371
7339
|
|
|
7372
7340
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7373
7341
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
|
7374
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7342
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
|
7375
7343
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7376
7344
|
if (ctx->write_tokens)
|
|
7377
7345
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7409,7 +7377,7 @@ _fingerprintReassignOwnedStmt(FingerprintContext *ctx, const ReassignOwnedStmt *
|
|
|
7409
7377
|
|
|
7410
7378
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7411
7379
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
|
7412
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7380
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
|
7413
7381
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7414
7382
|
if (ctx->write_tokens)
|
|
7415
7383
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7430,7 +7398,7 @@ _fingerprintCompositeTypeStmt(FingerprintContext *ctx, const CompositeTypeStmt *
|
|
|
7430
7398
|
|
|
7431
7399
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7432
7400
|
_fingerprintNode(ctx, node->coldeflist, node, "coldeflist", depth + 1);
|
|
7433
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7401
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coldeflist) == 1 && linitial(node->coldeflist) == NIL)) {
|
|
7434
7402
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7435
7403
|
if (ctx->write_tokens)
|
|
7436
7404
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7468,7 +7436,7 @@ _fingerprintCreateEnumStmt(FingerprintContext *ctx, const CreateEnumStmt *node,
|
|
|
7468
7436
|
|
|
7469
7437
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7470
7438
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
|
7471
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7439
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
|
7472
7440
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7473
7441
|
if (ctx->write_tokens)
|
|
7474
7442
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7484,7 +7452,7 @@ _fingerprintCreateEnumStmt(FingerprintContext *ctx, const CreateEnumStmt *node,
|
|
|
7484
7452
|
|
|
7485
7453
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7486
7454
|
_fingerprintNode(ctx, node->vals, node, "vals", depth + 1);
|
|
7487
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7455
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->vals) == 1 && linitial(node->vals) == NIL)) {
|
|
7488
7456
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7489
7457
|
if (ctx->write_tokens)
|
|
7490
7458
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7505,7 +7473,7 @@ _fingerprintCreateRangeStmt(FingerprintContext *ctx, const CreateRangeStmt *node
|
|
|
7505
7473
|
|
|
7506
7474
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7507
7475
|
_fingerprintNode(ctx, node->params, node, "params", depth + 1);
|
|
7508
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7476
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->params) == 1 && linitial(node->params) == NIL)) {
|
|
7509
7477
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7510
7478
|
if (ctx->write_tokens)
|
|
7511
7479
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7521,7 +7489,7 @@ _fingerprintCreateRangeStmt(FingerprintContext *ctx, const CreateRangeStmt *node
|
|
|
7521
7489
|
|
|
7522
7490
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7523
7491
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
|
7524
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7492
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
|
7525
7493
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7526
7494
|
if (ctx->write_tokens)
|
|
7527
7495
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7567,7 +7535,7 @@ _fingerprintAlterEnumStmt(FingerprintContext *ctx, const AlterEnumStmt *node, co
|
|
|
7567
7535
|
|
|
7568
7536
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7569
7537
|
_fingerprintNode(ctx, node->typeName, node, "typeName", depth + 1);
|
|
7570
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7538
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typeName) == 1 && linitial(node->typeName) == NIL)) {
|
|
7571
7539
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7572
7540
|
if (ctx->write_tokens)
|
|
7573
7541
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7588,7 +7556,7 @@ _fingerprintAlterTSDictionaryStmt(FingerprintContext *ctx, const AlterTSDictiona
|
|
|
7588
7556
|
|
|
7589
7557
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7590
7558
|
_fingerprintNode(ctx, node->dictname, node, "dictname", depth + 1);
|
|
7591
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7559
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->dictname) == 1 && linitial(node->dictname) == NIL)) {
|
|
7592
7560
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7593
7561
|
if (ctx->write_tokens)
|
|
7594
7562
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7604,7 +7572,7 @@ _fingerprintAlterTSDictionaryStmt(FingerprintContext *ctx, const AlterTSDictiona
|
|
|
7604
7572
|
|
|
7605
7573
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7606
7574
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7607
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7575
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7608
7576
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7609
7577
|
if (ctx->write_tokens)
|
|
7610
7578
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7625,7 +7593,7 @@ _fingerprintAlterTSConfigurationStmt(FingerprintContext *ctx, const AlterTSConfi
|
|
|
7625
7593
|
|
|
7626
7594
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7627
7595
|
_fingerprintNode(ctx, node->cfgname, node, "cfgname", depth + 1);
|
|
7628
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7596
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cfgname) == 1 && linitial(node->cfgname) == NIL)) {
|
|
7629
7597
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7630
7598
|
if (ctx->write_tokens)
|
|
7631
7599
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7641,7 +7609,7 @@ _fingerprintAlterTSConfigurationStmt(FingerprintContext *ctx, const AlterTSConfi
|
|
|
7641
7609
|
|
|
7642
7610
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7643
7611
|
_fingerprintNode(ctx, node->dicts, node, "dicts", depth + 1);
|
|
7644
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7612
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->dicts) == 1 && linitial(node->dicts) == NIL)) {
|
|
7645
7613
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7646
7614
|
if (ctx->write_tokens)
|
|
7647
7615
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7677,7 +7645,7 @@ _fingerprintAlterTSConfigurationStmt(FingerprintContext *ctx, const AlterTSConfi
|
|
|
7677
7645
|
|
|
7678
7646
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7679
7647
|
_fingerprintNode(ctx, node->tokentype, node, "tokentype", depth + 1);
|
|
7680
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7648
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tokentype) == 1 && linitial(node->tokentype) == NIL)) {
|
|
7681
7649
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7682
7650
|
if (ctx->write_tokens)
|
|
7683
7651
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7703,7 +7671,7 @@ _fingerprintCreateFdwStmt(FingerprintContext *ctx, const CreateFdwStmt *node, co
|
|
|
7703
7671
|
|
|
7704
7672
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7705
7673
|
_fingerprintNode(ctx, node->func_options, node, "func_options", depth + 1);
|
|
7706
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7674
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->func_options) == 1 && linitial(node->func_options) == NIL)) {
|
|
7707
7675
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7708
7676
|
if (ctx->write_tokens)
|
|
7709
7677
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7719,7 +7687,7 @@ _fingerprintCreateFdwStmt(FingerprintContext *ctx, const CreateFdwStmt *node, co
|
|
|
7719
7687
|
|
|
7720
7688
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7721
7689
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7722
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7690
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7723
7691
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7724
7692
|
if (ctx->write_tokens)
|
|
7725
7693
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7745,7 +7713,7 @@ _fingerprintAlterFdwStmt(FingerprintContext *ctx, const AlterFdwStmt *node, cons
|
|
|
7745
7713
|
|
|
7746
7714
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7747
7715
|
_fingerprintNode(ctx, node->func_options, node, "func_options", depth + 1);
|
|
7748
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7716
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->func_options) == 1 && linitial(node->func_options) == NIL)) {
|
|
7749
7717
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7750
7718
|
if (ctx->write_tokens)
|
|
7751
7719
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7761,7 +7729,7 @@ _fingerprintAlterFdwStmt(FingerprintContext *ctx, const AlterFdwStmt *node, cons
|
|
|
7761
7729
|
|
|
7762
7730
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7763
7731
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7764
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7732
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7765
7733
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7766
7734
|
if (ctx->write_tokens)
|
|
7767
7735
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7792,7 +7760,7 @@ _fingerprintCreateForeignServerStmt(FingerprintContext *ctx, const CreateForeign
|
|
|
7792
7760
|
|
|
7793
7761
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7794
7762
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7795
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7763
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7796
7764
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7797
7765
|
if (ctx->write_tokens)
|
|
7798
7766
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7833,7 +7801,7 @@ _fingerprintAlterForeignServerStmt(FingerprintContext *ctx, const AlterForeignSe
|
|
|
7833
7801
|
|
|
7834
7802
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7835
7803
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7836
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7804
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7837
7805
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7838
7806
|
if (ctx->write_tokens)
|
|
7839
7807
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7869,7 +7837,7 @@ _fingerprintCreateUserMappingStmt(FingerprintContext *ctx, const CreateUserMappi
|
|
|
7869
7837
|
|
|
7870
7838
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7871
7839
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7872
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7840
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7873
7841
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7874
7842
|
if (ctx->write_tokens)
|
|
7875
7843
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7912,7 +7880,7 @@ _fingerprintAlterUserMappingStmt(FingerprintContext *ctx, const AlterUserMapping
|
|
|
7912
7880
|
|
|
7913
7881
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7914
7882
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7915
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7883
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7916
7884
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7917
7885
|
if (ctx->write_tokens)
|
|
7918
7886
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -7992,7 +7960,7 @@ _fingerprintAlterTableSpaceOptionsStmt(FingerprintContext *ctx, const AlterTable
|
|
|
7992
7960
|
|
|
7993
7961
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
7994
7962
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
7995
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
7963
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
7996
7964
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
7997
7965
|
if (ctx->write_tokens)
|
|
7998
7966
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8038,7 +8006,7 @@ _fingerprintAlterTableMoveAllStmt(FingerprintContext *ctx, const AlterTableMoveA
|
|
|
8038
8006
|
|
|
8039
8007
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8040
8008
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
|
8041
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8009
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
|
8042
8010
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8043
8011
|
if (ctx->write_tokens)
|
|
8044
8012
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8098,7 +8066,7 @@ _fingerprintCreateForeignTableStmt(FingerprintContext *ctx, const CreateForeignT
|
|
|
8098
8066
|
|
|
8099
8067
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8100
8068
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8101
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8069
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8102
8070
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8103
8071
|
if (ctx->write_tokens)
|
|
8104
8072
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8134,7 +8102,7 @@ _fingerprintImportForeignSchemaStmt(FingerprintContext *ctx, const ImportForeign
|
|
|
8134
8102
|
|
|
8135
8103
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8136
8104
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8137
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8105
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8138
8106
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8139
8107
|
if (ctx->write_tokens)
|
|
8140
8108
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8160,7 +8128,7 @@ _fingerprintImportForeignSchemaStmt(FingerprintContext *ctx, const ImportForeign
|
|
|
8160
8128
|
|
|
8161
8129
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8162
8130
|
_fingerprintNode(ctx, node->table_list, node, "table_list", depth + 1);
|
|
8163
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8131
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->table_list) == 1 && linitial(node->table_list) == NIL)) {
|
|
8164
8132
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8165
8133
|
if (ctx->write_tokens)
|
|
8166
8134
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8191,7 +8159,7 @@ _fingerprintCreateExtensionStmt(FingerprintContext *ctx, const CreateExtensionSt
|
|
|
8191
8159
|
|
|
8192
8160
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8193
8161
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8194
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8162
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8195
8163
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8196
8164
|
if (ctx->write_tokens)
|
|
8197
8165
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8217,7 +8185,7 @@ _fingerprintAlterExtensionStmt(FingerprintContext *ctx, const AlterExtensionStmt
|
|
|
8217
8185
|
|
|
8218
8186
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8219
8187
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8220
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8188
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8221
8189
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8222
8190
|
if (ctx->write_tokens)
|
|
8223
8191
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8282,7 +8250,7 @@ _fingerprintCreateEventTrigStmt(FingerprintContext *ctx, const CreateEventTrigSt
|
|
|
8282
8250
|
|
|
8283
8251
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8284
8252
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
|
8285
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8253
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
|
8286
8254
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8287
8255
|
if (ctx->write_tokens)
|
|
8288
8256
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8303,7 +8271,7 @@ _fingerprintCreateEventTrigStmt(FingerprintContext *ctx, const CreateEventTrigSt
|
|
|
8303
8271
|
|
|
8304
8272
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8305
8273
|
_fingerprintNode(ctx, node->whenclause, node, "whenclause", depth + 1);
|
|
8306
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8274
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->whenclause) == 1 && linitial(node->whenclause) == NIL)) {
|
|
8307
8275
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8308
8276
|
if (ctx->write_tokens)
|
|
8309
8277
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8442,7 +8410,7 @@ _fingerprintCreatePolicyStmt(FingerprintContext *ctx, const CreatePolicyStmt *no
|
|
|
8442
8410
|
|
|
8443
8411
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8444
8412
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
|
8445
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8413
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
|
8446
8414
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8447
8415
|
if (ctx->write_tokens)
|
|
8448
8416
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8519,7 +8487,7 @@ _fingerprintAlterPolicyStmt(FingerprintContext *ctx, const AlterPolicyStmt *node
|
|
|
8519
8487
|
|
|
8520
8488
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8521
8489
|
_fingerprintNode(ctx, node->roles, node, "roles", depth + 1);
|
|
8522
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8490
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->roles) == 1 && linitial(node->roles) == NIL)) {
|
|
8523
8491
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8524
8492
|
if (ctx->write_tokens)
|
|
8525
8493
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8651,7 +8619,7 @@ _fingerprintCreateAmStmt(FingerprintContext *ctx, const CreateAmStmt *node, cons
|
|
|
8651
8619
|
|
|
8652
8620
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8653
8621
|
_fingerprintNode(ctx, node->handler_name, node, "handler_name", depth + 1);
|
|
8654
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8622
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->handler_name) == 1 && linitial(node->handler_name) == NIL)) {
|
|
8655
8623
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8656
8624
|
if (ctx->write_tokens)
|
|
8657
8625
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8677,7 +8645,7 @@ _fingerprintCreatePublicationStmt(FingerprintContext *ctx, const CreatePublicati
|
|
|
8677
8645
|
|
|
8678
8646
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8679
8647
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8680
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8648
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8681
8649
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8682
8650
|
if (ctx->write_tokens)
|
|
8683
8651
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8698,7 +8666,7 @@ _fingerprintCreatePublicationStmt(FingerprintContext *ctx, const CreatePublicati
|
|
|
8698
8666
|
|
|
8699
8667
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8700
8668
|
_fingerprintNode(ctx, node->tables, node, "tables", depth + 1);
|
|
8701
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8669
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tables) == 1 && linitial(node->tables) == NIL)) {
|
|
8702
8670
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8703
8671
|
if (ctx->write_tokens)
|
|
8704
8672
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8724,7 +8692,7 @@ _fingerprintAlterPublicationStmt(FingerprintContext *ctx, const AlterPublication
|
|
|
8724
8692
|
|
|
8725
8693
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8726
8694
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8727
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8695
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8728
8696
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8729
8697
|
if (ctx->write_tokens)
|
|
8730
8698
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8750,7 +8718,7 @@ _fingerprintAlterPublicationStmt(FingerprintContext *ctx, const AlterPublication
|
|
|
8750
8718
|
|
|
8751
8719
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8752
8720
|
_fingerprintNode(ctx, node->tables, node, "tables", depth + 1);
|
|
8753
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8721
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->tables) == 1 && linitial(node->tables) == NIL)) {
|
|
8754
8722
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8755
8723
|
if (ctx->write_tokens)
|
|
8756
8724
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8776,7 +8744,7 @@ _fingerprintCreateSubscriptionStmt(FingerprintContext *ctx, const CreateSubscrip
|
|
|
8776
8744
|
|
|
8777
8745
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8778
8746
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8779
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8747
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8780
8748
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8781
8749
|
if (ctx->write_tokens)
|
|
8782
8750
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8792,7 +8760,7 @@ _fingerprintCreateSubscriptionStmt(FingerprintContext *ctx, const CreateSubscrip
|
|
|
8792
8760
|
|
|
8793
8761
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8794
8762
|
_fingerprintNode(ctx, node->publication, node, "publication", depth + 1);
|
|
8795
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8763
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->publication) == 1 && linitial(node->publication) == NIL)) {
|
|
8796
8764
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8797
8765
|
if (ctx->write_tokens)
|
|
8798
8766
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8828,7 +8796,7 @@ _fingerprintAlterSubscriptionStmt(FingerprintContext *ctx, const AlterSubscripti
|
|
|
8828
8796
|
|
|
8829
8797
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8830
8798
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
8831
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8799
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
8832
8800
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8833
8801
|
if (ctx->write_tokens)
|
|
8834
8802
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8844,7 +8812,7 @@ _fingerprintAlterSubscriptionStmt(FingerprintContext *ctx, const AlterSubscripti
|
|
|
8844
8812
|
|
|
8845
8813
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8846
8814
|
_fingerprintNode(ctx, node->publication, node, "publication", depth + 1);
|
|
8847
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8815
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->publication) == 1 && linitial(node->publication) == NIL)) {
|
|
8848
8816
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8849
8817
|
if (ctx->write_tokens)
|
|
8850
8818
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8890,7 +8858,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
|
8890
8858
|
|
|
8891
8859
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8892
8860
|
_fingerprintNode(ctx, node->defnames, node, "defnames", depth + 1);
|
|
8893
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8861
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->defnames) == 1 && linitial(node->defnames) == NIL)) {
|
|
8894
8862
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8895
8863
|
if (ctx->write_tokens)
|
|
8896
8864
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8906,7 +8874,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
|
8906
8874
|
|
|
8907
8875
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8908
8876
|
_fingerprintNode(ctx, node->exprs, node, "exprs", depth + 1);
|
|
8909
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8877
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->exprs) == 1 && linitial(node->exprs) == NIL)) {
|
|
8910
8878
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8911
8879
|
if (ctx->write_tokens)
|
|
8912
8880
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8927,7 +8895,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
|
8927
8895
|
|
|
8928
8896
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8929
8897
|
_fingerprintNode(ctx, node->relations, node, "relations", depth + 1);
|
|
8930
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8898
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->relations) == 1 && linitial(node->relations) == NIL)) {
|
|
8931
8899
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8932
8900
|
if (ctx->write_tokens)
|
|
8933
8901
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8943,7 +8911,7 @@ _fingerprintCreateStatsStmt(FingerprintContext *ctx, const CreateStatsStmt *node
|
|
|
8943
8911
|
|
|
8944
8912
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8945
8913
|
_fingerprintNode(ctx, node->stat_types, node, "stat_types", depth + 1);
|
|
8946
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8914
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->stat_types) == 1 && linitial(node->stat_types) == NIL)) {
|
|
8947
8915
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8948
8916
|
if (ctx->write_tokens)
|
|
8949
8917
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -8969,7 +8937,7 @@ _fingerprintAlterCollationStmt(FingerprintContext *ctx, const AlterCollationStmt
|
|
|
8969
8937
|
|
|
8970
8938
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
8971
8939
|
_fingerprintNode(ctx, node->collname, node, "collname", depth + 1);
|
|
8972
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
8940
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collname) == 1 && linitial(node->collname) == NIL)) {
|
|
8973
8941
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
8974
8942
|
if (ctx->write_tokens)
|
|
8975
8943
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9029,7 +8997,7 @@ _fingerprintAlterStatsStmt(FingerprintContext *ctx, const AlterStatsStmt *node,
|
|
|
9029
8997
|
|
|
9030
8998
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9031
8999
|
_fingerprintNode(ctx, node->defnames, node, "defnames", depth + 1);
|
|
9032
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9000
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->defnames) == 1 && linitial(node->defnames) == NIL)) {
|
|
9033
9001
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9034
9002
|
if (ctx->write_tokens)
|
|
9035
9003
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9089,7 +9057,7 @@ _fingerprintA_Expr(FingerprintContext *ctx, const A_Expr *node, const void *pare
|
|
|
9089
9057
|
|
|
9090
9058
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9091
9059
|
_fingerprintNode(ctx, node->name, node, "name", depth + 1);
|
|
9092
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9060
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->name) == 1 && linitial(node->name) == NIL)) {
|
|
9093
9061
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9094
9062
|
if (ctx->write_tokens)
|
|
9095
9063
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9127,7 +9095,7 @@ _fingerprintColumnRef(FingerprintContext *ctx, const ColumnRef *node, const void
|
|
|
9127
9095
|
|
|
9128
9096
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9129
9097
|
_fingerprintNode(ctx, node->fields, node, "fields", depth + 1);
|
|
9130
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9098
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fields) == 1 && linitial(node->fields) == NIL)) {
|
|
9131
9099
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9132
9100
|
if (ctx->write_tokens)
|
|
9133
9101
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9184,7 +9152,7 @@ _fingerprintFuncCall(FingerprintContext *ctx, const FuncCall *node, const void *
|
|
|
9184
9152
|
|
|
9185
9153
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9186
9154
|
_fingerprintNode(ctx, node->agg_order, node, "agg_order", depth + 1);
|
|
9187
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9155
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->agg_order) == 1 && linitial(node->agg_order) == NIL)) {
|
|
9188
9156
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9189
9157
|
if (ctx->write_tokens)
|
|
9190
9158
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9210,7 +9178,7 @@ _fingerprintFuncCall(FingerprintContext *ctx, const FuncCall *node, const void *
|
|
|
9210
9178
|
|
|
9211
9179
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9212
9180
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
9213
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9181
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
9214
9182
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9215
9183
|
if (ctx->write_tokens)
|
|
9216
9184
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9231,7 +9199,7 @@ _fingerprintFuncCall(FingerprintContext *ctx, const FuncCall *node, const void *
|
|
|
9231
9199
|
|
|
9232
9200
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9233
9201
|
_fingerprintNode(ctx, node->funcname, node, "funcname", depth + 1);
|
|
9234
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9202
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funcname) == 1 && linitial(node->funcname) == NIL)) {
|
|
9235
9203
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9236
9204
|
if (ctx->write_tokens)
|
|
9237
9205
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9337,7 +9305,7 @@ _fingerprintA_Indirection(FingerprintContext *ctx, const A_Indirection *node, co
|
|
|
9337
9305
|
|
|
9338
9306
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9339
9307
|
_fingerprintNode(ctx, node->indirection, node, "indirection", depth + 1);
|
|
9340
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9308
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indirection) == 1 && linitial(node->indirection) == NIL)) {
|
|
9341
9309
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9342
9310
|
if (ctx->write_tokens)
|
|
9343
9311
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9358,7 +9326,7 @@ _fingerprintA_ArrayExpr(FingerprintContext *ctx, const A_ArrayExpr *node, const
|
|
|
9358
9326
|
|
|
9359
9327
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9360
9328
|
_fingerprintNode(ctx, node->elements, node, "elements", depth + 1);
|
|
9361
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9329
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->elements) == 1 && linitial(node->elements) == NIL)) {
|
|
9362
9330
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9363
9331
|
if (ctx->write_tokens)
|
|
9364
9332
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9381,7 +9349,7 @@ _fingerprintResTarget(FingerprintContext *ctx, const ResTarget *node, const void
|
|
|
9381
9349
|
|
|
9382
9350
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9383
9351
|
_fingerprintNode(ctx, node->indirection, node, "indirection", depth + 1);
|
|
9384
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9352
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indirection) == 1 && linitial(node->indirection) == NIL)) {
|
|
9385
9353
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9386
9354
|
if (ctx->write_tokens)
|
|
9387
9355
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9520,7 +9488,7 @@ _fingerprintCollateClause(FingerprintContext *ctx, const CollateClause *node, co
|
|
|
9520
9488
|
|
|
9521
9489
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9522
9490
|
_fingerprintNode(ctx, node->collname, node, "collname", depth + 1);
|
|
9523
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9491
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collname) == 1 && linitial(node->collname) == NIL)) {
|
|
9524
9492
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9525
9493
|
if (ctx->write_tokens)
|
|
9526
9494
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9572,7 +9540,7 @@ _fingerprintSortBy(FingerprintContext *ctx, const SortBy *node, const void *pare
|
|
|
9572
9540
|
|
|
9573
9541
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9574
9542
|
_fingerprintNode(ctx, node->useOp, node, "useOp", depth + 1);
|
|
9575
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9543
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->useOp) == 1 && linitial(node->useOp) == NIL)) {
|
|
9576
9544
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9577
9545
|
if (ctx->write_tokens)
|
|
9578
9546
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9624,7 +9592,7 @@ _fingerprintWindowDef(FingerprintContext *ctx, const WindowDef *node, const void
|
|
|
9624
9592
|
|
|
9625
9593
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9626
9594
|
_fingerprintNode(ctx, node->orderClause, node, "orderClause", depth + 1);
|
|
9627
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9595
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->orderClause) == 1 && linitial(node->orderClause) == NIL)) {
|
|
9628
9596
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9629
9597
|
if (ctx->write_tokens)
|
|
9630
9598
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9640,7 +9608,7 @@ _fingerprintWindowDef(FingerprintContext *ctx, const WindowDef *node, const void
|
|
|
9640
9608
|
|
|
9641
9609
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9642
9610
|
_fingerprintNode(ctx, node->partitionClause, node, "partitionClause", depth + 1);
|
|
9643
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9611
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->partitionClause) == 1 && linitial(node->partitionClause) == NIL)) {
|
|
9644
9612
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9645
9613
|
if (ctx->write_tokens)
|
|
9646
9614
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9744,7 +9712,7 @@ _fingerprintRangeFunction(FingerprintContext *ctx, const RangeFunction *node, co
|
|
|
9744
9712
|
|
|
9745
9713
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9746
9714
|
_fingerprintNode(ctx, node->coldeflist, node, "coldeflist", depth + 1);
|
|
9747
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9715
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coldeflist) == 1 && linitial(node->coldeflist) == NIL)) {
|
|
9748
9716
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9749
9717
|
if (ctx->write_tokens)
|
|
9750
9718
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9760,7 +9728,7 @@ _fingerprintRangeFunction(FingerprintContext *ctx, const RangeFunction *node, co
|
|
|
9760
9728
|
|
|
9761
9729
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9762
9730
|
_fingerprintNode(ctx, node->functions, node, "functions", depth + 1);
|
|
9763
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9731
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->functions) == 1 && linitial(node->functions) == NIL)) {
|
|
9764
9732
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9765
9733
|
if (ctx->write_tokens)
|
|
9766
9734
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9796,7 +9764,7 @@ _fingerprintRangeTableSample(FingerprintContext *ctx, const RangeTableSample *no
|
|
|
9796
9764
|
|
|
9797
9765
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9798
9766
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
9799
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9767
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
9800
9768
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9801
9769
|
if (ctx->write_tokens)
|
|
9802
9770
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9814,7 +9782,7 @@ _fingerprintRangeTableSample(FingerprintContext *ctx, const RangeTableSample *no
|
|
|
9814
9782
|
|
|
9815
9783
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9816
9784
|
_fingerprintNode(ctx, node->method, node, "method", depth + 1);
|
|
9817
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9785
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->method) == 1 && linitial(node->method) == NIL)) {
|
|
9818
9786
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9819
9787
|
if (ctx->write_tokens)
|
|
9820
9788
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9886,7 +9854,7 @@ _fingerprintRangeTableFunc(FingerprintContext *ctx, const RangeTableFunc *node,
|
|
|
9886
9854
|
|
|
9887
9855
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9888
9856
|
_fingerprintNode(ctx, node->columns, node, "columns", depth + 1);
|
|
9889
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9857
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->columns) == 1 && linitial(node->columns) == NIL)) {
|
|
9890
9858
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9891
9859
|
if (ctx->write_tokens)
|
|
9892
9860
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -9926,7 +9894,7 @@ _fingerprintRangeTableFunc(FingerprintContext *ctx, const RangeTableFunc *node,
|
|
|
9926
9894
|
|
|
9927
9895
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
9928
9896
|
_fingerprintNode(ctx, node->namespaces, node, "namespaces", depth + 1);
|
|
9929
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
9897
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->namespaces) == 1 && linitial(node->namespaces) == NIL)) {
|
|
9930
9898
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
9931
9899
|
if (ctx->write_tokens)
|
|
9932
9900
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10037,7 +10005,7 @@ _fingerprintTypeName(FingerprintContext *ctx, const TypeName *node, const void *
|
|
|
10037
10005
|
|
|
10038
10006
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10039
10007
|
_fingerprintNode(ctx, node->arrayBounds, node, "arrayBounds", depth + 1);
|
|
10040
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10008
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->arrayBounds) == 1 && linitial(node->arrayBounds) == NIL)) {
|
|
10041
10009
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10042
10010
|
if (ctx->write_tokens)
|
|
10043
10011
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10055,7 +10023,7 @@ _fingerprintTypeName(FingerprintContext *ctx, const TypeName *node, const void *
|
|
|
10055
10023
|
|
|
10056
10024
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10057
10025
|
_fingerprintNode(ctx, node->names, node, "names", depth + 1);
|
|
10058
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10026
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->names) == 1 && linitial(node->names) == NIL)) {
|
|
10059
10027
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10060
10028
|
if (ctx->write_tokens)
|
|
10061
10029
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10095,7 +10063,7 @@ _fingerprintTypeName(FingerprintContext *ctx, const TypeName *node, const void *
|
|
|
10095
10063
|
|
|
10096
10064
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10097
10065
|
_fingerprintNode(ctx, node->typmods, node, "typmods", depth + 1);
|
|
10098
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10066
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->typmods) == 1 && linitial(node->typmods) == NIL)) {
|
|
10099
10067
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10100
10068
|
if (ctx->write_tokens)
|
|
10101
10069
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10145,7 +10113,7 @@ _fingerprintColumnDef(FingerprintContext *ctx, const ColumnDef *node, const void
|
|
|
10145
10113
|
|
|
10146
10114
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10147
10115
|
_fingerprintNode(ctx, node->constraints, node, "constraints", depth + 1);
|
|
10148
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10116
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->constraints) == 1 && linitial(node->constraints) == NIL)) {
|
|
10149
10117
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10150
10118
|
if (ctx->write_tokens)
|
|
10151
10119
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10178,7 +10146,7 @@ _fingerprintColumnDef(FingerprintContext *ctx, const ColumnDef *node, const void
|
|
|
10178
10146
|
|
|
10179
10147
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10180
10148
|
_fingerprintNode(ctx, node->fdwoptions, node, "fdwoptions", depth + 1);
|
|
10181
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10149
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fdwoptions) == 1 && linitial(node->fdwoptions) == NIL)) {
|
|
10182
10150
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10183
10151
|
if (ctx->write_tokens)
|
|
10184
10152
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10292,7 +10260,7 @@ _fingerprintIndexElem(FingerprintContext *ctx, const IndexElem *node, const void
|
|
|
10292
10260
|
|
|
10293
10261
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10294
10262
|
_fingerprintNode(ctx, node->collation, node, "collation", depth + 1);
|
|
10295
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10263
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collation) == 1 && linitial(node->collation) == NIL)) {
|
|
10296
10264
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10297
10265
|
if (ctx->write_tokens)
|
|
10298
10266
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10340,7 +10308,7 @@ _fingerprintIndexElem(FingerprintContext *ctx, const IndexElem *node, const void
|
|
|
10340
10308
|
|
|
10341
10309
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10342
10310
|
_fingerprintNode(ctx, node->opclass, node, "opclass", depth + 1);
|
|
10343
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10311
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclass) == 1 && linitial(node->opclass) == NIL)) {
|
|
10344
10312
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10345
10313
|
if (ctx->write_tokens)
|
|
10346
10314
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10356,7 +10324,7 @@ _fingerprintIndexElem(FingerprintContext *ctx, const IndexElem *node, const void
|
|
|
10356
10324
|
|
|
10357
10325
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10358
10326
|
_fingerprintNode(ctx, node->opclassopts, node, "opclassopts", depth + 1);
|
|
10359
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10327
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclassopts) == 1 && linitial(node->opclassopts) == NIL)) {
|
|
10360
10328
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10361
10329
|
if (ctx->write_tokens)
|
|
10362
10330
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10407,7 +10375,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10407
10375
|
|
|
10408
10376
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10409
10377
|
_fingerprintNode(ctx, node->exclusions, node, "exclusions", depth + 1);
|
|
10410
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10378
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->exclusions) == 1 && linitial(node->exclusions) == NIL)) {
|
|
10411
10379
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10412
10380
|
if (ctx->write_tokens)
|
|
10413
10381
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10423,7 +10391,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10423
10391
|
|
|
10424
10392
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10425
10393
|
_fingerprintNode(ctx, node->fk_attrs, node, "fk_attrs", depth + 1);
|
|
10426
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10394
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->fk_attrs) == 1 && linitial(node->fk_attrs) == NIL)) {
|
|
10427
10395
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10428
10396
|
if (ctx->write_tokens)
|
|
10429
10397
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10463,7 +10431,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10463
10431
|
|
|
10464
10432
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10465
10433
|
_fingerprintNode(ctx, node->including, node, "including", depth + 1);
|
|
10466
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10434
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->including) == 1 && linitial(node->including) == NIL)) {
|
|
10467
10435
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10468
10436
|
if (ctx->write_tokens)
|
|
10469
10437
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10504,7 +10472,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10504
10472
|
|
|
10505
10473
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10506
10474
|
_fingerprintNode(ctx, node->keys, node, "keys", depth + 1);
|
|
10507
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10475
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->keys) == 1 && linitial(node->keys) == NIL)) {
|
|
10508
10476
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10509
10477
|
if (ctx->write_tokens)
|
|
10510
10478
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10522,7 +10490,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10522
10490
|
|
|
10523
10491
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10524
10492
|
_fingerprintNode(ctx, node->old_conpfeqop, node, "old_conpfeqop", depth + 1);
|
|
10525
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10493
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->old_conpfeqop) == 1 && linitial(node->old_conpfeqop) == NIL)) {
|
|
10526
10494
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10527
10495
|
if (ctx->write_tokens)
|
|
10528
10496
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10545,7 +10513,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10545
10513
|
|
|
10546
10514
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10547
10515
|
_fingerprintNode(ctx, node->options, node, "options", depth + 1);
|
|
10548
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10516
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->options) == 1 && linitial(node->options) == NIL)) {
|
|
10549
10517
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10550
10518
|
if (ctx->write_tokens)
|
|
10551
10519
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10561,7 +10529,7 @@ _fingerprintConstraint(FingerprintContext *ctx, const Constraint *node, const vo
|
|
|
10561
10529
|
|
|
10562
10530
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10563
10531
|
_fingerprintNode(ctx, node->pk_attrs, node, "pk_attrs", depth + 1);
|
|
10564
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10532
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->pk_attrs) == 1 && linitial(node->pk_attrs) == NIL)) {
|
|
10565
10533
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10566
10534
|
if (ctx->write_tokens)
|
|
10567
10535
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10706,7 +10674,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10706
10674
|
|
|
10707
10675
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10708
10676
|
_fingerprintNode(ctx, node->colcollations, node, "colcollations", depth + 1);
|
|
10709
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10677
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->colcollations) == 1 && linitial(node->colcollations) == NIL)) {
|
|
10710
10678
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10711
10679
|
if (ctx->write_tokens)
|
|
10712
10680
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10722,7 +10690,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10722
10690
|
|
|
10723
10691
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10724
10692
|
_fingerprintNode(ctx, node->coltypes, node, "coltypes", depth + 1);
|
|
10725
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10693
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypes) == 1 && linitial(node->coltypes) == NIL)) {
|
|
10726
10694
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10727
10695
|
if (ctx->write_tokens)
|
|
10728
10696
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10738,7 +10706,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10738
10706
|
|
|
10739
10707
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10740
10708
|
_fingerprintNode(ctx, node->coltypmods, node, "coltypmods", depth + 1);
|
|
10741
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10709
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->coltypmods) == 1 && linitial(node->coltypmods) == NIL)) {
|
|
10742
10710
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10743
10711
|
if (ctx->write_tokens)
|
|
10744
10712
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10815,7 +10783,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10815
10783
|
|
|
10816
10784
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10817
10785
|
_fingerprintNode(ctx, node->functions, node, "functions", depth + 1);
|
|
10818
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10786
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->functions) == 1 && linitial(node->functions) == NIL)) {
|
|
10819
10787
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10820
10788
|
if (ctx->write_tokens)
|
|
10821
10789
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10856,7 +10824,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10856
10824
|
|
|
10857
10825
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10858
10826
|
_fingerprintNode(ctx, node->joinaliasvars, node, "joinaliasvars", depth + 1);
|
|
10859
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10827
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->joinaliasvars) == 1 && linitial(node->joinaliasvars) == NIL)) {
|
|
10860
10828
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10861
10829
|
if (ctx->write_tokens)
|
|
10862
10830
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10872,7 +10840,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10872
10840
|
|
|
10873
10841
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10874
10842
|
_fingerprintNode(ctx, node->joinleftcols, node, "joinleftcols", depth + 1);
|
|
10875
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10843
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->joinleftcols) == 1 && linitial(node->joinleftcols) == NIL)) {
|
|
10876
10844
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10877
10845
|
if (ctx->write_tokens)
|
|
10878
10846
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10895,7 +10863,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10895
10863
|
|
|
10896
10864
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10897
10865
|
_fingerprintNode(ctx, node->joinrightcols, node, "joinrightcols", depth + 1);
|
|
10898
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10866
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->joinrightcols) == 1 && linitial(node->joinrightcols) == NIL)) {
|
|
10899
10867
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10900
10868
|
if (ctx->write_tokens)
|
|
10901
10869
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -10953,7 +10921,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
10953
10921
|
|
|
10954
10922
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
10955
10923
|
_fingerprintNode(ctx, node->securityQuals, node, "securityQuals", depth + 1);
|
|
10956
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
10924
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->securityQuals) == 1 && linitial(node->securityQuals) == NIL)) {
|
|
10957
10925
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
10958
10926
|
if (ctx->write_tokens)
|
|
10959
10927
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11060,7 +11028,7 @@ _fingerprintRangeTblEntry(FingerprintContext *ctx, const RangeTblEntry *node, co
|
|
|
11060
11028
|
|
|
11061
11029
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11062
11030
|
_fingerprintNode(ctx, node->values_lists, node, "values_lists", depth + 1);
|
|
11063
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11031
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->values_lists) == 1 && linitial(node->values_lists) == NIL)) {
|
|
11064
11032
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11065
11033
|
if (ctx->write_tokens)
|
|
11066
11034
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11081,7 +11049,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
|
11081
11049
|
|
|
11082
11050
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11083
11051
|
_fingerprintNode(ctx, node->funccolcollations, node, "funccolcollations", depth + 1);
|
|
11084
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11052
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccolcollations) == 1 && linitial(node->funccolcollations) == NIL)) {
|
|
11085
11053
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11086
11054
|
if (ctx->write_tokens)
|
|
11087
11055
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11104,7 +11072,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
|
11104
11072
|
|
|
11105
11073
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11106
11074
|
_fingerprintNode(ctx, node->funccolnames, node, "funccolnames", depth + 1);
|
|
11107
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11075
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccolnames) == 1 && linitial(node->funccolnames) == NIL)) {
|
|
11108
11076
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11109
11077
|
if (ctx->write_tokens)
|
|
11110
11078
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11120,7 +11088,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
|
11120
11088
|
|
|
11121
11089
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11122
11090
|
_fingerprintNode(ctx, node->funccoltypes, node, "funccoltypes", depth + 1);
|
|
11123
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11091
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccoltypes) == 1 && linitial(node->funccoltypes) == NIL)) {
|
|
11124
11092
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11125
11093
|
if (ctx->write_tokens)
|
|
11126
11094
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11136,7 +11104,7 @@ _fingerprintRangeTblFunction(FingerprintContext *ctx, const RangeTblFunction *no
|
|
|
11136
11104
|
|
|
11137
11105
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11138
11106
|
_fingerprintNode(ctx, node->funccoltypmods, node, "funccoltypmods", depth + 1);
|
|
11139
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11107
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->funccoltypmods) == 1 && linitial(node->funccoltypmods) == NIL)) {
|
|
11140
11108
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11141
11109
|
if (ctx->write_tokens)
|
|
11142
11110
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11189,7 +11157,7 @@ _fingerprintTableSampleClause(FingerprintContext *ctx, const TableSampleClause *
|
|
|
11189
11157
|
|
|
11190
11158
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11191
11159
|
_fingerprintNode(ctx, node->args, node, "args", depth + 1);
|
|
11192
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11160
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->args) == 1 && linitial(node->args) == NIL)) {
|
|
11193
11161
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11194
11162
|
if (ctx->write_tokens)
|
|
11195
11163
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11312,7 +11280,7 @@ _fingerprintGroupingSet(FingerprintContext *ctx, const GroupingSet *node, const
|
|
|
11312
11280
|
|
|
11313
11281
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11314
11282
|
_fingerprintNode(ctx, node->content, node, "content", depth + 1);
|
|
11315
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11283
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->content) == 1 && linitial(node->content) == NIL)) {
|
|
11316
11284
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11317
11285
|
if (ctx->write_tokens)
|
|
11318
11286
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11398,7 +11366,7 @@ _fingerprintWindowClause(FingerprintContext *ctx, const WindowClause *node, cons
|
|
|
11398
11366
|
|
|
11399
11367
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11400
11368
|
_fingerprintNode(ctx, node->orderClause, node, "orderClause", depth + 1);
|
|
11401
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11369
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->orderClause) == 1 && linitial(node->orderClause) == NIL)) {
|
|
11402
11370
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11403
11371
|
if (ctx->write_tokens)
|
|
11404
11372
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11414,7 +11382,7 @@ _fingerprintWindowClause(FingerprintContext *ctx, const WindowClause *node, cons
|
|
|
11414
11382
|
|
|
11415
11383
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11416
11384
|
_fingerprintNode(ctx, node->partitionClause, node, "partitionClause", depth + 1);
|
|
11417
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11385
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->partitionClause) == 1 && linitial(node->partitionClause) == NIL)) {
|
|
11418
11386
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11419
11387
|
if (ctx->write_tokens)
|
|
11420
11388
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11476,7 +11444,7 @@ _fingerprintObjectWithArgs(FingerprintContext *ctx, const ObjectWithArgs *node,
|
|
|
11476
11444
|
|
|
11477
11445
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11478
11446
|
_fingerprintNode(ctx, node->objargs, node, "objargs", depth + 1);
|
|
11479
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11447
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objargs) == 1 && linitial(node->objargs) == NIL)) {
|
|
11480
11448
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11481
11449
|
if (ctx->write_tokens)
|
|
11482
11450
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11492,7 +11460,7 @@ _fingerprintObjectWithArgs(FingerprintContext *ctx, const ObjectWithArgs *node,
|
|
|
11492
11460
|
|
|
11493
11461
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11494
11462
|
_fingerprintNode(ctx, node->objname, node, "objname", depth + 1);
|
|
11495
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11463
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->objname) == 1 && linitial(node->objname) == NIL)) {
|
|
11496
11464
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11497
11465
|
if (ctx->write_tokens)
|
|
11498
11466
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11513,7 +11481,7 @@ _fingerprintAccessPriv(FingerprintContext *ctx, const AccessPriv *node, const vo
|
|
|
11513
11481
|
|
|
11514
11482
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11515
11483
|
_fingerprintNode(ctx, node->cols, node, "cols", depth + 1);
|
|
11516
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11484
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->cols) == 1 && linitial(node->cols) == NIL)) {
|
|
11517
11485
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11518
11486
|
if (ctx->write_tokens)
|
|
11519
11487
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11539,7 +11507,7 @@ _fingerprintCreateOpClassItem(FingerprintContext *ctx, const CreateOpClassItem *
|
|
|
11539
11507
|
|
|
11540
11508
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11541
11509
|
_fingerprintNode(ctx, node->class_args, node, "class_args", depth + 1);
|
|
11542
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11510
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->class_args) == 1 && linitial(node->class_args) == NIL)) {
|
|
11543
11511
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11544
11512
|
if (ctx->write_tokens)
|
|
11545
11513
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11586,7 +11554,7 @@ _fingerprintCreateOpClassItem(FingerprintContext *ctx, const CreateOpClassItem *
|
|
|
11586
11554
|
|
|
11587
11555
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11588
11556
|
_fingerprintNode(ctx, node->order_family, node, "order_family", depth + 1);
|
|
11589
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11557
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->order_family) == 1 && linitial(node->order_family) == NIL)) {
|
|
11590
11558
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11591
11559
|
if (ctx->write_tokens)
|
|
11592
11560
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11639,6 +11607,13 @@ _fingerprintTableLikeClause(FingerprintContext *ctx, const TableLikeClause *node
|
|
|
11639
11607
|
XXH3_freeState(prev);
|
|
11640
11608
|
}
|
|
11641
11609
|
|
|
11610
|
+
if (node->relationOid != 0) {
|
|
11611
|
+
char buffer[50];
|
|
11612
|
+
sprintf(buffer, "%d", node->relationOid);
|
|
11613
|
+
_fingerprintString(ctx, "relationOid");
|
|
11614
|
+
_fingerprintString(ctx, buffer);
|
|
11615
|
+
}
|
|
11616
|
+
|
|
11642
11617
|
}
|
|
11643
11618
|
|
|
11644
11619
|
static void
|
|
@@ -11683,10 +11658,7 @@ _fingerprintFunctionParameter(FingerprintContext *ctx, const FunctionParameter *
|
|
|
11683
11658
|
_fingerprintString(ctx, _enumToStringFunctionParameterMode(node->mode));
|
|
11684
11659
|
}
|
|
11685
11660
|
|
|
11686
|
-
|
|
11687
|
-
_fingerprintString(ctx, "name");
|
|
11688
|
-
_fingerprintString(ctx, node->name);
|
|
11689
|
-
}
|
|
11661
|
+
// Intentionally ignoring node->name for fingerprinting
|
|
11690
11662
|
|
|
11691
11663
|
}
|
|
11692
11664
|
|
|
@@ -11702,7 +11674,7 @@ _fingerprintLockingClause(FingerprintContext *ctx, const LockingClause *node, co
|
|
|
11702
11674
|
|
|
11703
11675
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11704
11676
|
_fingerprintNode(ctx, node->lockedRels, node, "lockedRels", depth + 1);
|
|
11705
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11677
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->lockedRels) == 1 && linitial(node->lockedRels) == NIL)) {
|
|
11706
11678
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11707
11679
|
if (ctx->write_tokens)
|
|
11708
11680
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11806,7 +11778,7 @@ _fingerprintWithClause(FingerprintContext *ctx, const WithClause *node, const vo
|
|
|
11806
11778
|
|
|
11807
11779
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11808
11780
|
_fingerprintNode(ctx, node->ctes, node, "ctes", depth + 1);
|
|
11809
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11781
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctes) == 1 && linitial(node->ctes) == NIL)) {
|
|
11810
11782
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11811
11783
|
if (ctx->write_tokens)
|
|
11812
11784
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11839,7 +11811,7 @@ _fingerprintInferClause(FingerprintContext *ctx, const InferClause *node, const
|
|
|
11839
11811
|
|
|
11840
11812
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11841
11813
|
_fingerprintNode(ctx, node->indexElems, node, "indexElems", depth + 1);
|
|
11842
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11814
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->indexElems) == 1 && linitial(node->indexElems) == NIL)) {
|
|
11843
11815
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11844
11816
|
if (ctx->write_tokens)
|
|
11845
11817
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11903,7 +11875,7 @@ _fingerprintOnConflictClause(FingerprintContext *ctx, const OnConflictClause *no
|
|
|
11903
11875
|
|
|
11904
11876
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11905
11877
|
_fingerprintNode(ctx, node->targetList, node, "targetList", depth + 1);
|
|
11906
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11878
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->targetList) == 1 && linitial(node->targetList) == NIL)) {
|
|
11907
11879
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11908
11880
|
if (ctx->write_tokens)
|
|
11909
11881
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11941,7 +11913,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
|
11941
11913
|
|
|
11942
11914
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11943
11915
|
_fingerprintNode(ctx, node->aliascolnames, node, "aliascolnames", depth + 1);
|
|
11944
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11916
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->aliascolnames) == 1 && linitial(node->aliascolnames) == NIL)) {
|
|
11945
11917
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11946
11918
|
if (ctx->write_tokens)
|
|
11947
11919
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11957,7 +11929,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
|
11957
11929
|
|
|
11958
11930
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11959
11931
|
_fingerprintNode(ctx, node->ctecolcollations, node, "ctecolcollations", depth + 1);
|
|
11960
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11932
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecolcollations) == 1 && linitial(node->ctecolcollations) == NIL)) {
|
|
11961
11933
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11962
11934
|
if (ctx->write_tokens)
|
|
11963
11935
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11973,7 +11945,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
|
11973
11945
|
|
|
11974
11946
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11975
11947
|
_fingerprintNode(ctx, node->ctecolnames, node, "ctecolnames", depth + 1);
|
|
11976
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11948
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecolnames) == 1 && linitial(node->ctecolnames) == NIL)) {
|
|
11977
11949
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11978
11950
|
if (ctx->write_tokens)
|
|
11979
11951
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -11989,7 +11961,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
|
11989
11961
|
|
|
11990
11962
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
11991
11963
|
_fingerprintNode(ctx, node->ctecoltypes, node, "ctecoltypes", depth + 1);
|
|
11992
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11964
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecoltypes) == 1 && linitial(node->ctecoltypes) == NIL)) {
|
|
11993
11965
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
11994
11966
|
if (ctx->write_tokens)
|
|
11995
11967
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12005,7 +11977,7 @@ _fingerprintCommonTableExpr(FingerprintContext *ctx, const CommonTableExpr *node
|
|
|
12005
11977
|
|
|
12006
11978
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12007
11979
|
_fingerprintNode(ctx, node->ctecoltypmods, node, "ctecoltypmods", depth + 1);
|
|
12008
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
11980
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->ctecoltypmods) == 1 && linitial(node->ctecoltypmods) == NIL)) {
|
|
12009
11981
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12010
11982
|
if (ctx->write_tokens)
|
|
12011
11983
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12104,7 +12076,7 @@ _fingerprintPartitionElem(FingerprintContext *ctx, const PartitionElem *node, co
|
|
|
12104
12076
|
|
|
12105
12077
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12106
12078
|
_fingerprintNode(ctx, node->collation, node, "collation", depth + 1);
|
|
12107
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12079
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->collation) == 1 && linitial(node->collation) == NIL)) {
|
|
12108
12080
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12109
12081
|
if (ctx->write_tokens)
|
|
12110
12082
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12144,7 +12116,7 @@ _fingerprintPartitionElem(FingerprintContext *ctx, const PartitionElem *node, co
|
|
|
12144
12116
|
|
|
12145
12117
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12146
12118
|
_fingerprintNode(ctx, node->opclass, node, "opclass", depth + 1);
|
|
12147
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12119
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->opclass) == 1 && linitial(node->opclass) == NIL)) {
|
|
12148
12120
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12149
12121
|
if (ctx->write_tokens)
|
|
12150
12122
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12167,7 +12139,7 @@ _fingerprintPartitionSpec(FingerprintContext *ctx, const PartitionSpec *node, co
|
|
|
12167
12139
|
|
|
12168
12140
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12169
12141
|
_fingerprintNode(ctx, node->partParams, node, "partParams", depth + 1);
|
|
12170
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12142
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->partParams) == 1 && linitial(node->partParams) == NIL)) {
|
|
12171
12143
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12172
12144
|
if (ctx->write_tokens)
|
|
12173
12145
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12198,7 +12170,7 @@ _fingerprintPartitionBoundSpec(FingerprintContext *ctx, const PartitionBoundSpec
|
|
|
12198
12170
|
|
|
12199
12171
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12200
12172
|
_fingerprintNode(ctx, node->listdatums, node, "listdatums", depth + 1);
|
|
12201
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12173
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->listdatums) == 1 && linitial(node->listdatums) == NIL)) {
|
|
12202
12174
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12203
12175
|
if (ctx->write_tokens)
|
|
12204
12176
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12216,7 +12188,7 @@ _fingerprintPartitionBoundSpec(FingerprintContext *ctx, const PartitionBoundSpec
|
|
|
12216
12188
|
|
|
12217
12189
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12218
12190
|
_fingerprintNode(ctx, node->lowerdatums, node, "lowerdatums", depth + 1);
|
|
12219
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12191
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->lowerdatums) == 1 && linitial(node->lowerdatums) == NIL)) {
|
|
12220
12192
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12221
12193
|
if (ctx->write_tokens)
|
|
12222
12194
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12252,7 +12224,7 @@ _fingerprintPartitionBoundSpec(FingerprintContext *ctx, const PartitionBoundSpec
|
|
|
12252
12224
|
|
|
12253
12225
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12254
12226
|
_fingerprintNode(ctx, node->upperdatums, node, "upperdatums", depth + 1);
|
|
12255
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12227
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->upperdatums) == 1 && linitial(node->upperdatums) == NIL)) {
|
|
12256
12228
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12257
12229
|
if (ctx->write_tokens)
|
|
12258
12230
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|
|
@@ -12365,7 +12337,7 @@ _fingerprintVacuumRelation(FingerprintContext *ctx, const VacuumRelation *node,
|
|
|
12365
12337
|
|
|
12366
12338
|
hash = XXH3_64bits_digest(ctx->xxh_state);
|
|
12367
12339
|
_fingerprintNode(ctx, node->va_cols, node, "va_cols", depth + 1);
|
|
12368
|
-
if (hash == XXH3_64bits_digest(ctx->xxh_state)) {
|
|
12340
|
+
if (hash == XXH3_64bits_digest(ctx->xxh_state) && !(list_length(node->va_cols) == 1 && linitial(node->va_cols) == NIL)) {
|
|
12369
12341
|
XXH3_copyState(ctx->xxh_state, prev);
|
|
12370
12342
|
if (ctx->write_tokens)
|
|
12371
12343
|
dlist_delete(dlist_tail_node(&ctx->tokens));
|