joshbuddy/jsonpath

Something changed from 0.8.11 to 0.9.0

Closed this issue · 7 comments

We are using jsonpath in a cucumber testing setup. Locally, I installed gem version 0.8.11. Our Jenkins server originally also had 0.8.11. We recently started using Jenkins slightly differently, using docker container rather than static Amazon AMI, and that container did not specify which version of jsonpath gem, and ended up getting 0.9.0. Tests that work with 0.8.11 are failing with 0.9.0. I also ran the test locally with 0.8.11 and with 0.9.0 and got the same results, so I am fairly certain that something changed.

In 0.8.11, the following jsonpath query and file return "[true]", but with 0.9.0 I am getting "[]"

Query:
$..column[?(@.name=='ASSOCIATE_FLAG')].nullable

{
  "snapshot": {
    "created": "2018-06-05T00:50:39.918",
    "database": {
      "productVersion": "Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production",
      "shortName": "oracle",
      "majorVersion": "12",
      "minorVersion": "2",
      "user": "DDBCLI",
      "productName": "Oracle",
      "url": "jdbc:oracle:thin:@//10.158.178.236:1521/pdborcl"
    },
    "objects": {
      "liquibase.structure.core.Catalog": [
        {
          "catalog": {
            "default": true,
            "name": "DDBCLI",
            "snapshotId": "0412100"
          }
        }]
      ,
      "liquibase.structure.core.Column": [
        {
          "column": {
            "name": "ASSOCIATE_FLAG",
            "nullable": true,
            "order": "4!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412117",
            "snapshotId": "0412124",
            "type": {
              "columnSize": "1!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            },
            "validateNullable": false
          }
        },
        {
          "column": {
            "name": "AUTHOR",
            "nullable": false,
            "order": "2!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412104",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "COLUMN1",
            "nullable": false,
            "order": "1!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412117",
            "snapshotId": "0412122",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "COLUMN11",
            "nullable": false,
            "order": "1!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412133",
            "snapshotId": "0412135",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "COLUMN1_REF",
            "nullable": true,
            "order": "2!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412133",
            "snapshotId": "0412136",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "COLUMN2",
            "nullable": true,
            "order": "2!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412117",
            "snapshotId": "0412119",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "COLUMN3",
            "nullable": false,
            "order": "3!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412117",
            "snapshotId": "0412123",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "COLUMN33",
            "nullable": true,
            "order": "3!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412133",
            "snapshotId": "0412137",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "COMMENTS",
            "nullable": true,
            "order": "9!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412111",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "CONTEXTS",
            "nullable": true,
            "order": "12!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412114",
            "type": {
              "columnSize": "4000!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "DATEEXECUTED",
            "nullable": false,
            "order": "4!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412106",
            "type": {
              "dataTypeId": "93!{java.lang.Integer}",
              "typeName": "TIMESTAMP(6)"
            }
          }
        },
        {
          "column": {
            "name": "DEPLOYMENT_ID",
            "nullable": true,
            "order": "14!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412116",
            "type": {
              "columnSize": "10!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "DESCRIPTION",
            "nullable": true,
            "order": "8!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412110",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "EXECTYPE",
            "nullable": false,
            "order": "6!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412108",
            "type": {
              "columnSize": "10!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "FILENAME",
            "nullable": false,
            "order": "3!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412105",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "ID",
            "nullable": false,
            "order": "1!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412103",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "ID",
            "nullable": false,
            "order": "1!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412126",
            "snapshotId": "0412128",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "LABELS",
            "nullable": true,
            "order": "13!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412115",
            "type": {
              "columnSize": "4000!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "LIQUIBASE",
            "nullable": true,
            "order": "11!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412113",
            "type": {
              "columnSize": "20!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "LOCKED",
            "nullable": false,
            "order": "2!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412126",
            "snapshotId": "0412129",
            "type": {
              "columnSize": "1!{java.lang.Integer}",
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "LOCKEDBY",
            "nullable": true,
            "order": "4!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412126",
            "snapshotId": "0412131",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "LOCKGRANTED",
            "nullable": true,
            "order": "3!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412126",
            "snapshotId": "0412130",
            "type": {
              "dataTypeId": "93!{java.lang.Integer}",
              "typeName": "TIMESTAMP(6)"
            }
          }
        },
        {
          "column": {
            "name": "MD5SUM",
            "nullable": true,
            "order": "7!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412109",
            "type": {
              "columnSize": "35!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        },
        {
          "column": {
            "name": "ORDEREXECUTED",
            "nullable": false,
            "order": "5!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412107",
            "type": {
              "dataTypeId": "3!{java.lang.Integer}",
              "decimalDigits": "0!{java.lang.Integer}",
              "typeName": "NUMBER"
            }
          }
        },
        {
          "column": {
            "name": "TAG",
            "nullable": true,
            "order": "10!{java.lang.Integer}",
            "relation": "liquibase.structure.core.Table#0412102",
            "snapshotId": "0412112",
            "type": {
              "columnSize": "255!{java.lang.Integer}",
              "columnSizeUnit": "BYTE!{liquibase.structure.core.DataType$ColumnSizeUnit}",
              "dataTypeId": "12!{java.lang.Integer}",
              "typeName": "VARCHAR"
            }
          }
        }]
      ,
      "liquibase.structure.core.ForeignKey": [
        {
          "foreignKey": {
            "deferrable": false,
            "deleteRule": "importedKeyRestrict!{liquibase.structure.core.ForeignKeyConstraintType}",
            "foreignKeyColumns": [
              "liquibase.structure.core.Column#0412136"]
            ,
            "foreignKeyTable": "liquibase.structure.core.Table#0412133",
            "initiallyDeferred": false,
            "name": "FK_COLUMN2_REF",
            "primaryKeyColumns": [
              "liquibase.structure.core.Column#0412122"]
            ,
            "primaryKeyTable": "liquibase.structure.core.Table#0412117",
            "snapshotId": "0412138",
            "updateRule": "importedKeyRestrict!{liquibase.structure.core.ForeignKeyConstraintType}",
            "validate": false
          }
        }]
      ,
      "liquibase.structure.core.Index": [
        {
          "index": {
            "columns": [
              "liquibase.structure.core.Column#0412128"]
            ,
            "name": "PK_DATABASECHANGELOGLOCK",
            "snapshotId": "0412127",
            "table": "liquibase.structure.core.Table#0412126",
            "unique": true
          }
        },
        {
          "index": {
            "columns": [
              "liquibase.structure.core.Column#0412122"]
            ,
            "name": "PK_TABLE1",
            "snapshotId": "0412121",
            "table": "liquibase.structure.core.Table#0412117",
            "unique": true
          }
        },
        {
          "index": {
            "columns": [
              "liquibase.structure.core.Column#0412135"]
            ,
            "name": "PK_TABLE2",
            "snapshotId": "0412134",
            "table": "liquibase.structure.core.Table#0412133",
            "unique": true
          }
        },
        {
          "index": {
            "columns": [
              "liquibase.structure.core.Column#0412119"]
            ,
            "name": "UC_TABLE1_COLUMN2",
            "snapshotId": "0412120",
            "table": "liquibase.structure.core.Table#0412117",
            "unique": true
          }
        }]
      ,
      "liquibase.structure.core.PrimaryKey": [
        {
          "primaryKey": {
            "backingIndex": "liquibase.structure.core.Index#0412127",
            "columns": [
              "liquibase.structure.core.Column#0412128"]
            ,
            "name": "PK_DATABASECHANGELOGLOCK",
            "snapshotId": "0412132",
            "table": "liquibase.structure.core.Table#0412126",
            "validate": true
          }
        },
        {
          "primaryKey": {
            "backingIndex": "liquibase.structure.core.Index#0412121",
            "columns": [
              "liquibase.structure.core.Column#0412122"]
            ,
            "name": "PK_TABLE1",
            "snapshotId": "0412125",
            "table": "liquibase.structure.core.Table#0412117",
            "validate": false
          }
        },
        {
          "primaryKey": {
            "backingIndex": "liquibase.structure.core.Index#0412134",
            "columns": [
              "liquibase.structure.core.Column#0412135"]
            ,
            "name": "PK_TABLE2",
            "snapshotId": "0412139",
            "table": "liquibase.structure.core.Table#0412133",
            "validate": true
          }
        }]
      ,
      "liquibase.structure.core.Schema": [
        {
          "schema": {
            "catalog": "liquibase.structure.core.Catalog#0412100",
            "default": true,
            "name": "DDBCLI",
            "snapshotId": "0412101"
          }
        }]
      ,
      "liquibase.structure.core.Table": [
        {
          "table": {
            "columns": [
              "liquibase.structure.core.Column#0412103",
              "liquibase.structure.core.Column#0412104",
              "liquibase.structure.core.Column#0412105",
              "liquibase.structure.core.Column#0412106",
              "liquibase.structure.core.Column#0412107",
              "liquibase.structure.core.Column#0412108",
              "liquibase.structure.core.Column#0412109",
              "liquibase.structure.core.Column#0412110",
              "liquibase.structure.core.Column#0412111",
              "liquibase.structure.core.Column#0412112",
              "liquibase.structure.core.Column#0412113",
              "liquibase.structure.core.Column#0412114",
              "liquibase.structure.core.Column#0412115",
              "liquibase.structure.core.Column#0412116"]
            ,
            "name": "DATABASECHANGELOG",
            "schema": "liquibase.structure.core.Schema#0412101",
            "snapshotId": "0412102"
          }
        },
        {
          "table": {
            "columns": [
              "liquibase.structure.core.Column#0412128",
              "liquibase.structure.core.Column#0412129",
              "liquibase.structure.core.Column#0412130",
              "liquibase.structure.core.Column#0412131"]
            ,
            "indexes": [
              "liquibase.structure.core.Index#0412127"]
            ,
            "name": "DATABASECHANGELOGLOCK",
            "primaryKey": "liquibase.structure.core.PrimaryKey#0412132",
            "schema": "liquibase.structure.core.Schema#0412101",
            "snapshotId": "0412126"
          }
        },
        {
          "table": {
            "columns": [
              "liquibase.structure.core.Column#0412122",
              "liquibase.structure.core.Column#0412119",
              "liquibase.structure.core.Column#0412123",
              "liquibase.structure.core.Column#0412124"]
            ,
            "indexes": [
              "liquibase.structure.core.Index#0412121",
              "liquibase.structure.core.Index#0412120"]
            ,
            "name": "TABLE1",
            "primaryKey": "liquibase.structure.core.PrimaryKey#0412125",
            "schema": "liquibase.structure.core.Schema#0412101",
            "snapshotId": "0412117",
            "uniqueConstraints": [
              "liquibase.structure.core.UniqueConstraint#0412118"]
            
          }
        },
        {
          "table": {
            "columns": [
              "liquibase.structure.core.Column#0412135",
              "liquibase.structure.core.Column#0412136",
              "liquibase.structure.core.Column#0412137"]
            ,
            "indexes": [
              "liquibase.structure.core.Index#0412134"]
            ,
            "name": "TABLE2",
            "outgoingForeignKeys": [
              "liquibase.structure.core.ForeignKey#0412138"]
            ,
            "primaryKey": "liquibase.structure.core.PrimaryKey#0412139",
            "schema": "liquibase.structure.core.Schema#0412101",
            "snapshotId": "0412133"
          }
        }]
      ,
      "liquibase.structure.core.UniqueConstraint": [
        {
          "uniqueConstraint": {
            "backingIndex": "liquibase.structure.core.Index#0412120",
            "clustered": false,
            "columns": [
              "liquibase.structure.core.Column#0412119"]
            ,
            "deferrable": false,
            "disabled": false,
            "initiallyDeferred": false,
            "name": "UC_TABLE1_COLUMN2",
            "snapshotId": "0412118",
            "table": "liquibase.structure.core.Table#0412117",
            "validate": false
          }
        }]
      
    },
    "snapshotControl": {
      "snapshotControl": {
        "includedType": [
          "com.datical.liquibase.ext.appdba.synonym.Synonym",
          "com.datical.liquibase.ext.storedlogic.checkconstraint.CheckConstraint",
          "com.datical.liquibase.ext.storedlogic.databasepackage.DatabasePackage",
          "com.datical.liquibase.ext.storedlogic.databasepackage.DatabasePackageBody",
          "com.datical.liquibase.ext.storedlogic.function.Function",
          "com.datical.liquibase.ext.storedlogic.trigger.Trigger",
          "liquibase.structure.core.Catalog",
          "liquibase.structure.core.Column",
          "liquibase.structure.core.ForeignKey",
          "liquibase.structure.core.Index",
          "liquibase.structure.core.PrimaryKey",
          "liquibase.structure.core.Schema",
          "liquibase.structure.core.Sequence",
          "liquibase.structure.core.StoredProcedure",
          "liquibase.structure.core.Table",
          "liquibase.structure.core.UniqueConstraint",
          "liquibase.structure.core.View"]
        
      }
    }
  }
}

tagging @Skarlso as requested.

Hi @SteveDonie. That is entirely possible as in the previous version there were some things actually incorrect. :/ Which were fixed in 0.9.0. and they should now use the correct notation just like in http://jsonpath.com/ this thing.

I'll investigate soon regarding your sample input.

I see where the problem is. Fixing it is a tad bit difficult though. :/

@SteveDonie Please see linked PR. That should fix this bug.

Thanks! I'll keep an eye out for the next release.

@SteveDonie It's already released. :) you can try out the new version 0.9.1. Should work. Hopefully. Thank you for submitting an issue!

Please re-open if issue still exists.